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

我正在主线程中初始化我的OpenGL上下文(SDL / GLEW).但是渲染是在不同的线程中完成的(比如SDL_GL_SwapWindow或glDrawElements).

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

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

int main(){
    // Initialization... 

    thread rendering(render);
}

这可能是个问题吗?

最佳答案 不会像你期望的那样工作. OpenGL Context是线程本地的.无论您创建上下文的哪个线程,都必须从中进行实际的OpenGL渲染调用.

点赞