From: <mg...@us...> - 2008-10-27 19:53:36
|
Revision: 2290 http://planeshift.svn.sourceforge.net/planeshift/?rev=2290&view=rev Author: mgist Date: 2008-10-27 19:53:27 +0000 (Mon, 27 Oct 2008) Log Message: ----------- - Moved some delayed load registration calls around to improve performance. Modified Paths: -------------- personal/Xordan/src/client/charapp.cpp personal/Xordan/src/client/gui/pawscharpick.cpp personal/Xordan/src/client/gui/pawsgmspawn.cpp personal/Xordan/src/client/psengine.h Modified: personal/Xordan/src/client/charapp.cpp =================================================================== --- personal/Xordan/src/client/charapp.cpp 2008-10-27 19:21:52 UTC (rev 2289) +++ personal/Xordan/src/client/charapp.cpp 2008-10-27 19:53:27 UTC (rev 2290) @@ -33,7 +33,6 @@ psCharAppearance::psCharAppearance(iObjectRegistry* objectReg) { - psengine->RegisterDelayedLoader(this); stringSet = csQueryRegistryTagInterface<iShaderVarStringSet>(objectReg, "crystalspace.shader.variablenameset"); engine = csQueryRegistry<iEngine>(objectReg); vfs = csQueryRegistry<iVFS>(objectReg); @@ -532,6 +531,10 @@ Attachment attach; attach.filename = filename; attach.socket = socket; + if(delayedAttach.IsEmpty()) + { + psengine->RegisterDelayedLoader(this); + } delayedAttach.PushBack(attach); } else @@ -595,6 +598,10 @@ delayedAttach.PopFront(); } } + else + { + psengine->UnregisterDelayedLoader(this); + } } void psCharAppearance::ApplyTraits(csString& traitString) Modified: personal/Xordan/src/client/gui/pawscharpick.cpp =================================================================== --- personal/Xordan/src/client/gui/pawscharpick.cpp 2008-10-27 19:21:52 UTC (rev 2289) +++ personal/Xordan/src/client/gui/pawscharpick.cpp 2008-10-27 19:53:27 UTC (rev 2290) @@ -65,8 +65,6 @@ lastResend = 0; charApp = new psCharAppearance(psengine->GetObjectRegistry()); - - psengine->RegisterDelayedLoader(this); loaded = true; } @@ -530,6 +528,7 @@ FactoryIndexEntry* entry = psengine->GetCacheManager()->GetFactoryEntry(models[selectedCharacter].fileName); if (entry && entry->factory) { + psengine->UnregisterDelayedLoader(this); view->View(entry->factory); iMeshWrapper * mesh = view->GetObject(); @@ -559,6 +558,10 @@ } loaded = true; } + else + { + psengine->RegisterDelayedLoader(this); + } } } Modified: personal/Xordan/src/client/gui/pawsgmspawn.cpp =================================================================== --- personal/Xordan/src/client/gui/pawsgmspawn.cpp 2008-10-27 19:21:52 UTC (rev 2289) +++ personal/Xordan/src/client/gui/pawsgmspawn.cpp 2008-10-27 19:53:27 UTC (rev 2290) @@ -58,7 +58,6 @@ { psengine->GetMsgHandler()->Subscribe( this, MSGTYPE_GMSPAWNITEMS ); psengine->GetMsgHandler()->Subscribe( this, MSGTYPE_GMSPAWNTYPES ); - psengine->RegisterDelayedLoader(this); loaded = true; itemName = (pawsTextBox*)FindWidget("ItemName"); @@ -235,9 +234,14 @@ if(indexEntry && indexEntry->factory) { + psengine->UnregisterDelayedLoader(this); objView->View(indexEntry->factory); loaded = true; } + else + { + psengine->RegisterDelayedLoader(this); + } } } Modified: personal/Xordan/src/client/psengine.h =================================================================== --- personal/Xordan/src/client/psengine.h 2008-10-27 19:21:52 UTC (rev 2289) +++ personal/Xordan/src/client/psengine.h 2008-10-27 19:53:27 UTC (rev 2290) @@ -339,7 +339,7 @@ /// The graphics features that are enabled/disabled. uint GetGFXFeatures() { return gfxFeatures; } - void RegisterDelayedLoader(DelayedLoader* obj) { delayedLoaders.Push(obj); } + void RegisterDelayedLoader(DelayedLoader* obj) { delayedLoaders.PushSmart(obj); } void UnregisterDelayedLoader(DelayedLoader* obj) { delayedLoaders.Delete(obj); } private: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |