openmw-tes3coop/extern/mygui_3.0.1/OgrePlatform/include/MyGUI_OgrePlatform.h
2010-07-08 00:23:28 +02:00

83 lines
1.6 KiB
C++

/*!
@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__