| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- #include "CmRenderWindowManager.h"
- namespace CamelotFramework
- {
- RenderWindowPtr RenderWindowManager::create(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow)
- {
- RenderWindowPtr renderWindow = createImpl(desc, parentWindow);
- renderWindow->setThisPtr(renderWindow);
- renderWindow->initialize();
- {
- CM_LOCK_MUTEX(mWindowMutex);
- mCreatedWindows.push_back(renderWindow.get());
- }
-
- return renderWindow;
- }
- void RenderWindowManager::windowDestroyed(RenderWindow* window)
- {
- {
- CM_LOCK_MUTEX(mWindowMutex);
- 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.");
- mCreatedWindows.erase(iterFind);
- }
- }
- vector<RenderWindow*>::type RenderWindowManager::getRenderWindows() const
- {
- CM_LOCK_MUTEX(mWindowMutex);
- return mCreatedWindows;
- }
- }
|