1
我想用在給定的代碼嵌入食人魔Qt中: https://github.com/gklingler/QOgreWidget斷言失敗錯誤食人魔RenderWindow的
而且它沒有任何麻煩運行我的系統上正常,但當我嘗試添加同樣在我的Qt應用程序,我得到以下錯誤:
SceneManagerFactory for type 'PCZSceneManager' registered.
MovableObjectFactory for type 'PCZLight' registered.
MovableObjectFactory for type 'Portal' registered.
MovableObjectFactory for type 'AntiPortal' registered.
PCZone Factory Type 'ZoneType_Octree' registered
SceneManagerFactory for type 'OctreeSceneManager' registered.
app: ../app/ogre/ogrebasewidget.cpp:45: OgreBaseWidget::OgreBaseWidget(Ogre::Root*, OgreEventHandler*, QWidget*): Assertion `ogreWinId' failed.
The program has unexpectedly finished.
錯誤指向該代碼片段:
Ogre::String winHandle;
winHandle = Ogre::StringConverter::toString((unsigned long) (QX11Info::display()));
winHandle += " : ";
winHandle = Ogre::StringConverter::toString((unsigned long) (QX11Info::appScreen()));
winHandle += " : ";
winHandle = Ogre::StringConverter::toString((unsigned long) (winId()));
Ogre::NameValuePairList params;
params["parentWindowHandle"] = winHandle;
params["FSAA"] = Ogre::String("8");
int w = width();
int h = height();
mOgreRenderWindow = mOgreRoot->createRenderWindow("OgreWidget_RenderWindow",
qMax(w, 640),
qMax(h, 480),
false, ¶ms);
mOgreRenderWindow->setActive(true);
mOgreRenderWindow->setVisible(true);
WId ogreWinId = 0x0;
mOgreRenderWindow->getCustomAttribute("WINDOW", &ogreWinId);
assert(ogreWinId);
QWidget::create(ogreWinId);
setAttribute(Qt::WA_OpaquePaintEvent);
我已經包含<cassert>
在標題中。幫我弄清楚這一點。 :(
交叉帖子:http://www.ogre3d.org/forums/viewtopic.php?f=1&t=81728 – 2014-09-19 08:42:24
我想盡快解決它。我不認爲這是在不同論壇尋求幫助的問題。 – 2014-09-19 09:16:31
是的,但請在下一次明確說明,如下所述:http://meta.stackoverflow.com/a/266159/1947205 – 2014-09-19 09:31:22