| 12345678910111213141516171819202122232425262728293031 |
- #include "CmRenderWindowManager.h"
- namespace CamelotFramework
- {
- RenderWindowPtr RenderWindowManager::create(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow)
- {
- RenderWindowPtr renderWindow = createImpl(desc, parentWindow);
- renderWindow->setThisPtr(renderWindow);
- renderWindow->initialize();
- mCreatedWindows.push_back(renderWindow.get());
-
- if(!onWindowCreated.empty())
- onWindowCreated(renderWindow.get());
- return renderWindow;
- }
- void RenderWindowManager::windowDestroyed(RenderWindow* window)
- {
- auto iterFind = std::find(begin(mCreatedWindows), end(mCreatedWindows), window);
- if(iterFind == mCreatedWindows.end())
- CM_EXCEPT(InternalErrorException, "Trying to destroy a window that is not in the created windows list.");
- if(!onWindowDestroyed.empty())
- onWindowDestroyed(window);
- mCreatedWindows.erase(iterFind);
- }
- }
|