Morgul ogre + qt5

Vous voulez de l'aide ? Postez ici :)
Post Reply
hugox
Posts: 2
Joined: 03 Dec 2013, 15:38

Morgul ogre + qt5

Post by hugox »

Bonjour jmgr,


Je travail sur une intégration du moteur Ogre 3D dans qt 5 faites par Markus :
http://advancingusability.wordpress.com ... qml-scene/

mon problème est que je voudrais pouvoir mettre a jour la scène que je dessine et que je n'y arrive pas...
J'ai voulu mettre en place un framelistener mais je ne sais pas ou mettre la boucle de rendu ( qui attend les évenement envoyé par le frameListener )

si je la met :

Code: Select all

 disconnect(this, &ExampleApp::beforeRendering, this, &ExampleApp::initializeOgre);


    cout<<"initializeOgre3DCASE"<<endl;

    // start up Ogre
    m_ogreEngine = new OgreEngine(this);
    m_root = m_ogreEngine->startEngine();
    m_ogreEngine->setupResources();
 
    //m_ogreEngine->activateOgreContext();
    pRenderWindow=m_ogreEngine->getRenderWindow();


    createScene();
    createFrameListener();

    // La Boucle de rendu
    m_root->startRendering();

//createScene();
    while(true)
   {
       Ogre::WindowEventUtilities::messagePump();

       if(pRenderWindow->isClosed())
           std::cout<<"pRenderWindow close"<<std::endl;

       if(!m_root->renderOneFrame())
           std::cout<<"root renderOneFrame"<<std::endl;
   }



    //m_ogreEngine->doneOgreContext();
    emit(ogreInitialized());
mon ecran se freeze et il ne passe rien....
Mais du coup je ne sais pas ou la mettre...
De plus je me demande si on ne peut pas faire sans framelistener depuis ogreitem....


J'ai vu que vous aviez travaillé sur Morgul et que vous aviez modifié pas mal de choses par rapport à l'original!
Pourriez m'apporter votre aide?



Cordialement

hugox
hugox
Posts: 2
Joined: 03 Dec 2013, 15:38

Re: Morgul ogre + qt5

Post by hugox »

Aprés si j'essaie directement de mettre a jour ma scene depuis l'exterieure de la boucle de rendu (en appuyant sur un bouton) pour pouvoir dessiner ma tete d'ogre par exemeple...

Code: Select all

void OgreItem::modifscene(){  

     // create an ogre head entity and place it at the origin
     m_sceneManager->getRootSceneNode()->attachObject(m_sceneManager->createEntity("Head", "ogrehead.mesh"));
  
 }
j'obtiens :

Code: Select all

terminate called after throwing an instance of 'Ogre::InternalErrorException'
  what():  OGRE EXCEPTION(7:InternalErrorException): Cannot create GL index buffer in GLHardwareIndexBuffer::GLHardwareIndexBuffer at ogre_src_v1-8-1/RenderSystems/GL/src/OgreGLHardwareIndexBuffer.cpp (line 45)

J'ai lu pas mal de truc sur differents forums mais je m'y perd un peu....

notemment ResourceBackgroundQueue ou frame listener....


Du coup si quelqu'un à une idée merci d'avance!
Post Reply