diff --git a/apps/opencs/view/render/overlaysystem.hpp b/apps/opencs/view/render/overlaysystem.hpp new file mode 100644 index 0000000000..64f95975e7 --- /dev/null +++ b/apps/opencs/view/render/overlaysystem.hpp @@ -0,0 +1,36 @@ +#ifndef OPENCS_VIEW_OVERLAYSYSTEM_H +#define OPENCS_VIEW_OVERLAYSYSTEM_H + +#include + +namespace CSVRender +{ + class OverlaySystem + { + Ogre::OverlaySystem *mOverlaySystem; + + OverlaySystem() { + mOverlaySystem = new Ogre::OverlaySystem(); + } + + ~OverlaySystem() { + delete mOverlaySystem; + } + + OverlaySystem(OverlaySystem const&); + void operator=(OverlaySystem const&); + + public: + + static OverlaySystem &instance() { + static OverlaySystem mInstance; + return mInstance; + } + + Ogre::OverlaySystem *get() { + return mOverlaySystem; + } + }; +} + +#endif // OPENCS_VIEW_OVERLAYSYSTEM_H diff --git a/apps/opencs/view/render/scenewidget.cpp b/apps/opencs/view/render/scenewidget.cpp index 5e5a929ec7..2c0893ce01 100644 --- a/apps/opencs/view/render/scenewidget.cpp +++ b/apps/opencs/view/render/scenewidget.cpp @@ -11,18 +11,16 @@ #include #include #include -#include #include "../widget/scenetoolmode.hpp" #include "../../model/settings/usersettings.hpp" #include "navigation.hpp" #include "lighting.hpp" +#include "overlaysystem.hpp" namespace CSVRender { - Ogre::OverlaySystem *SceneWidget::mOverlaySystem = NULL; - SceneWidget::SceneWidget(QWidget *parent) : QWidget(parent) , mCamera(NULL) @@ -62,8 +60,7 @@ namespace CSVRender setLighting (&mLightingDay); - if(!mOverlaySystem) - mOverlaySystem = new Ogre::OverlaySystem(); + mOverlaySystem = OverlaySystem::instance().get(); mSceneMgr->addRenderQueueListener(mOverlaySystem); QTimer *timer = new QTimer (this); diff --git a/apps/opencs/view/render/scenewidget.hpp b/apps/opencs/view/render/scenewidget.hpp index f53e935f41..1adbf3f173 100644 --- a/apps/opencs/view/render/scenewidget.hpp +++ b/apps/opencs/view/render/scenewidget.hpp @@ -97,7 +97,7 @@ namespace CSVRender Ogre::SceneManager* mSceneMgr; Ogre::RenderWindow* mWindow; Ogre::Viewport *mViewport; - static Ogre::OverlaySystem *mOverlaySystem; + Ogre::OverlaySystem *mOverlaySystem; Navigation *mNavigation; Lighting *mLighting;