CmRenderWindowManager.h 683 B

123456789101112131415161718192021222324252627
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmModule.h"
  4. #include "CmRenderWindow.h"
  5. namespace CamelotFramework
  6. {
  7. class CM_EXPORT RenderWindowManager : public Module<RenderWindowManager>
  8. {
  9. public:
  10. /** Creates a new rendering window.
  11. */
  12. RenderWindowPtr create(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow);
  13. vector<RenderWindow*>::type getRenderWindows() const;
  14. protected:
  15. friend class RenderWindow;
  16. CM_MUTEX(mWindowMutex);
  17. vector<RenderWindow*>::type mCreatedWindows;
  18. virtual RenderWindowPtr createImpl(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow) = 0;
  19. void windowDestroyed(RenderWindow* window);
  20. };
  21. }