#pragma once #include #include #include #include #include "CmRenderSystemFactory.h" namespace CamelotEngine { typedef std::shared_ptr RenderSystemFactoryPtr; class RenderSystemManager { public: static void initialize(const std::string& name); static Ogre::RenderSystem* getActive() { return mActiveRenderSystem.get(); } static void registerRenderSystemFactory(RenderSystemFactoryPtr factory); private: static std::vector& getAvailableFactories(); static RenderSystemPtr mActiveRenderSystem; }; }