Browse Source

Don't immediately update GUI element mesh when localized string changes
Reversed ordering for items in ProfilerOverlay so it matches the code

Marko Pintera 12 năm trước cách đây
mục cha
commit
c8427ee1fe

+ 2 - 2
BansheeEngine/Source/BsGUIButtonBase.cpp

@@ -36,7 +36,7 @@ namespace BansheeEngine
 		mImageDesc.borderTop = mStyle->border.top;
 		mImageDesc.borderTop = mStyle->border.top;
 		mImageDesc.borderBottom = mStyle->border.bottom;
 		mImageDesc.borderBottom = mStyle->border.bottom;
 
 
-		mLocStringUpdatedConn = mContent.getText().addOnStringModifiedCallback(boost::bind(&GUIButtonBase::updateRenderElementsInternal, this));
+		mLocStringUpdatedConn = mContent.getText().addOnStringModifiedCallback(boost::bind(&GUIButtonBase::markContentAsDirty, this));
 	}
 	}
 
 
 	GUIButtonBase::~GUIButtonBase()
 	GUIButtonBase::~GUIButtonBase()
@@ -53,7 +53,7 @@ namespace BansheeEngine
 	void GUIButtonBase::setContent(const GUIContent& content)
 	void GUIButtonBase::setContent(const GUIContent& content)
 	{
 	{
 		mLocStringUpdatedConn.disconnect();
 		mLocStringUpdatedConn.disconnect();
-		mLocStringUpdatedConn = content.getText().addOnStringModifiedCallback(boost::bind(&GUIButtonBase::updateRenderElementsInternal, this));
+		mLocStringUpdatedConn = content.getText().addOnStringModifiedCallback(boost::bind(&GUIButtonBase::markContentAsDirty, this));
 
 
 		mContent = content;
 		mContent = content;
 
 

+ 2 - 2
BansheeEngine/Source/BsGUILabel.cpp

@@ -22,7 +22,7 @@ namespace BansheeEngine
 		mDesc.horzAlign = mStyle->textHorzAlign;
 		mDesc.horzAlign = mStyle->textHorzAlign;
 		mDesc.vertAlign = mStyle->textVertAlign;
 		mDesc.vertAlign = mStyle->textVertAlign;
 
 
-		mLocStringUpdatedConn = mContent.getText().addOnStringModifiedCallback(boost::bind(&GUILabel::updateRenderElementsInternal, this));
+		mLocStringUpdatedConn = mContent.getText().addOnStringModifiedCallback(boost::bind(&GUILabel::markContentAsDirty, this));
 	}
 	}
 
 
 	GUILabel::~GUILabel()
 	GUILabel::~GUILabel()
@@ -76,7 +76,7 @@ namespace BansheeEngine
 	void GUILabel::setContent(const GUIContent& content)
 	void GUILabel::setContent(const GUIContent& content)
 	{
 	{
 		mLocStringUpdatedConn.disconnect();
 		mLocStringUpdatedConn.disconnect();
-		mLocStringUpdatedConn = content.getText().addOnStringModifiedCallback(boost::bind(&GUILabel::updateRenderElementsInternal, this));
+		mLocStringUpdatedConn = content.getText().addOnStringModifiedCallback(boost::bind(&GUILabel::markContentAsDirty, this));
 
 
 		mContent = content;
 		mContent = content;
 		
 		

+ 4 - 4
BansheeEngine/Source/BsProfilerOverlay.cpp

@@ -456,9 +456,9 @@ namespace BansheeEngine
 
 
 				if(curEntry.depth <= MAX_DEPTH)
 				if(curEntry.depth <= MAX_DEPTH)
 				{
 				{
-					for(auto& child : curEntry.entry.childEntries)
+					for(auto iter = curEntry.entry.childEntries.rbegin(); iter != curEntry.entry.childEntries.rend(); ++iter)
 					{
 					{
-						todoBasic.push(TodoBasic(child, curEntry.depth + 1));
+						todoBasic.push(TodoBasic(*iter, curEntry.depth + 1));
 					}
 					}
 				}
 				}
 			}
 			}
@@ -486,9 +486,9 @@ namespace BansheeEngine
 
 
 				if(curEntry.depth <= MAX_DEPTH)
 				if(curEntry.depth <= MAX_DEPTH)
 				{
 				{
-					for(auto& child : curEntry.entry.childEntries)
+					for(auto iter = curEntry.entry.childEntries.rbegin(); iter != curEntry.entry.childEntries.rend(); ++iter)
 					{
 					{
-						todoPrecise.push(TodoPrecise(child, curEntry.depth + 1));
+						todoPrecise.push(TodoPrecise(*iter, curEntry.depth + 1));
 					}
 					}
 				}
 				}
 			}
 			}

+ 2 - 2
CamelotClient/Source/BsMainEditorWindow.cpp

@@ -5,8 +5,8 @@
 #include "BsCamera.h"
 #include "BsCamera.h"
 #include "CmSceneObject.h"
 #include "CmSceneObject.h"
 #include "CmRenderTexture.h"
 #include "CmRenderTexture.h"
-#include "CmCPUProfiler.h"
 #include "BsApplication.h"
 #include "BsApplication.h"
+#include "CmProfiler.h"
 
 
 // DEBUG ONLY
 // DEBUG ONLY
 #include "CmTestTextSprite.h"
 #include "CmTestTextSprite.h"
@@ -117,6 +117,6 @@ namespace BansheeEditor
 
 
 	void MainEditorWindow::update()
 	void MainEditorWindow::update()
 	{
 	{
-		ProfilerOverlay::instance().update();
+		PROFILE_CALL(ProfilerOverlay::instance().update(), "ProfilerOverlay");
 	}
 	}
 }
 }

+ 2 - 1
CamelotCore/Source/CmApplication.cpp

@@ -96,11 +96,12 @@ namespace CamelotFramework
 		while(mRunMainLoop)
 		while(mRunMainLoop)
 		{
 		{
 			gProfiler().beginThread("Sim");
 			gProfiler().beginThread("Sim");
-
+			
 			Platform::update();
 			Platform::update();
 			DeferredCallManager::instance().update();
 			DeferredCallManager::instance().update();
 			RenderWindowManager::instance().update();
 			RenderWindowManager::instance().update();
 			gInput().update();
 			gInput().update();
+
 			PROFILE_CALL(gSceneManager().update(), "SceneManager");
 			PROFILE_CALL(gSceneManager().update(), "SceneManager");
 
 
 			if(!mainLoopCallback.empty())
 			if(!mainLoopCallback.empty())