CmRenderSystemManager.h 629 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include <string>
  3. #include <vector>
  4. #include <memory>
  5. #include <assert.h>
  6. #include "CmRenderSystemFactory.h"
  7. namespace CamelotEngine
  8. {
  9. typedef std::shared_ptr<RenderSystemFactory> RenderSystemFactoryPtr;
  10. class RenderSystemManager
  11. {
  12. public:
  13. static void initialize(const std::string& name);
  14. static Ogre::RenderSystem* getActive() { return mActiveRenderSystem.get(); }
  15. static void registerRenderSystemFactory(RenderSystemFactoryPtr factory);
  16. private:
  17. static std::vector<RenderSystemFactoryPtr>& getAvailableFactories();
  18. static RenderSystemPtr mActiveRenderSystem;
  19. };
  20. }