Ver código fonte

WIP: macOS port
- Windows now properly report resize events
- Window under cursor can be found even when the window is fullscreen

Marko Pintera 7 anos atrás
pai
commit
c74a41586d

+ 1 - 1
Source/BansheeCore/BsCoreApplication.cpp

@@ -269,13 +269,13 @@ namespace bs
 
 
 			gCoreThread().queueCommand(std::bind(&CoreApplication::beginCoreProfiling, this), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&CoreApplication::beginCoreProfiling, this), CTQF_InternalQueue);
 			gCoreThread().queueCommand(&Platform::_coreUpdate, CTQF_InternalQueue);
 			gCoreThread().queueCommand(&Platform::_coreUpdate, CTQF_InternalQueue);
+			gCoreThread().queueCommand(std::bind(&ct::RenderWindowManager::_update, ct::RenderWindowManager::instancePtr()), CTQF_InternalQueue);
 
 
 			gCoreThread().update(); 
 			gCoreThread().update(); 
 			gCoreThread().submitAll(); 
 			gCoreThread().submitAll(); 
 
 
 			gCoreThread().queueCommand(std::bind(&CoreApplication::frameRenderingFinishedCallback, this), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&CoreApplication::frameRenderingFinishedCallback, this), CTQF_InternalQueue);
 
 
-			gCoreThread().queueCommand(std::bind(&ct::RenderWindowManager::_update, ct::RenderWindowManager::instancePtr()), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&ct::QueryManager::_update, ct::QueryManager::instancePtr()), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&ct::QueryManager::_update, ct::QueryManager::instancePtr()), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&CoreApplication::endCoreProfiling, this), CTQF_InternalQueue);
 			gCoreThread().queueCommand(std::bind(&CoreApplication::endCoreProfiling, this), CTQF_InternalQueue);
 
 

+ 9 - 47
Source/BansheeCore/Managers/BsRenderWindowManager.cpp

@@ -43,8 +43,7 @@ namespace bs
 		{
 		{
 			Lock lock(mWindowMutex);
 			Lock lock(mWindowMutex);
 
 
-			auto iterFind = std::find_if(begin(mMovedOrResizedWindows), end(mMovedOrResizedWindows), 
-				[&](const MoveOrResizeData& x) { return x.window == window; });
+			auto iterFind = std::find(begin(mMovedOrResizedWindows), end(mMovedOrResizedWindows), window);
 
 
 			if(iterFind != mMovedOrResizedWindows.end())
 			if(iterFind != mMovedOrResizedWindows.end())
 				mMovedOrResizedWindows.erase(iterFind);
 				mMovedOrResizedWindows.erase(iterFind);
@@ -86,29 +85,9 @@ namespace bs
 		if (window == nullptr)
 		if (window == nullptr)
 			return;
 			return;
 
 
-		auto iterFind = std::find_if(begin(mMovedOrResizedWindows), end(mMovedOrResizedWindows),
-			[&](const MoveOrResizeData& x) { return x.window == window; });
-
-		const RenderWindowProperties& props = coreWindow->getProperties();
-		MoveOrResizeData* moveResizeData = nullptr;
-
-		if (iterFind != end(mMovedOrResizedWindows))
-		{
-			moveResizeData = &*iterFind;
-		}
-		else
-		{
-			MoveOrResizeData newEntry;
-			newEntry.window = window;
-
-			mMovedOrResizedWindows.push_back(newEntry);
-			moveResizeData = &mMovedOrResizedWindows.back();
-		}
-
-		moveResizeData->x = props.left;
-		moveResizeData->y = props.top;
-		moveResizeData->width = props.width;
-		moveResizeData->height = props.height;
+		auto iterFind = std::find(begin(mMovedOrResizedWindows), end(mMovedOrResizedWindows), window);
+		if (iterFind == end(mMovedOrResizedWindows))
+			mMovedOrResizedWindows.push_back(window);
 	}
 	}
 
 
 	void RenderWindowManager::notifyMouseLeft(ct::RenderWindow* coreWindow)
 	void RenderWindowManager::notifyMouseLeft(ct::RenderWindow* coreWindow)
@@ -146,7 +125,7 @@ namespace bs
 	void RenderWindowManager::_update()
 	void RenderWindowManager::_update()
 	{
 	{
 		RenderWindow* newWinInFocus = nullptr;
 		RenderWindow* newWinInFocus = nullptr;
-		Vector<MoveOrResizeData> movedOrResizedWindows;
+		Vector<RenderWindow*> movedOrResizedWindows;
 		Vector<RenderWindow*> mouseLeftWindows;
 		Vector<RenderWindow*> mouseLeftWindows;
 		Vector<RenderWindow*> closeRequestedWindows;
 		Vector<RenderWindow*> closeRequestedWindows;
 
 
@@ -154,25 +133,8 @@ namespace bs
 			Lock lock(mWindowMutex);
 			Lock lock(mWindowMutex);
 			newWinInFocus = mNewWindowInFocus;
 			newWinInFocus = mNewWindowInFocus;
 
 
-			for (auto& moveResizeData : mMovedOrResizedWindows)
-			{
-				RenderWindow* window = moveResizeData.window;
-				const RenderWindowProperties& props = window->getProperties();
-
-				// Need to eliminate non-dirty ones because it's possible we already triggered the resize event
-				// if the resize call originated from the sim thread, so we don't trigger it twice.
-
-				bool isDirty = moveResizeData.x != props.left || moveResizeData.y != props.top
-					|| moveResizeData.width != props.width || moveResizeData.height != props.height;
-
-				if (isDirty)
-					movedOrResizedWindows.push_back(moveResizeData);
-			}
-
-			mMovedOrResizedWindows.clear();
-
-			mouseLeftWindows = mMouseLeftWindows;
-			mMouseLeftWindows.clear();
+			std::swap(mMovedOrResizedWindows, movedOrResizedWindows);
+			std::swap(mMouseLeftWindows, mouseLeftWindows);
 
 
 			for (auto& dirtyPropertyWindow : mDirtyProperties)
 			for (auto& dirtyPropertyWindow : mDirtyProperties)
 				dirtyPropertyWindow->syncProperties();
 				dirtyPropertyWindow->syncProperties();
@@ -193,8 +155,8 @@ namespace bs
 			mWindowInFocus = newWinInFocus;
 			mWindowInFocus = newWinInFocus;
 		}
 		}
 
 
-		for (auto& moveResizeData : movedOrResizedWindows)
-			moveResizeData.window->onResized();
+		for (auto& window : movedOrResizedWindows)
+			window->onResized();
 
 
 		if (!onMouseLeftWindow.empty())
 		if (!onMouseLeftWindow.empty())
 		{
 		{

+ 1 - 9
Source/BansheeCore/Managers/BsRenderWindowManager.h

@@ -16,14 +16,6 @@ namespace bs
 	/** Handles creation and internal updates relating to render windows. */
 	/** Handles creation and internal updates relating to render windows. */
 	class BS_CORE_EXPORT RenderWindowManager : public Module<RenderWindowManager>
 	class BS_CORE_EXPORT RenderWindowManager : public Module<RenderWindowManager>
 	{
 	{
-		/**	Holds information about a window that was moved or resized. */
-		struct MoveOrResizeData
-		{
-			INT32 x, y;
-			UINT32 width, height;
-			RenderWindow* window;
-		};
-
 	public:
 	public:
 		RenderWindowManager();
 		RenderWindowManager();
 		~RenderWindowManager();
 		~RenderWindowManager();
@@ -88,7 +80,7 @@ namespace bs
 
 
 		RenderWindow* mWindowInFocus;
 		RenderWindow* mWindowInFocus;
 		RenderWindow* mNewWindowInFocus;
 		RenderWindow* mNewWindowInFocus;
-		Vector<MoveOrResizeData> mMovedOrResizedWindows;
+		Vector<RenderWindow*> mMovedOrResizedWindows;
 		Vector<RenderWindow*> mMouseLeftWindows;
 		Vector<RenderWindow*> mMouseLeftWindows;
 		Vector<RenderWindow*> mCloseRequestedWindows;
 		Vector<RenderWindow*> mCloseRequestedWindows;
 		UnorderedSet<RenderWindow*> mDirtyProperties;
 		UnorderedSet<RenderWindow*> mDirtyProperties;

+ 5 - 1
Source/BansheeCore/Private/MacOS/BsMacOSPlatform.mm

@@ -498,7 +498,11 @@ namespace bs
 			// Ignore windows outside of layer 0, as those appear to be desktop elements
 			// Ignore windows outside of layer 0, as those appear to be desktop elements
 			int32_t layer;
 			int32_t layer;
 			CFNumberGetValue(layerRef, kCFNumberIntType, &layer);
 			CFNumberGetValue(layerRef, kCFNumberIntType, &layer);
-			if(layer != 0)
+
+			// Layer 0 appear to be normal windows
+			// Layer 25 appear to be fullscreen windows
+			// Note: This is based on experimentation, as no documentation about it exists
+			if(layer != 0 && layer != 25)
 				continue;
 				continue;
 
 
 			CFDictionaryRef boundsRef = (CFDictionaryRef)CFDictionaryGetValue(dict, kCGWindowBounds);
 			CFDictionaryRef boundsRef = (CFDictionaryRef)CFDictionaryGetValue(dict, kCGWindowBounds);

+ 7 - 48
Source/BansheeCore/RenderAPI/BsRenderWindow.cpp

@@ -49,15 +49,6 @@ namespace bs
 		getMutableProperties().width = width;
 		getMutableProperties().width = width;
 		getMutableProperties().height = height;
 		getMutableProperties().height = height;
 
 
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().width = width;
-			getCore()->getSyncedProperties().height = height;
-		}
-
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
-		onResized();
-
 		gCoreThread().queueCommand(std::bind(resizeFunc, getCore(), width, height));
 		gCoreThread().queueCommand(std::bind(resizeFunc, getCore(), width, height));
 	}
 	}
 
 
@@ -72,13 +63,6 @@ namespace bs
 		getMutableProperties().left = left;
 		getMutableProperties().left = left;
 		getMutableProperties().top = top;
 		getMutableProperties().top = top;
 
 
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().left = left;
-			getCore()->getSyncedProperties().top = top;
-		}
-
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(moveFunc, getCore(), left, top));
 		gCoreThread().queueCommand(std::bind(moveFunc, getCore(), left, top));
 	}
 	}
 
 
@@ -91,12 +75,7 @@ namespace bs
 		};
 		};
 
 
 		getMutableProperties().isHidden = true;
 		getMutableProperties().isHidden = true;
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().isHidden = true;
-		}
 
 
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(hideFunc, getCore()));
 		gCoreThread().queueCommand(std::bind(hideFunc, getCore()));
 	}
 	}
 
 
@@ -109,12 +88,7 @@ namespace bs
 		};
 		};
 
 
 		getMutableProperties().isHidden = false;
 		getMutableProperties().isHidden = false;
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().isHidden = false;
-		}
 
 
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(showFunc, getCore()));
 		gCoreThread().queueCommand(std::bind(showFunc, getCore()));
 	}
 	}
 
 
@@ -127,12 +101,7 @@ namespace bs
 		};
 		};
 
 
 		getMutableProperties().isMaximized = false;
 		getMutableProperties().isMaximized = false;
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().isMaximized = false;
-		}
 
 
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(minimizeFunc, getCore()));
 		gCoreThread().queueCommand(std::bind(minimizeFunc, getCore()));
 	}
 	}
 
 
@@ -145,12 +114,7 @@ namespace bs
 		};
 		};
 
 
 		getMutableProperties().isMaximized = true;
 		getMutableProperties().isMaximized = true;
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().isMaximized = true;
-		}
 
 
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(maximizeFunc, getCore()));
 		gCoreThread().queueCommand(std::bind(maximizeFunc, getCore()));
 	}
 	}
 
 
@@ -163,12 +127,7 @@ namespace bs
 		};
 		};
 
 
 		getMutableProperties().isMaximized = false;
 		getMutableProperties().isMaximized = false;
-		{
-			ScopedSpinLock lock(getCore()->mLock);
-			getCore()->getSyncedProperties().isMaximized = false;
-		}
 
 
-		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		gCoreThread().queueCommand(std::bind(restoreFunc, getCore()));
 		gCoreThread().queueCommand(std::bind(restoreFunc, getCore()));
 	}
 	}
 
 
@@ -245,7 +204,7 @@ namespace bs
 					syncProps.height = props.height;
 					syncProps.height = props.height;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				RenderWindowManager::instance().notifyMovedOrResized(coreWindow);
 				RenderWindowManager::instance().notifyMovedOrResized(coreWindow);
 
 
 				break;
 				break;
@@ -260,7 +219,7 @@ namespace bs
 					syncProps.left = props.left;
 					syncProps.left = props.left;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				RenderWindowManager::instance().notifyMovedOrResized(coreWindow);
 				RenderWindowManager::instance().notifyMovedOrResized(coreWindow);
 
 
 				break;
 				break;
@@ -272,7 +231,7 @@ namespace bs
 					syncProps.hasFocus = true;
 					syncProps.hasFocus = true;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				RenderWindowManager::instance().notifyFocusReceived(coreWindow);
 				RenderWindowManager::instance().notifyFocusReceived(coreWindow);
 				break;
 				break;
 			}
 			}
@@ -283,7 +242,7 @@ namespace bs
 					syncProps.hasFocus = false;
 					syncProps.hasFocus = false;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				RenderWindowManager::instance().notifyFocusLost(coreWindow);
 				RenderWindowManager::instance().notifyFocusLost(coreWindow);
 				break;
 				break;
 			}
 			}
@@ -294,7 +253,7 @@ namespace bs
 					syncProps.isMaximized = false;
 					syncProps.isMaximized = false;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				break;
 				break;
 			}
 			}
 			case WindowEventType::Maximized:
 			case WindowEventType::Maximized:
@@ -304,7 +263,7 @@ namespace bs
 					syncProps.isMaximized = true;
 					syncProps.isMaximized = true;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				break;
 				break;
 			}
 			}
 			case WindowEventType::Restored:
 			case WindowEventType::Restored:
@@ -314,7 +273,7 @@ namespace bs
 					syncProps.isMaximized = false;
 					syncProps.isMaximized = false;
 				}
 				}
 
 
-				RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
+				ct::RenderWindowManager::instance().notifySyncDataDirty(coreWindow);
 				break;
 				break;
 			}
 			}
 			case WindowEventType::MouseLeft:
 			case WindowEventType::MouseLeft:

+ 6 - 2
Source/BansheeGLRenderAPI/BsGLRenderAPI.cpp

@@ -432,8 +432,9 @@ namespace bs { namespace ct
 					return unit;
 					return unit;
 				};
 				};
 
 
-				UINT32 imageUnitCount = 0;
 				FrameVector<UINT32> imageUnits(6);
 				FrameVector<UINT32> imageUnits(6);
+#if BS_OPENGL_4_2 || BS_OPENGLES_3_1
+				UINT32 imageUnitCount = 0;
 				auto getImageUnit = [&](UINT32 binding)
 				auto getImageUnit = [&](UINT32 binding)
 				{
 				{
 					for (UINT32 i = 0; i < (UINT32)imageUnits.size(); i++)
 					for (UINT32 i = 0; i < (UINT32)imageUnits.size(); i++)
@@ -447,6 +448,7 @@ namespace bs { namespace ct
 
 
 					return unit;
 					return unit;
 				};
 				};
+#endif
 
 
 				UINT32 uniformUnitCount = 0;
 				UINT32 uniformUnitCount = 0;
 				FrameVector<UINT32> uniformUnits(6);
 				FrameVector<UINT32> uniformUnits(6);
@@ -464,8 +466,9 @@ namespace bs { namespace ct
 					return unit;
 					return unit;
 				};
 				};
 
 
-				UINT32 sharedStorageUnitCount = 0;
 				FrameVector<UINT32> sharedStorageUnits(6);
 				FrameVector<UINT32> sharedStorageUnits(6);
+#if BS_OPENGL_4_3 || BS_OPENGLES_3_1
+				UINT32 sharedStorageUnitCount = 0;
 				auto getSharedStorageUnit = [&](UINT32 binding)
 				auto getSharedStorageUnit = [&](UINT32 binding)
 				{
 				{
 					for (UINT32 i = 0; i < (UINT32)sharedStorageUnits.size(); i++)
 					for (UINT32 i = 0; i < (UINT32)sharedStorageUnits.size(); i++)
@@ -479,6 +482,7 @@ namespace bs { namespace ct
 
 
 					return unit;
 					return unit;
 				};
 				};
+#endif
 
 
 				const UINT32 numStages = 6;
 				const UINT32 numStages = 6;
 				for(UINT32 i = 0; i < numStages; i++)
 				for(UINT32 i = 0; i < numStages; i++)

+ 2 - 1
Source/BansheeGLRenderAPI/MacOS/BsMacOSContext.mm

@@ -12,7 +12,7 @@ namespace bs::ct
 	struct MacOSContext::Pimpl
 	struct MacOSContext::Pimpl
 	{
 	{
 		NSOpenGLContext* context = nil;
 		NSOpenGLContext* context = nil;
-		bool dirty = true;
+		std::atomic_bool dirty{true};
 	};
 	};
 
 
 	MacOSContext::MacOSContext(bool depthStencil, UINT32 msaaCount)
 	MacOSContext::MacOSContext(bool depthStencil, UINT32 msaaCount)
@@ -106,6 +106,7 @@ namespace bs::ct
 		if(m->dirty)
 		if(m->dirty)
 		{
 		{
 			[m->context update];
 			[m->context update];
+
 			m->dirty = false;
 			m->dirty = false;
 		}
 		}
 	}
 	}

+ 10 - 11
Source/BansheeGLRenderAPI/MacOS/BsMacOSRenderWindow.mm

@@ -65,7 +65,7 @@ namespace bs
 			getCore()->mSyncedProperties = props;
 			getCore()->mSyncedProperties = props;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 	}
 	}
 
 
 	void MacOSRenderWindow::destroy()
 	void MacOSRenderWindow::destroy()
@@ -109,8 +109,7 @@ namespace bs
 				getCore()->getSyncedProperties().height = height;
 				getCore()->getSyncedProperties().height = height;
 			}
 			}
 
 
-			bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
-			onResized();
+			ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		}
 		}
 	}
 	}
 
 
@@ -131,7 +130,7 @@ namespace bs
 				getCore()->getSyncedProperties().left = props.left;
 				getCore()->getSyncedProperties().left = props.left;
 			}
 			}
 
 
-			bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+			ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		}
 		}
 	}
 	}
 
 
@@ -143,7 +142,7 @@ namespace bs
 			getCore()->getSyncedProperties().isHidden = true;
 			getCore()->getSyncedProperties().isHidden = true;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		mWindow->hide();
 		mWindow->hide();
 	}
 	}
 
 
@@ -155,7 +154,7 @@ namespace bs
 			getCore()->getSyncedProperties().isHidden = false;
 			getCore()->getSyncedProperties().isHidden = false;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		mWindow->show();
 		mWindow->show();
 	}
 	}
 
 
@@ -168,7 +167,7 @@ namespace bs
 			getCore()->getSyncedProperties().isMaximized = false;
 			getCore()->getSyncedProperties().isMaximized = false;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		mWindow->minimize();
 		mWindow->minimize();
 	}
 	}
 
 
@@ -181,7 +180,7 @@ namespace bs
 			getCore()->getSyncedProperties().isMaximized = true;
 			getCore()->getSyncedProperties().isMaximized = true;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		mWindow->maximize();
 		mWindow->maximize();
 	}
 	}
 
 
@@ -194,7 +193,7 @@ namespace bs
 			getCore()->getSyncedProperties().isMaximized = false;
 			getCore()->getSyncedProperties().isMaximized = false;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		mWindow->restore();
 		mWindow->restore();
 	}
 	}
 
 
@@ -267,7 +266,7 @@ namespace bs
 			getCore()->getSyncedProperties().height = props.height;
 			getCore()->getSyncedProperties().height = props.height;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		_windowMovedOrResized();
 		_windowMovedOrResized();
 	}
 	}
 
 
@@ -303,7 +302,7 @@ namespace bs
 			getCore()->getSyncedProperties().height = props.height;
 			getCore()->getSyncedProperties().height = props.height;
 		}
 		}
 
 
-		bs::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
+		ct::RenderWindowManager::instance().notifySyncDataDirty(getCore().get());
 		_windowMovedOrResized();
 		_windowMovedOrResized();
 	}
 	}