OMKDebugOverlayExtension.cpp

Go to the documentation of this file.
00001 #include "OMKDebugOverlayExtension.h"
00002 #include "OMKOgreVis.h"
00003 #include "dotSceneInterface.h"
00004 //-------------------------------------------------------------------------
00005 #ifdef _USE_DOT_OCTREE
00006         #include "DotSceneManager.h"
00007 #endif
00008 //-------------------------------------------------------------------------
00009 using namespace OMK ;
00010 using namespace OMK::Inp ;
00011 //-------------------------------------------------------------------------
00012 REGISTER_EXTENSION_FACTORY( DebugOverlayExtension, "DebugOverlay" ) ;
00013 //-------------------------------------------------------------------------
00014 DebugOverlayExtension::DebugOverlayExtension( ExtensibleSimulatedObject* owner, const Name& id, bool registerExtension )
00015   : GenericKeyExtension< OMK::Vis::OgreVis >( owner, id, registerExtension, "d" ),
00016   _show(true), _init(false),
00017   _overlayName("MissingDebugOverlayName")
00018 {
00019 
00020 }
00021 //-------------------------------------------------------------------------
00022 DebugOverlayExtension::~DebugOverlayExtension()
00023 {
00024 }
00025 
00026 //---------------------------------------------------------------------------
00028 //---------------------------------------------------------------------------
00029 void DebugOverlayExtension::preComputeParameters() 
00030 {
00031   if (!_init){
00032 
00033     //_overlay = Ogre::OverlayManager::getSingleton().getByName("Editor/DebugOverlay");
00034     _overlay = Ogre::OverlayManager::getSingleton().getByName(_overlayName);
00035     _init = true;
00036     _overlay->show();
00037   }
00038   //Update Overlay
00039   updateStats();
00040 
00041 }
00042 void DebugOverlayExtension::updateStats()
00043 {
00044 Ogre::RenderWindow* _window = _owner->touchRoot().getAutoCreatedWindow();
00045   
00046   Ogre::OverlayElement* guiCurr = Ogre::OverlayManager::getSingleton().getOverlayElement("Ov_OpenMASK/CurrFps");
00047   Ogre::OverlayElement* guiTris = Ogre::OverlayManager::getSingleton().getOverlayElement("Ov_OpenMASK/NumTris");
00048 
00049   const Ogre::RenderTarget::FrameStats& stats = _window->getStatistics();
00050 
00051   guiCurr->setCaption(Ogre::StringConverter::toString(stats.lastFPS));
00052   guiTris->setCaption(Ogre::StringConverter::toString(stats.triangleCount));
00053 
00054 
00055 }
00056 //---------------------------------------------------------------------------
00058 //---------------------------------------------------------------------------
00059 
00060 void DebugOverlayExtension::action() 
00061 {
00062 
00063   //Have to wait for OgreVisInit
00064   if (_show)
00065     _overlay->hide();
00066   else 
00067     _overlay->show();
00068   _show =!_show;
00069 }
00070 //-------------------------------------------------------------------------
00071 bool DebugOverlayExtension::loadExtensionParameters( const ConfigurationParameterDescriptor * node ) 
00072 {
00073   bool ok = true ;
00074   ok = ParametersAccessor::get( node, "DebugOverlayName", _overlayName ) ;
00075   return ok &&  GenericKeyExtension< OMK::Vis::OgreVis>::loadExtensionParameters(node) ;
00076 }

logo OpenMask

Documentation generated on Mon Jun 9 11:45:56 2008

Generated with doxygen by Dimitri van Heesch ,   1997-2007