Windows – SDL 2.0:在主线程中创建窗口,但是单独执行所有渲染

前端之家收集整理的这篇文章主要介绍了Windows – SDL 2.0:在主线程中创建窗口,但是单独执行所有渲染前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我目前的设置:我正在使用SDL(目前在Linux上)进行OpenGL渲染.我初始化SDL(SDL_Init)并在主线程中创建应用程序窗口(SDL_CreateWindow),并将其传递给第二个线程.第二个线程从它创建一个OpenGL上下文(SDL_GL_CreateContext)并启动一个渲染循环,而主线程监听事件.我认为重要的是要注意,GL调用完全限于此第二个线程;实际上我应用程序的大部分逻辑都是在这里发生的,主线程真的只负责处理通过SDL进行的事件.

原来我这样做是相反的,但事实证明,除了OSX上的主线程,也可能还有Windows之外,你无法处理事件,所以我把它关闭,以便将来兼容这两个.

我有什么担心,这不会在OSX / Windows上工作?在Linux上,我没有任何.互联网上有关于上下文共享和从多个线程执行GL调用的大量信息,但是我想要做的只是一个线程中不是主要的OpenGL.我不想继续编码我的应用程序,以后才会发现它不会在其他任何地方工作.

我有一个在Mac / iOS / Windows上运行的应用程序,这个应用程序是以这种方式构造的(在渲染线程中都是GL),但是我不使用SDL.

我刚刚看了一下SDL的Cocoa_GL_CreateContext(在OS X上由SDL_GL_CreateContext调用),它使我从主线程进行的调用设置了上下文.

所以,如果您遇到任何问题,请尝试在主线程中创建GL上下文,然后将其传递给渲染线程(而不是在渲染线程中创建GL上下文).

猜你在找的Windows相关文章