Ошибка Assertion Failed для Ogre RenderWindow

Я пытаюсь встроить Ogre в Qt, используя код, указанный по адресу: https://github.com/gklingler/QOgreWidget

И он отлично работает в моей системе без каких-либо проблем, но когда я пытаюсь добавить то же самое в свое приложение 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, &params);
mOgreRenderWindow->setActive(true);
mOgreRenderWindow->setVisible(true);

WId ogreWinId = 0x0;
mOgreRenderWindow->getCustomAttribute("WINDOW", &ogreWinId);
assert(ogreWinId);
QWidget::create(ogreWinId);
setAttribute(Qt::WA_OpaquePaintEvent);

Я включил <cassert> в заголовок. Помогите мне разобраться в этом. :(


person Gurjot Bhatti    schedule 19.09.2014    source источник
comment
Кросс-пост: ogre3d.org/forums/viewtopic.php?f= 1&t=81728   -  person Philip Allgaier    schedule 19.09.2014
comment
Я хочу решить это как можно скорее. Я не считаю проблемой обращаться за помощью на различные форумы.   -  person Gurjot Bhatti    schedule 19.09.2014
comment
Да, но, пожалуйста, объясните это в следующий раз, как описано здесь: meta.stackoverflow.com/a/266159/1947205   -  person Philip Allgaier    schedule 19.09.2014


Ответы (1)


Я нашел причину, по которой он выдавал эту ошибку. У меня также была установлена ​​более старая версия (1.7.4) Ogre вместе с более новой версией 1.9.

Поэтому я удалил эту старую версию из своей системы, и вуаля, она заработала как часы.

person Gurjot Bhatti    schedule 23.09.2014