C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – OpenGL上的多线程渲染大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有@L_489_1@多线程应用程序,其中我试图用不同的线程呈现.首先,我尝试在所有线程之间使用相同的呈现上下文,但是我为其他线程获取NULL当前上下文.我已经在互联网上阅读,@L_489_1@上下文只能一次在@L_489_1@线程当前.

所以我决定做一些不同的事情.我创建@L_489_1@窗口,我从它获得HDC并创建了第@L_489_1@RC.在这之后,我在线程之间共享这个HDC,并且在创建的每个新线程中,我从同@L_489_1@HDC获取@L_489_1@新的RC,并且使它成为当前的线程.每当我这样做,RC返回总是不同的(通常是前@L_489_1@值1).我做出@L_489_1@断言来检查wglGetCurrentContext()是否返回@L_489_1@RC,它看起来像是返回刚创建的@L_489_1@.但是在渲染之后,我没有渲染,如果我调用GetLastError()我获得错误6(无效句柄)

那么,这是否意味着,尽管wglCreateContext()的每@L_489_1@新的调用都给了我@L_489_1@新的值,不知何故这意味着所有这些不同的值与OpenGL调用相同的“连接通道”?

这是否意味着我将永远不得不对线程上的上@L_489_1@渲染上下文进行无效,并在新的渲染上激活它?我真的必须让这个同步,或者有什么其他的方式来解决这个问题吗?

解决方法

别!!!

您将无法尝试多线程渲染您的渲染器.基本上你正在跑到@L_489_1@大的比赛条件,而驱动程序将忙于同步线程以某种方式使其理解.

为了获得最佳的渲染性能,所有OpenGL操作只能保留@L_489_1@线程.所有并行化在GPU上都是免费的.

大佬总结

以上是大佬教程为你收集整理的c – OpenGL上的多线程渲染全部内容,希望文章能够帮你解决c – OpenGL上的多线程渲染所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。