OSG与OPENGL分别绘制同一个应用的两个窗口的问题

来源:互联网 发布:mysql 自动开启事件 编辑:程序博客网 时间:2024/06/05 12:46

同一个应用有两个窗口分别用OSG与OPENGL绘制,使用的窗口空间都是QGLWidget。

1) 绘制OPENGL窗口;2)开启OSG窗口,绘制一次;3)然后回到OPENGL窗口绘制图形。4)销毁OSG窗口。

这时OPENGL窗口的绘制状态受到了OSG窗口的影响。

反复测试,找不到原因。如果销毁窗口的时候,释放OSG创建的Context,可解决这个问题。

猜测是OSG窗口的OPENGL的gl状态穿越了,没有更好的办法解决这个问题。不知道绘制背后的gl状态如何相互影响,待以后有时间研究。

Robertosfield的一段话,对这个问题做了说明:

Mixing OpenGL apps/toolkits with the OSG requires one to be very 
careful about the state both the OSG side and the other OpenGL code 
side to make sure that neither interfere with each other. I've 
written about the issues plenty of times on osg-users so have a trawl 
through the archives. In general I would just recommend trying to 
avoid mixing is it certainly makes for an easier life alround. 

0 0
原创粉丝点击