示例#1
0
Ogre::Root* OgreEngine::startEngine()
{
    m_resources_cfg = "resources.cfg";

    activateOgreContext();

    Ogre::Root *ogreRoot = new Ogre::Root;
    Ogre::RenderSystem *renderSystem = ogreRoot->getRenderSystemByName("OpenGL Rendering Subsystem");
    ogreRoot->setRenderSystem(renderSystem);
    ogreRoot->initialise(false);

    Ogre::NameValuePairList params;

    params["externalGLControl"] = "true";
    params["currentGLContext"] = "true";

    //Finally create our window.
    m_ogreWindow = ogreRoot->createRenderWindow("OgreWindow", 1, 1, false, &params);
    m_ogreWindow->setVisible(false);
    m_ogreWindow->update(false);

    doneOgreContext();

    return ogreRoot;
}
示例#2
0
 void OgreNode::update()
 {
   if (mDirtyFBO) {
     activateOgreContext();
     updateFBO();
     mOgreFboId = getOgreFboId();
     mDirtyFBO = false;
     doneOgreContext();
   }
 }
示例#3
0
 void OgreNode::preprocess()
 {
   activateOgreContext();
   mRenderTarget->update(true);
   doneOgreContext();
 }