diff --git a/components/myguiplatform/myguiplatform.cpp b/components/myguiplatform/myguiplatform.cpp index a2964692a6..69c61554c0 100644 --- a/components/myguiplatform/myguiplatform.cpp +++ b/components/myguiplatform/myguiplatform.cpp @@ -7,34 +7,22 @@ namespace osgMyGUI { -Platform::Platform(osgViewer::Viewer *viewer, osg::Group *guiRoot, Resource::ImageManager *imageManager, const VFS::Manager* vfs, float uiScalingFactor) - : mRenderManager(nullptr) - , mDataManager(nullptr) - , mLogManager(nullptr) - , mLogFacility(nullptr) +Platform::Platform(osgViewer::Viewer *viewer, osg::Group *guiRoot, Resource::ImageManager *imageManager, + const VFS::Manager* vfs, float uiScalingFactor) + : mLogFacility(nullptr) + , mLogManager(std::make_unique()) + , mDataManager(std::make_unique(vfs)) + , mRenderManager(std::make_unique(viewer, guiRoot, imageManager, uiScalingFactor)) { - mLogManager = new MyGUI::LogManager(); - mRenderManager = new RenderManager(viewer, guiRoot, imageManager, uiScalingFactor); - mDataManager = new DataManager(vfs); } -Platform::~Platform() -{ - delete mRenderManager; - mRenderManager = nullptr; - delete mDataManager; - mDataManager = nullptr; - delete mLogManager; - mLogManager = nullptr; - delete mLogFacility; - mLogFacility = nullptr; -} +Platform::~Platform() {} void Platform::initialise(const std::string &resourcePath, const std::string &_logName) { if (!_logName.empty() && !mLogFacility) { - mLogFacility = new LogFacility(_logName, false); + mLogFacility = std::make_unique(_logName, false); mLogManager->addLogSource(mLogFacility->getSource()); } @@ -52,13 +40,12 @@ void Platform::shutdown() RenderManager *Platform::getRenderManagerPtr() { - return mRenderManager; + return mRenderManager.get(); } DataManager *Platform::getDataManagerPtr() { - return mDataManager; + return mDataManager.get(); } - } diff --git a/components/myguiplatform/myguiplatform.hpp b/components/myguiplatform/myguiplatform.hpp index e8d3378e66..b360ca50d0 100644 --- a/components/myguiplatform/myguiplatform.hpp +++ b/components/myguiplatform/myguiplatform.hpp @@ -2,6 +2,7 @@ #define OPENMW_COMPONENTS_MYGUIPLATFORM_MYGUIPLATFORM_H #include +#include #include @@ -45,13 +46,10 @@ namespace osgMyGUI DataManager* getDataManagerPtr(); private: - RenderManager* mRenderManager; - DataManager* mDataManager; - MyGUI::LogManager* mLogManager; - LogFacility* mLogFacility; - - void operator=(const Platform&); - Platform(const Platform&); + std::unique_ptr mLogFacility; + std::unique_ptr mLogManager; + std::unique_ptr mDataManager; + std::unique_ptr mRenderManager; }; }