【问题标题】:Are multiple threads rendering to individual OpenGL contexts thread safe?多个线程渲染到单个 OpenGL 上下文线程安全吗?
【发布时间】:2017-04-26 13:05:17
【问题描述】:

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

案例一

  1. 有多个线程,每个线程都有一个上下文和一个 SDL 窗口。
  2. 这些线程多线程渲染几何图形。

案例2

  1. 有多个线程,每个线程都有一个 SDL 窗口。但是只有一个上下文是共享的。
  2. 这些线程多线程渲染几何图形。

我猜后一种情况不安全,因为线程通过调用“SDL_GL_MakeCurrent”来更改当前上下文,但我不确定。

【问题讨论】:

  • 是的,你是对的

标签: c++ multithreading opengl sdl-2


【解决方案1】:

好吧,我傻了。

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

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

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

所以我得出结论,它不是线程安全的。对不起我的愚蠢。

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    相关资源
    最近更新 更多