多线程渲染到单个OpenGL上下文线程是否安全?

时间:2017-04-26 13:05:18

标签: c++ multithreading opengl sdl-2

我正在使用SDL2和OpenGL 3.3,并想知道以下情况是否是线程安全的:

案例1

  1. 有多个线程,每个线程都有一个上下文和一个SDL窗口。
  2. 这些线程使几何图形呈现多线程。
  3. 案例2

    1. 有多个线程,每个线程都有一个SDL窗口。但是,只有一个共享的上下文。
    2. 这些线程使几何图形呈现多线程。
    3. 我猜后一种情况不安全,因为线程通过调用' SDL_GL_MakeCurrent'来改变当前上下文,但我不确定。

1 个答案:

答案 0 :(得分:0)

好的,我很傻。

我正在阅读文件并找到它:

  

SDL_GL_GetCurrentContext:使用此函数获取当前活动的OpenGL上下文。   SDL_GLContext SDL_GL_GetCurrentContext(void)

并意识到只有一个OpenGL上下文被激活,这意味着没有调用'SDL_GL_MakeCurrent'渲染具有多个上下文是不可能的。也就是说,第一种情况与第二种情况几乎没有区别。

所以我总结说它不是线程安全的。抱歉我的愚蠢。