コード例 #1
0
ファイル: ogreengine.cpp プロジェクト: Alexpux/QmlOgre
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
 bool QOgreRenderSystem::fillComponentData(RenderComponent* component, const DataProxy& data)
 {
   activateOgreContext();
   bool res = OgreRenderSystem::fillComponentData(component, data);
   deactivateOgreContext();
   return res;
 }
コード例 #3
0
 bool QOgreRenderSystem::configure(const DataProxy& config)
 {
   activateOgreContext();
   bool res = OgreRenderSystem::configure(config);
   deactivateOgreContext();
   return res;
 }
コード例 #4
0
 bool QOgreRenderSystem::removeComponent(RenderComponent* component)
 {
   activateOgreContext();
   bool res = OgreRenderSystem::removeComponent(component);
   deactivateOgreContext();
   return res;
 }
コード例 #5
0
ファイル: OgreNode.cpp プロジェクト: Unix4ever/engine
 void OgreNode::update()
 {
   if (mDirtyFBO) {
     activateOgreContext();
     updateFBO();
     mOgreFboId = getOgreFboId();
     mDirtyFBO = false;
     doneOgreContext();
   }
 }
コード例 #6
0
  bool QOgreRenderSystem::initialize(const DataProxy& settings)
  {
    activateOgreContext();
    bool res = OgreRenderSystem::initialize(settings);

    mSamples = (GLuint) settings.get<unsigned int>("window.params.FSAA", 0);
    mRoot->addFrameListener(this);

    deactivateOgreContext();
    return res;
  }
コード例 #7
0
  void QOgreRenderSystem::update(const double& time)
  {
    activateOgreContext();
    ComponentStorage<RenderComponent>::update(time);
    Ogre::WindowEventUtilities::messagePump();

    if(mCameraController != 0)
      mCameraController->update(time);

    mRoot->renderOneFrame();
    deactivateOgreContext();
  }
コード例 #8
0
ファイル: OgreNode.cpp プロジェクト: Unix4ever/engine
 void OgreNode::preprocess()
 {
   activateOgreContext();
   mRenderTarget->update(true);
   doneOgreContext();
 }