在渲染以外的另一个线程中初始化 OpenGL 上下文



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

问题是,如果我打电话给SDL_GL_SwapWindow,什么都不会发生。我试图在每次交换后简单地更改透明颜色,但没有任何反应。

void render(){
    // Rendering... 
}
int main(){
    // Initialization... 
    thread rendering(render);
}

这可能是问题吗?

无法按预期工作。OpenGL 上下文是线程本地的。无论您创建上下文的哪个线程都是必须从中进行实际 OpenGL 渲染调用的位置。

最新更新