QGLWidget渲染周围的小部件

时间:2013-06-18 11:23:00

标签: c++ qt opengl

这个问题非常难以解释,我甚至无法用一个词来解释这个现象所以我只会给你看一张照片。

enter image description here

最左边是实际的dockwidget,它的所有重叠都是一个openGL小部件,它应该是蓝色和树。但事实并非如此。

这个问题甚至被称为什么?如何解决?

我还应该补充一点,当没有涉及dockwidget时,它可以很好地工作。

编辑:新信息,在使用openGL探查器分析应用程序之后,我发现当使用dock小部件时,CGLUpdateContext永远不会因某种原因被调用,并且每个gl调用都会导致错误GL_INVALID_FRAMEBUFFER_OPERATIO NI还发现错误invalid drawable出现在控制台中。

进一步的研究表明,这可能是Qt中的错误。我会更多地研究它。

EDIT2:我在初始化openGL并调用glClear之前已经进行了此检查,这是抛出第一个错误的地方。

GLenum er = glCheckFramebufferStatus(GL_FRAMEBUFFER);
if(er != GL_FRAMEBUFFER_COMPLETE) {
    abort();
}

当使用停靠窗口小部件时,此时会中止,告诉我们帧缓冲区不完整。但是,如果我删除停靠小部件,这不会中止,应用程序工作正常。 我现在知道帧缓冲区不完整,但为什么呢?这是Qt的一个问题,而不是我的代码。

0 个答案:

没有答案