CmRenderSystemFactory.cpp 707 B

12345678910111213141516171819202122232425262728
  1. #include "CmRenderSystemFactory.h"
  2. namespace CamelotEngine
  3. {
  4. RenderSystemPtr RenderSystemManager::create(const std::string& name)
  5. {
  6. for(auto iter = getAvailableFactories().begin(); iter != getAvailableFactories().end(); ++iter)
  7. {
  8. if((*iter)->name() == name)
  9. return (*iter)->create();
  10. }
  11. return nullptr;
  12. }
  13. void RenderSystemManager::registerRenderSystemFactory(RenderSystemFactoryPtr factory)
  14. {
  15. assert(factory != nullptr);
  16. getAvailableFactories().push_back(factory);
  17. }
  18. std::vector<RenderSystemFactoryPtr>& RenderSystemManager::getAvailableFactories()
  19. {
  20. static std::vector<RenderSystemFactoryPtr> availableFactories;
  21. return availableFactories;
  22. }
  23. }