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 }
Documentation generated on Mon Jun 9 11:45:56 2008 |
Generated with doxygen by Dimitri van Heesch , 1997-2007 |