我正在使用Qt和OGRE创建一个应用程序。我已经按照本教程:http://www.ogre3d.org/tikiwiki/QtOgre。
我在运行应用程序时得到以下输出窗口:
图像显示背景窗口的剪切部分。
以下代码在运行时发出错误:
void THIS::paintGL()
{
// Be sure to call "OgreWidget->repaint();" to call paintGL
swapBuffers();
assert( mOgreWindow );
mOgreRoot->renderOneFrame();
}
错误是:
QOpenGLContext::swapBuffers() called with non-exposed window, behavior is undefined
如何解决此问题?
答案 0 :(得分:0)
我刚刚声明了参数winHandle
,并没有定义与之关联的不同参数。
winHandle = Ogre::StringConverter::toString((unsigned long)(QX11Info::display()));
winHandle += ":";
winHandle += Ogre::StringConverter::toString((unsigned int)(QX11Info::appScreen()));
winHandle += ":";
winHandle += Ogre::StringConverter::toString((unsigned long)(winId()));
在声明Ogre::String winHandle;
之后添加上面的代码片段,并在定义渲染窗口的创建时将其与params相关联。 :)