加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

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

发布时间:2020-12-13 20:19:27 所属栏目:Windows 来源:网络整理
导读:这是我目前的设置:我正在使用SDL(目前在Linux上)进行OpenGL渲染.我初始化SDL(SDL_Init)并在主线程中创建应用程序窗口(SDL_CreateWindow),并将其传递给第二个线程.第二个线程从它创建一个OpenGL上下文(SDL_GL_CreateContext)并启动一个渲染循环,而主线程监听
这是我目前的设置:我正在使用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上下文).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读