这是我目前的设置:我正在使用SDL(目前在Linux上)进行OpenGL渲染.我初始化SDL(SDL_Init)并在主线程中创建应用程序窗口(SDL_CreateWindow),并将其传递给第二个线程.第二个线程从它创建一个OpenGL上下文(SDL_GL_CreateContext)并启动一个渲染循环,而主线程监听事件.我认为重要的是要注意,GL调用完全限于此第二个线程;实际上我应用程序的大部分逻辑都是在这里发生的,主线程真的只负责处理通过SDL进行的事件.
原来我这样做是相反的,但事实证明,除了OSX上的主线程,也可能还有Windows之外,你无法处理事件,所以我把它关闭,以便将来兼容这两个.
我有什么担心,这不会在OSX / Windows上工作?在Linux上,我没有任何.互联网上有关于上下文共享和从多个线程执行GL调用的大量信息,但是我想要做的只是一个线程中不是主要的OpenGL.我不想继续编码我的应用程序,以后才会发现它不会在其他任何地方工作.