CmOverlayManager.cpp 870 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "CmOverlayManager.h"
  2. #include "CmCamera.h"
  3. #include "CmOverlay.h"
  4. namespace CamelotEngine
  5. {
  6. void OverlayManager::render(const Camera* camera, DeferredRenderContextPtr& renderContext) const
  7. {
  8. auto overlays = mOverlaysPerCamera.find(camera);
  9. if(overlays == mOverlaysPerCamera.end())
  10. return;
  11. for(auto& overlay : overlays->second)
  12. {
  13. overlay->render(camera, renderContext);
  14. }
  15. }
  16. void OverlayManager::attachOverlay(const Camera* camera, const Overlay* overlay)
  17. {
  18. mOverlaysPerCamera[camera].insert(overlay);
  19. }
  20. void OverlayManager::detachOverlay(const Camera* camera, const Overlay* overlay)
  21. {
  22. mOverlaysPerCamera[camera].erase(overlay);
  23. }
  24. void OverlayManager::detachOverlayFromAll(const Overlay* overlay)
  25. {
  26. for(auto& overlays : mOverlaysPerCamera)
  27. {
  28. overlays.second.erase(overlay);
  29. }
  30. }
  31. }