int main(int argc, char** argv) { try { Ogre::Root *root = new Ogre::Root(); if(!root->restoreConfig() && !root->showConfigDialog()) return -1; root->initialise(false); Ogre::ResourceGroupManager::getSingleton().addResourceLocation("./data", "FileSystem"); Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups(); Gtk::Main kit(argc, argv); MainWindow window; window.show(); while(!window.hasExited()) { //root->renderOneFrame(); kit.iteration(); } } catch( Ogre::Exception& e) { std::cerr << "Caught unhandled Ogre exception: " << e.getFullDescription() << std::endl; } // delete root; return 0; }
void initialise(Ogre::RenderWindow* _window, Ogre::SceneManager* _scene) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mColorBlendMode.blendType = Ogre::LBT_COLOUR; mColorBlendMode.source1 = Ogre::LBS_TEXTURE; mColorBlendMode.source2 = Ogre::LBS_DIFFUSE; mColorBlendMode.operation = Ogre::LBX_MODULATE; mAlphaBlendMode.blendType = Ogre::LBT_ALPHA; mAlphaBlendMode.source1 = Ogre::LBS_TEXTURE; mAlphaBlendMode.source2 = Ogre::LBS_DIFFUSE; mAlphaBlendMode.operation = Ogre::LBX_MODULATE; mTextureAddressMode.u = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.v = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.w = Ogre::TextureUnitState::TAM_CLAMP; mSceneManager = nullptr; mWindow = nullptr; mUpdate = false; mRenderSystem = nullptr; mActiveViewport = 0; Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (root != nullptr) setRenderSystem(root->getRenderSystem()); setRenderWindow(_window); setSceneManager(_scene); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
OgreRTTexture::OgreRTTexture(Ogre::TexturePtr _texture) : mViewport(nullptr), mSaveViewport(nullptr), mTexture(_texture) { mProjectMatrix = Ogre::Matrix4::IDENTITY; Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (root != nullptr) { Ogre::RenderSystem* system = root->getRenderSystem(); if (system != nullptr) { size_t width = mTexture->getWidth(); size_t height = mTexture->getHeight(); mRenderTargetInfo.maximumDepth = system->getMaximumDepthInputValue(); mRenderTargetInfo.hOffset = system->getHorizontalTexelOffset() / float(width); mRenderTargetInfo.vOffset = system->getVerticalTexelOffset() / float(height); mRenderTargetInfo.aspectCoef = float(height) / float(width); mRenderTargetInfo.pixScaleX = 1.0f / float(width); mRenderTargetInfo.pixScaleY = 1.0f / float(height); } if (mTexture->getBuffer()->getRenderTarget()->requiresTextureFlipping()) { mProjectMatrix[1][0] = -mProjectMatrix[1][0]; mProjectMatrix[1][1] = -mProjectMatrix[1][1]; mProjectMatrix[1][2] = -mProjectMatrix[1][2]; mProjectMatrix[1][3] = -mProjectMatrix[1][3]; } } }
void NavigationCell::debugDrawClassification( Ogre::Vector3 start, Ogre::Vector3 end ) { Ogre::Root *root = Ogre::Root::getSingletonPtr(); Ogre::SceneManager* mgr = root->getSceneManager( "SceneManagerInstance" ); Ogre::ManualObject* debug; Ogre::SceneNode* node; if( mgr->hasManualObject( "debugDrawClassification" ) ) debug = mgr->getManualObject( "debugDrawClassification" ); else { debug = mgr->createManualObject( "debugDrawClassification" ); node = mgr->getRootSceneNode()->createChildSceneNode(); node->attachObject( debug ); node->translate( 0, 1, 0 ); debug->setQueryFlags( 0 ); debug->setRenderQueueGroup( Ogre::RENDER_QUEUE_OVERLAY ); } debug->begin( "debug/blue", Ogre::RenderOperation::OT_LINE_LIST ); debug->position( start ); debug->position( end ); debug->end(); // debugDrawCell( debug, "debug/yellow", "debug/blue" ); }
void ModelMountTestCase::testModelMountScaling() { Ogre::Root root; Ogre::SceneManager* sceneManager = root.createSceneManager(Ogre::ST_GENERIC); TestModel model(*sceneManager); //First test with a straight forward case. Ogre::SceneNode* node = sceneManager->getRootSceneNode()->createChildSceneNode(); //We get an error when it's destroyed. So we don't destroy it. SceneNodeProvider* nodeProvider = new SceneNodeProvider(node, nullptr); Model::ModelMount mount(model, nodeProvider); scaleAndTestMount(model, mount, nodeProvider->getNode()); //Test with the parent node being scaled node->setScale(Ogre::Vector3(3.0f, 0.2f, 200.0f)); Ogre::SceneNode* subNode = node->createChildSceneNode(); nodeProvider = new SceneNodeProvider(subNode, nullptr); Model::ModelMount mount2(model, nodeProvider); scaleAndTestMount(model, mount2, nodeProvider->getNode()); //Test with the parent node being scaled and rotated node->setScale(Ogre::Vector3(3.0f, 0.2f, 200.0f)); node->yaw(Ogre::Degree(42)); node->pitch(Ogre::Degree(76)); node->roll(Ogre::Degree(98)); subNode = node->createChildSceneNode(); nodeProvider = new SceneNodeProvider(subNode, nullptr); Model::ModelMount mount3(model, nodeProvider); scaleAndTestMount(model, mount3, nodeProvider->getNode()); }
void COrbitViewView::OnMouseMove(UINT nFlags, CPoint point) { Ogre::Vector3 CameraMove(0.0, 0.0, 0.0); CEngine * Engine = ((COrbitViewApp*)AfxGetApp())->m_Engine; if (Engine == NULL) return; Ogre::Root *Root = Engine->GetRoot(); if (m_Camera == NULL) return; if (m_MouseNavigation) { if (m_Orbit) { Ogre::SceneNode* CameraNode = m_SceneManager->getSceneNode("CameraNode"); CameraMove[1] = m_MousePosition.y - point.y; m_Camera->moveRelative(CameraMove); CameraNode->yaw(Ogre::Radian(0.01 * (m_MousePosition.x - point.x))); } else { CameraMove[0] = -(m_MousePosition.x - point.x); CameraMove[1] = m_MousePosition.y - point.y; m_Camera->moveRelative(CameraMove); } m_MousePosition = point; Root->renderOneFrame(); } CView::OnMouseMove(nFlags, point); }
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, ¶ms); m_ogreWindow->setVisible(false); m_ogreWindow->update(false); doneOgreContext(); return ogreRoot; }
void CUsingControllersView::OnMouseMove(UINT nFlags, CPoint point) { if (m_MouseNavigation) { Ogre::Vector3 CameraMove(0.0, 0.0, 0.0); CameraMove[0] = -(m_MousePosition.x - point.x); CameraMove[1] = m_MousePosition.y - point.y; CEngine * Engine = ((CUsingControllersApp*)AfxGetApp())->m_Engine; if (Engine == NULL) return; Ogre::Root *Root = Engine->GetRoot(); if (m_Camera == NULL) return; Ogre::Vector3 OldPosition = m_Camera->getPosition(); m_Camera->moveRelative(CameraMove); m_MousePosition = point; Root->renderOneFrame(); } CView::OnMouseMove(nFlags, point); }
int startup(){ _root = new Ogre::Root("plugins_d.cfg"); if(!_root->showConfigDialog()){ return -1; } Ogre::RenderWindow* window = _root->initialise(true, "Ventana Ogre"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); Ogre::Camera* camera = _sceneManager->createCamera("Camera"); camera->setPosition(Ogre::Vector3(500,100,500)); camera->lookAt(Ogre::Vector3(0,0,0)); camera->setNearClipDistance(5); Ogre::Viewport* viewport = window->addViewport(camera); viewport->setBackgroundColour(Ogre::ColourValue(0.0,0.0,0.0)); camera->setAspectRatio(Ogre::Real(viewport->getActualWidth()/viewport->getActualHeight())); _listener = new FrameListenerProyectos(window,camera); _root->addFrameListener(_listener); loadResources(); createScene(); _root->startRendering(); return 0; }
void CGeoImageView::OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { switch (nChar) { case 'W': m_Camera->setPolygonMode(Ogre::PM_WIREFRAME); break; case 'S': m_Camera->setPolygonMode(Ogre::PM_SOLID); break; case 'P': m_Camera->setPolygonMode(Ogre::PM_POINTS); break; } Ogre::Root *Root = ((CGeoImageApp*)AfxGetApp())->m_Engine->GetRoot(); Root->renderOneFrame(); CView::OnSysKeyDown(nChar, nRepCnt, nFlags); }
void CUsingControllersView::OnTimer(UINT_PTR nIDEvent) { CEngine *Engine = ((CUsingControllersApp*)AfxGetApp())->m_Engine; Ogre::Root *Root = Engine->GetRoot(); Root->renderOneFrame(); CView::OnTimer(nIDEvent); }
void initialise(Ogre::RenderWindow* _window, Ogre::SceneManager* _scene) { MYGUI_PLATFORM_ASSERT(!mIsInitialise, getClassTypeName() << " initialised twice"); MYGUI_PLATFORM_LOG(Info, "* Initialise: " << getClassTypeName()); mColorBlendMode.blendType = Ogre::LBT_COLOUR; mColorBlendMode.source1 = Ogre::LBS_TEXTURE; mColorBlendMode.source2 = Ogre::LBS_DIFFUSE; mColorBlendMode.operation = Ogre::LBX_MODULATE; mAlphaBlendMode.blendType = Ogre::LBT_ALPHA; mAlphaBlendMode.source1 = Ogre::LBS_TEXTURE; mAlphaBlendMode.source2 = Ogre::LBS_DIFFUSE; mAlphaBlendMode.operation = Ogre::LBX_MODULATE; mTextureAddressMode.u = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.v = Ogre::TextureUnitState::TAM_CLAMP; mTextureAddressMode.w = Ogre::TextureUnitState::TAM_CLAMP; mSceneManager = nullptr; mWindow = nullptr; mUpdate = false; mRenderSystem = nullptr; mActiveViewport = 0; Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (root != nullptr) setRenderSystem(root->getRenderSystem()); setRenderWindow(_window); setSceneManager(_scene); // ADDED sh::MaterialInstance* mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/NoTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/NoTexture", "Default"); mVertexProgramNoTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getVertexProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/OneTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/OneTexture", "Default"); mVertexProgramOneTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getVertexProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/NoTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/NoTexture", "Default"); mFragmentProgramNoTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getFragmentProgram()->_getBindingDelegate(); mat = sh::Factory::getInstance().getMaterialInstance("MyGUI/OneTexture"); sh::Factory::getInstance()._ensureMaterial("MyGUI/OneTexture", "Default"); mFragmentProgramOneTexture = static_cast<sh::OgreMaterial*>(mat->getMaterial())->getOgreTechniqueForConfiguration("Default")->getPass(0) ->getFragmentProgram()->_getBindingDelegate(); MYGUI_PLATFORM_LOG(Info, getClassTypeName() << " successfully initialized"); mIsInitialise = true; }
void Window::render() { Pipe *pipe = static_cast<Pipe *>(getPipe()); Ogre::Root *root = pipe->_ogre->getRoot(); root->_fireFrameStarted(); root->_fireFrameRenderingQueued(); mWindow->update(false); root->_fireFrameEnded(); }
void ClientApplication::run() { Ogre::Root* root = mGraphicsManager->getRoot(); Ogre::RenderWindow* window = mGraphicsManager->getWindow(); root->getRenderSystem()->_initRenderTargets(); root->clearEventTimes(); boost::timer timer; while( !mShutdown ) { if( mShutdownRequested ) { mStateMachine->popTo( 0 ); mShutdown = true; } const Real elapsed = timer.elapsed(); timer.restart(); mEarlyUpdateSignal(); mEarlyFrameSignal( elapsed ); mUpdateSignal(); mFrameSignal( elapsed ); mLateUpdateSignal(); mLateFrameSignal( elapsed ); Ogre::WindowEventUtilities::messagePump(); // Render even when the window is inactive. if( window->isActive() ) { root->renderOneFrame(); } else if( window->isVisible() ) { root->renderOneFrame(); window->update(); #if DIVERSIA_PLATFORM == DIVERSIA_PLATFORM_WIN32 Sleep( ( 1.0 / 60.0 ) * 1000.0 ); #else usleep( ( 1.0 / 60.0 ) * 1000000.0 ); #endif } else if( !window->isActive() && !window->isVisible() ) { #if DIVERSIA_PLATFORM == DIVERSIA_PLATFORM_WIN32 Sleep( ( 1.0 / 60.0 ) * 1000.0 ); #else usleep( ( 1.0 / 60.0 ) * 1000000.0 ); #endif } } }
void CManualObjectView::OnActionsReset() { for (int Index = 0; Index < m_ManualObject->getNumSections(); Index++) { m_ManualObject->setMaterialName(Index, Materials[Index]); } Ogre::Root *Root = ((CManualObjectApp*)AfxGetApp())->m_Engine->GetRoot(); Root->renderOneFrame(); }
void COrbitViewView::OnTimer(UINT_PTR nIDEvent) { m_WalkAnimation->addTime(0.001); CEngine *Engine = ((COrbitViewApp*)AfxGetApp())->m_Engine; Ogre::Root *Root = Engine->GetRoot(); Root->renderOneFrame(); CView::OnTimer(nIDEvent); }
bool application::configure() { if ( root->showConfigDialog() ) { wnd = root->initialise (true, "Render Window"); return true; } else return false; }
void CLinkedAnimationView::OnTimer(UINT_PTR nIDEvent) { CEngine *Engine = ((CLinkedAnimationApp*)AfxGetApp())->m_Engine; Ogre::Root *Root = Engine->GetRoot(); m_AnimationState1->addTime(0.01); m_AnimationState2->addTime(0.01); Root->renderOneFrame(); CView::OnTimer(nIDEvent); }
MapPresenter::MapPresenter(ViewPtr view) : view_(view), camera_man_(0), scene_(0), event_listener_(new EventListener(this)) { //add frame listener OgreContext* pOgreContext = WorkspaceRoot::instance()->ogreContext(); Ogre::Root* root = pOgreContext->root(); root->addFrameListener(event_listener_); }
void CBlendingAnimationsView::OnTimer(UINT_PTR nIDEvent) { CEngine *Engine = ((CBlendingAnimationsApp*)AfxGetApp())->m_Engine; Ogre::Root *Root = Engine->GetRoot(); Ogre::SceneNode *RobotNode = Root->getSceneManager("Walking")->getSceneNode("Robot"); Ogre::Entity *RobotEntity = Root->getSceneManager("Walking")->getEntity("Robot"); Ogre::Skeleton *Skeleton = RobotEntity->getSkeleton(); if (m_WeightDlg->m_IsAverage) { Skeleton->setBlendMode(Ogre::SkeletonAnimationBlendMode::ANIMBLEND_AVERAGE); } else { Skeleton->setBlendMode(Ogre::SkeletonAnimationBlendMode::ANIMBLEND_CUMULATIVE); } double WalkWeight; double SlumpWeight; switch(nIDEvent) { case 1: WalkWeight = m_WeightDlg->m_WalkWeight.GetPos() / 10.0; SlumpWeight = m_WeightDlg->m_SlumpWeight.GetPos() / 10.0; m_WalkAnimation->setWeight(WalkWeight); m_SlumpAnimation->setWeight(SlumpWeight); m_WalkAnimation->addTime(0.01); m_SlumpAnimation->addTime(0.01); break; case 2: m_WalkAnimation->addTime(0.01); break; case 3: m_SlumpAnimation->addTime(0.01); break; } Root->renderOneFrame(); CView::OnTimer(nIDEvent); }
void TimeProfilerWindow::RefreshOgreProfilingWindow() { if (!tab_widget_ || tab_widget_->currentIndex() != 2) return; Ogre::Root *root = Ogre::Root::getSingletonPtr(); assert(root); /* Ogre::CompositorManager Ogre::TextureManager Ogre::MeshManager Ogre::MaterialManager Ogre::SkeletonManager Ogre::HighLevelGpuProgramManager Ogre::FontManager */ /* Ogre::ControllerManager Ogre::DefaultHardwareBufferManager Ogre::GpuProgramManager Ogre::OverlayManager Ogre::ParticleSystemManager */ // Ogre::SceneManagerEnumerator::SceneManagerIterator iter = root->getSceneManagerIterator(); findChild<QLabel*>("labelNumSceneManagers")->setText(QString("%1").arg(CountSize(root->getSceneManagerIterator()))); findChild<QLabel*>("labelNumArchives")->setText(QString("%1").arg(CountSize(Ogre::ArchiveManager::getSingleton().getArchiveIterator()))); findChild<QLabel*>("labelTextureManager")->setText(ReadOgreManagerStatus(Ogre::TextureManager::getSingleton()).c_str()); findChild<QLabel*>("labelMeshManager")->setText(ReadOgreManagerStatus(Ogre::MeshManager::getSingleton()).c_str()); findChild<QLabel*>("labelMaterialManager")->setText(ReadOgreManagerStatus(Ogre::MaterialManager::getSingleton()).c_str()); findChild<QLabel*>("labelSkeletonManager")->setText(ReadOgreManagerStatus(Ogre::SkeletonManager::getSingleton()).c_str()); findChild<QLabel*>("labelCompositorManager")->setText(ReadOgreManagerStatus(Ogre::CompositorManager::getSingleton()).c_str()); findChild<QLabel*>("labelGPUProgramManager")->setText(ReadOgreManagerStatus(Ogre::HighLevelGpuProgramManager::getSingleton()).c_str()); findChild<QLabel*>("labelFontManager")->setText(ReadOgreManagerStatus(Ogre::FontManager::getSingleton()).c_str()); Ogre::SceneManager *scene = root->getSceneManagerIterator().getNext(); if (scene) { findChild<QLabel*>("labelCameras")->setText(QString("%1").arg(CountSize(scene->getCameraIterator()))); findChild<QLabel*>("labelAnimations")->setText(QString("%1").arg(CountSize(scene->getAnimationIterator()))); findChild<QLabel*>("labelAnimationStates")->setText(QString("%1").arg(CountSize(scene->getAnimationStateIterator()))); findChild<QLabel*>("labelLights")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::LightFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelEntities")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::EntityFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelBillboardSets")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::BillboardSetFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelManualObjects")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::ManualObjectFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelBillboardChains")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::BillboardChainFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelRibbonTrails")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::RibbonTrailFactory::FACTORY_TYPE_NAME)))); findChild<QLabel*>("labelParticleSystems")->setText(QString("%1").arg(CountSize(scene->getMovableObjectIterator(Ogre::ParticleSystemFactory::FACTORY_TYPE_NAME)))); } QTimer::singleShot(500, this, SLOT(RefreshOgreProfilingWindow())); }
void CSceletalAnimationView::OnTimer(UINT_PTR nIDEvent) { CEngine *Engine = ((CSceletalAnimationApp*)AfxGetApp())->m_Engine; Ogre::Root *Root = Engine->GetRoot(); Ogre::SceneManager *SceneManager = Root->getSceneManager("Animation"); Ogre::Entity *Entity = SceneManager->getEntity("Animation"); Ogre::Skeleton *Skeleton = Entity->getSkeleton(); m_AnimationState->addTime(0.1); Root->renderOneFrame(); CView::OnTimer(nIDEvent); }
void init_render_sys() { m_root = new Ogre::Root(); m_root->setRenderSystem(m_root->getRenderSystemByName("OpenGL Rendering Subsystem")); m_root->initialise(false); m_frm = new wxFrame(0,-1,wxT("")); NameValuePairList a; a.insert(std::pair<String,String>("externalWindowHandle",StringConverter::toString( (size_t) m_frm->GetHandle() ))); RenderSystem *sys = m_root->getRenderSystem(); RenderWindow *m_ren = sys->_createRenderWindow(String("OgreRenderWindow_00"),1,1,false,&a); MaterialManager::getSingleton().initialise(); m_frm->Show(false); }
RenderBoxWrap::~RenderBoxWrap() { FrameAdvise(false); mRenderBox->removeCamera(); mRenderBox->eventMouseDrag = nullptr; mRenderBox->eventMouseWheel = nullptr; mRenderBox->eventMouseButtonPressed = nullptr; mRenderBox->eventMouseButtonReleased = nullptr; mRenderBox->eventUpdateViewport = nullptr; Ogre::Root * root = Ogre::Root::getSingletonPtr(); if (root && mScene) root->destroySceneManager(mScene); }
OgreCameraWrapper::OgreCameraWrapper(const Glib::ustring& name) : CameraWrapper(name) { // Create the camera from the scenemanager // --------------------------------------- camera = GraphicModule::getInstancePtr()->getSceneManager()->createCamera(name); // Create one viewport, entire window // ---------------------------------- Ogre::Root* ogreRoot = Ogre::Root::getSingletonPtr(); Ogre::RenderWindow* window = ogreRoot->getAutoCreatedWindow(); Ogre::Viewport* vp = window->addViewport(camera); vp->setBackgroundColour(Ogre::ColourValue(0.5,1,0)); }
VIEW_API void windowAttributes(size_t& handle, u32& width, u32& height) { Ogre::Root* root = Ogre::Root::getSingletonPtr(); if (! root) throw std::logic_error ("View::windowAttributes: Ogre hasn't been initialized yet."); Ogre::RenderWindow* win = root->getAutoCreatedWindow(); win->getCustomAttribute("WINDOW", &handle); height = win->getHeight(); width = win->getWidth(); }
int startup(){ _root = new Ogre::Root("plugins_d.cfg"); if(!_root->showConfigDialog()){ return -1; } _window = _root->initialise(true,"Collision Object Exporter"); _sceneManager = _root->createSceneManager(Ogre::ST_GENERIC); loadResources(); createScene(); _root->startRendering(); return 0; }
void MainWindow::updateOGRE() { QMutexLocker locker(&mutex); static bool updateGUI=true; Ogre::Root* mRoot = Ogre::Root::getSingletonPtr(); mRoot->_fireFrameStarted(); // loop through ogre widgets and update animation QList<OgreWidget*> rendlist = this->findChildren<OgreWidget*>(); foreach (OgreWidget* w, rendlist) { // update animation for OgreWidget's sceneManager if (w->mRenderWindow && w->updatesEnabled()) { // update OgreWidget w->update(); //emit w->paintEvent(new QPaintEvent(w->rect())); for (Ogre::SceneManager::MovableObjectIterator mit = w->getSceneManager()->getMovableObjectIterator("Entity"); mit.hasMoreElements(); mit.moveNext() ) { Ogre::Entity *entity = static_cast<Ogre::Entity*>(mit.peekNextValue()); if (updateGUI) { updateGUI = false; } // check has skeleton to avoid crash for non animable entities if (entity->hasSkeleton()) { for (Ogre::AnimationStateIterator animIt = entity->getAllAnimationStates()->getAnimationStateIterator(); animIt.hasMoreElements(); animIt.moveNext() ) { Ogre::AnimationState *animState = animIt.peekNextValue(); if ( animState->getEnabled() ) { //std::cout << entity->getName() << " ZZZZZZZZZZZ " << animState->getAnimationName(); animState->addTime(w->getRenderWindow()->getBestFPS()/10000); } } } } } } mRoot->_fireFrameRenderingQueued(); mRoot->_fireFrameEnded(); }
void NavigationCell::debugDrawCellAndNeigbours() { Ogre::Root *root = Ogre::Root::getSingletonPtr(); Ogre::SceneManager* mgr = root->getSceneManager( "SceneManagerInstance" ); Ogre::ManualObject* debug; Ogre::SceneNode* debugNode; if( mgr->hasSceneNode( "debugDrawNode" ) ) { debugNode = mgr->getSceneNode( "debugDrawNode" ); } else { debugNode = mgr->getRootSceneNode()->createChildSceneNode( "debugDrawNode" ); debugNode->translate( 0, 1, 0 ); // Move up slightly to see lines better. } if( mgr->hasManualObject( "debugDraw" ) ) debug = mgr->getManualObject( "debugDraw" ); else { debug = mgr->createManualObject( "debugDraw" ); debugNode->attachObject( debug ); debug->setQueryFlags( 0 ); debug->setRenderQueueGroup( Ogre::RENDER_QUEUE_OVERLAY ); } for( int i = 0; i < 3; i++ ) { if( mLinks[i] ) { debug->begin( "debug/blue", Ogre::RenderOperation::OT_LINE_STRIP ); debug->position( mLinks[i]->mVertices[0] ); debug->position( mLinks[i]->mVertices[1] ); debug->position( mLinks[i]->mVertices[2] ); debug->position( mLinks[i]->mVertices[0] ); debug->end(); } } debug->begin( "debug/yellow", Ogre::RenderOperation::OT_LINE_STRIP ); debug->position( mVertices[0].x, mVertices[0].y+1, mVertices[0].z ); debug->position( mVertices[1].x, mVertices[1].y+1, mVertices[1].z ); debug->position( mVertices[2].x, mVertices[2].y+1, mVertices[2].z ); debug->position( mVertices[0].x, mVertices[0].y+1, mVertices[0].z ); debug->end(); }
void Camera::TrySetInfiniteFarClip(Ogre::Root& root) { if (root.getRenderSystem()->getCapabilities()->hasCapability(Ogre::RSC_INFINITE_FAR_PLANE)) { mCamera->setFarClipDistance(0); // enable infinite far clip distance if we can } }