调用opengl方法在QGLWidget上绘制,在用单线程时生成一部分数据就可以调用opengl方法绘制显示出来,但用双线程同时生成时,不同达到同时绘制的目的,只有当设置if为主线程的情况下可以绘制由主线程生成的部分,而换其他线程就会报错
Cannot make QOpenGLContext current in a different thread,求助该如何解决
Opengl对多线程支持不好。好像不能跨线程使用。具体你再查查。EGL创建的context与你glXXXX那些函数必须在同一个线程上用,不然各种可能都有,反正我试过openvr,英伟达,高通的opengl库都会出那种问题,况且显卡总线就那一个,多线程其实并不能提高啥效率,一般渲染多线程,都是将渲染线程与渲染逻辑线程分开。
在osgviewerQt的例子中有这样一句话:
#ifQT_VERSION>=0x050000
//Qt5iscurrentlycrashingandreporting"CannotmakeQOpenGLContextcurrentinadifferentthread"whentheviewerisrunmulti-threaded,thisisregressionfromQt4
简单的说就是qt5版本的时候不能允许多线程,所以讲线程设置为单线程就可以了
osgViewer::ViewerBase::ThreadingModelthreadingModel=osgViewer::ViewerBase::SingleThreaded;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。