|
|
@@ -1,11 +1,14 @@
|
|
|
#include "CmRenderWindowManager.h"
|
|
|
+#include "CmPlatform.h"
|
|
|
|
|
|
namespace CamelotFramework
|
|
|
{
|
|
|
RenderWindowManager::RenderWindowManager()
|
|
|
:mWindowInFocus(nullptr), mNewWindowInFocus(nullptr)
|
|
|
{
|
|
|
-
|
|
|
+ Platform::onWindowFocusReceived.connect(boost::bind(&RenderWindowManager::windowFocusReceived, this, _1));
|
|
|
+ Platform::onWindowFocusLost.connect(boost::bind(&RenderWindowManager::windowFocusLost, this, _1));
|
|
|
+ Platform::onWindowMovedOrResized.connect(boost::bind(&RenderWindowManager::windowMovedOrResized, this, _1));
|
|
|
}
|
|
|
|
|
|
RenderWindowPtr RenderWindowManager::create(RENDER_WINDOW_DESC& desc, RenderWindowPtr parentWindow)
|
|
|
@@ -39,12 +42,21 @@ namespace CamelotFramework
|
|
|
|
|
|
void RenderWindowManager::windowFocusReceived(RenderWindow* window)
|
|
|
{
|
|
|
+ window->_windowFocusReceived();
|
|
|
+
|
|
|
CM_LOCK_MUTEX(mWindowMutex);
|
|
|
mNewWindowInFocus = window;
|
|
|
}
|
|
|
|
|
|
+ void RenderWindowManager::windowFocusLost(RenderWindow* window)
|
|
|
+ {
|
|
|
+ window->_windowFocusLost();
|
|
|
+ }
|
|
|
+
|
|
|
void RenderWindowManager::windowMovedOrResized(RenderWindow* window)
|
|
|
{
|
|
|
+ window->_windowMovedOrResized();
|
|
|
+
|
|
|
CM_LOCK_MUTEX(mWindowMutex);
|
|
|
|
|
|
auto iterFind = std::find(begin(mMovedOrResizedWindows), end(mMovedOrResizedWindows), window);
|