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