/*! @file @author Albert Semenov @date 04/2009 @module */ #ifndef __MYGUI_OGRE_PLATFORM_H__ #define __MYGUI_OGRE_PLATFORM_H__ #include "MyGUI_Prerequest.h" #include "MyGUI_OgreTexture.h" #include "MyGUI_OgreVertexBuffer.h" #include "MyGUI_OgreRenderManager.h" #include "MyGUI_OgreDataManager.h" #include "MyGUI_OgreDiagnostic.h" #include "MyGUI_OgreTexture.h" namespace MyGUI { class OgrePlatform { public: OgrePlatform() : mIsInitialise(false) { mRenderManager = new OgreRenderManager(); mDataManager = new OgreDataManager(); } ~OgrePlatform() { assert(!mIsInitialise); delete mRenderManager; delete mDataManager; } void initialise(Ogre::RenderWindow* _window, Ogre::SceneManager* _scene, const std::string& _group = "General", const std::string& _logname = MYGUI_PLATFORM_LOG_FILENAME) { assert(!mIsInitialise); mIsInitialise = true; LogManager::registerSection(MYGUI_PLATFORM_LOG_SECTION, _logname); mRenderManager->initialise(_window, _scene); mDataManager->initialise(_group); } void shutdown() { assert(mIsInitialise); mIsInitialise = false; mRenderManager->shutdown(); mDataManager->shutdown(); // last platform log LogManager::unregisterSection(MYGUI_PLATFORM_LOG_SECTION); } OgreRenderManager* getRenderManagerPtr() { assert(mIsInitialise); return mRenderManager; } OgreDataManager* getDataManagerPtr() { assert(mIsInitialise); return mDataManager; } private: bool mIsInitialise; OgreRenderManager* mRenderManager; OgreDataManager* mDataManager; }; } // namespace MyGUI #endif // __MYGUI_OGRE_PLATFORM_H__