CmRendererManager.h 794 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmRendererFactory.h"
  4. #include "CmModule.h"
  5. namespace CamelotFramework
  6. {
  7. class CM_EXPORT RendererManager : public Module<RendererManager>
  8. {
  9. public:
  10. void setActive(const String& name);
  11. RendererPtr getActive() { return mActiveRenderer; }
  12. /**
  13. * @brief Core renderer represents a set of shared features within all renderers.
  14. * Techniques using this renderer name will report as if they are supported regardless
  15. * of the active renderer.
  16. *
  17. * @return The core renderer name.
  18. */
  19. static const String& getCoreRendererName();
  20. void registerFactory(RendererFactoryPtr factory);
  21. private:
  22. Vector<RendererFactoryPtr>::type mAvailableFactories;
  23. RendererPtr mActiveRenderer;
  24. };
  25. }