在渲染之外的另一个线程中初始化OpenGL Context

时间:2014-01-10 16:06:20

标签: c++ multithreading opengl sdl glew

我正在主线程中初始化我的OpenGL上下文(SDL / GLEW)。但渲染是在不同的线程中完成的(例如SDL_GL_SwapWindowglDrawElements)。

问题是,如果我拨打SDL_GL_SwapWindow,没有任何反应。我试图在每次交换后简单地改变清晰的颜色,但没有任何反应。

void render(){
    // Rendering... 
}

int main(){
    // Initialization... 

    thread rendering(render);
}

这可能是个问题吗?

1 个答案:

答案 0 :(得分:2)

不按预期工作。 OpenGL Context是线程本地的。无论您创建上下文的哪个线程,都必须在其中进行实际的OpenGL渲染调用。