我正在主线程中初始化我的OpenGL上下文(SDL/GLEW)。但是渲染是在不同的线程中完成的(例如 SDL_GL_SwapWindow
或 glDrawElements
)。
问题是,如果我打电话给SDL_GL_SwapWindow
,什么都不会发生。我试图在每次交换后简单地更改透明颜色,但没有任何反应。
void render(){
// Rendering...
}
int main(){
// Initialization...
thread rendering(render);
}
这可能是问题吗?
无法按预期工作。OpenGL 上下文是线程本地的。无论您创建上下文的哪个线程都是必须从中进行实际 OpenGL 渲染调用的位置。