From: <mg...@us...> - 2008-10-27 16:02:17
|
Revision: 2284 http://planeshift.svn.sourceforge.net/planeshift/?rev=2284&view=rev Author: mgist Date: 2008-10-27 16:02:02 +0000 (Mon, 27 Oct 2008) Log Message: ----------- - Converted the rest of psclient to use iThreadedLoader. Modified Paths: -------------- personal/Xordan/src/client/charapp.cpp personal/Xordan/src/client/charapp.h personal/Xordan/src/client/gui/inventorywindow.cpp personal/Xordan/src/client/gui/inventorywindow.h personal/Xordan/src/common/effects/pseffect.cpp personal/Xordan/src/common/effects/pseffect.h personal/Xordan/src/common/effects/pseffectmanager.cpp personal/Xordan/src/common/effects/pseffectobj.cpp personal/Xordan/src/common/effects/pseffectobj.h personal/Xordan/src/common/effects/pseffectobjdecal.cpp personal/Xordan/src/common/effects/pseffectobjdecal.h personal/Xordan/src/common/effects/pseffectobjlabel.cpp personal/Xordan/src/common/effects/pseffectobjlabel.h personal/Xordan/src/common/effects/pseffectobjmesh.cpp personal/Xordan/src/common/effects/pseffectobjmesh.h personal/Xordan/src/common/effects/pseffectobjparticles.cpp personal/Xordan/src/common/effects/pseffectobjparticles.h personal/Xordan/src/common/effects/pseffectobjquad.cpp personal/Xordan/src/common/effects/pseffectobjquad.h personal/Xordan/src/common/effects/pseffectobjsimpmesh.cpp personal/Xordan/src/common/effects/pseffectobjsimpmesh.h personal/Xordan/src/common/effects/pseffectobjsound.cpp personal/Xordan/src/common/effects/pseffectobjsound.h personal/Xordan/src/common/effects/pseffectobjspire.cpp personal/Xordan/src/common/effects/pseffectobjspire.h personal/Xordan/src/common/effects/pseffectobjstar.cpp personal/Xordan/src/common/effects/pseffectobjstar.h personal/Xordan/src/common/effects/pseffectobjtext.cpp personal/Xordan/src/common/effects/pseffectobjtext.h personal/Xordan/src/common/effects/pseffectobjtext2d.cpp personal/Xordan/src/common/effects/pseffectobjtext2d.h personal/Xordan/src/common/effects/pseffectobjtrail.cpp personal/Xordan/src/common/effects/pseffectobjtrail.h personal/Xordan/src/common/engine/materialmanager.cpp personal/Xordan/src/common/engine/materialmanager.h personal/Xordan/src/common/paws/pawsgenericview.cpp personal/Xordan/src/common/paws/pawsobjectview.cpp personal/Xordan/src/common/util/texfactory.cpp Modified: personal/Xordan/src/client/charapp.cpp =================================================================== --- personal/Xordan/src/client/charapp.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/client/charapp.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -36,7 +36,7 @@ psengine->RegisterDelayedLoader(this); stringSet = csQueryRegistryTagInterface<iShaderVarStringSet>(objectReg, "crystalspace.shader.variablenameset"); engine = csQueryRegistry<iEngine>(objectReg); - loader = csQueryRegistry<iLoader>(objectReg); + loader = csQueryRegistry<iThreadedLoader>(objectReg); vfs = csQueryRegistry<iVFS>(objectReg); g3d = csQueryRegistry<iGraphics3D>(objectReg); txtmgr = g3d->GetTextureManager(); Modified: personal/Xordan/src/client/charapp.h =================================================================== --- personal/Xordan/src/client/charapp.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/client/charapp.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -205,7 +205,7 @@ // Crystal space objects. csRef<iEngine> engine; - csRef<iLoader> loader; + csRef<iThreadedLoader> loader; csRef<iVFS> vfs; csRef<iGraphics3D> g3d; csRef<iTextureManager> txtmgr; Modified: personal/Xordan/src/client/gui/inventorywindow.cpp =================================================================== --- personal/Xordan/src/client/gui/inventorywindow.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/client/gui/inventorywindow.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -68,7 +68,7 @@ { msgHandler = NULL; - loader = csQueryRegistry<iLoader > ( PawsManager::GetSingleton().GetObjectRegistry() ); + loader = csQueryRegistry<iThreadedLoader> ( PawsManager::GetSingleton().GetObjectRegistry() ); bulkSlots.SetSize( 32 ); equipmentSlots.SetSize( PSCHARACTER_SLOT_COUNT ); Modified: personal/Xordan/src/client/gui/inventorywindow.h =================================================================== --- personal/Xordan/src/client/gui/inventorywindow.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/client/gui/inventorywindow.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -107,7 +107,7 @@ void UpdateMoney( const char* moneyName, const char* imageName, int value ); - csRef<iLoader> loader; + csRef<iThreadedLoader> loader; /// Total items to drop int maxDropCount; Modified: personal/Xordan/src/common/effects/pseffect.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffect.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffect.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -87,7 +87,7 @@ return effectAnchors.GetSize()-1; } -bool psEffect::Load(iDocumentNode * node, iView * parentView, psEffect2DRenderer * renderer2d) +bool psEffect::Load(iDocumentNode * node, iView * parentView, psEffect2DRenderer * renderer2d, iLoaderContext * ldr_context) { csRef<iDocumentNodeIterator> xmlbinds; @@ -207,7 +207,7 @@ if (obj) { - if (obj->Load(objNode)) + if (obj->Load(objNode, ldr_context)) { effectObjs.Push(obj); if (mainTextObj == (size_t)(-1)) Modified: personal/Xordan/src/common/effects/pseffect.h =================================================================== --- personal/Xordan/src/common/effects/pseffect.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffect.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -68,9 +68,11 @@ * @param node an xml node containing the effect, must be valid. * @param parentView the CS viewport that views the effect. * @param sourceFile the location of the effect's source. + * @param ldr_context the current loader context. * @return true on success, false otherwise. */ - bool Load(iDocumentNode * node, iView * parentView, psEffect2DRenderer * renderer2d); + bool Load(iDocumentNode * node, iView * parentView, psEffect2DRenderer * renderer2d, + iLoaderContext * ldr_context); /** renders the effect * @param parentView the CS viewport that is viewing the effect Modified: personal/Xordan/src/common/effects/pseffectmanager.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectmanager.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectmanager.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -67,7 +67,7 @@ effectNode = xmlbinds->Next(); psEffect * newEffect = new psEffect(); - newEffect->Load(effectNode, manager->GetView(), manager->Get2DRenderer()); + newEffect->Load(effectNode, manager->GetView(), manager->Get2DRenderer(), ldr_context); if (manager->FindEffect(newEffect->GetName())) { @@ -133,8 +133,10 @@ #ifndef DONT_DO_EFFECTS view = parentView; - csRef<iLoader> loader = csQueryRegistry<iLoader> (psCSSetup::object_reg); - if (!loader->LoadLibraryFile(fileName, effectsCollection, true, true)) + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> (psCSSetup::object_reg); + csRef<iThreadReturn> itr = loader->LoadLibraryFile(fileName, effectsCollection); + itr->Wait(); + if (!itr->WasSuccessful()) { Error2("Failed to load %s",fileName.GetDataSafe()); return false; Modified: personal/Xordan/src/common/effects/pseffectobj.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobj.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobj.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -307,7 +307,7 @@ // CS's smart pointer system } -bool psEffectObj::Load(iDocumentNode *node) +bool psEffectObj::Load(iDocumentNode *node, iLoaderContext* ldr_context) { csRef<iDocumentNode> dataNode; Modified: personal/Xordan/src/common/effects/pseffectobj.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobj.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobj.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -161,7 +161,7 @@ * @param node the xml node containing the effect object, must be valid * @return true on success, false otherwise */ - virtual bool Load(iDocumentNode *node); + virtual bool Load(iDocumentNode *node, iLoaderContext* ldr_context); /** renders the effect * @param up the base up vector of the effect obj Modified: personal/Xordan/src/common/effects/pseffectobjdecal.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjdecal.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjdecal.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -55,7 +55,7 @@ decalMgr->DeleteDecal(decal); } -bool psEffectObjDecal::Load(iDocumentNode *node) +bool psEffectObjDecal::Load(iDocumentNode *node, iLoaderContext* ldr_context) { if (!decalMgr) { @@ -145,7 +145,7 @@ decalTemplate->SetPerpendicularFaceThreshold(perpendicularFaceThreshold); decalTemplate->SetPerpendicularFaceOffset(perpendicularFaceOffset); - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); Modified: personal/Xordan/src/common/effects/pseffectobjdecal.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjdecal.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjdecal.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -36,7 +36,7 @@ virtual ~psEffectObjDecal(); // inheritted function overloads - virtual bool Load(iDocumentNode *node); + virtual bool Load(iDocumentNode *node, iLoaderContext* ldr_context); virtual bool Render(const csVector3 &up); virtual bool Update(csTicks elapsed); virtual psEffectObj *Clone() const; Modified: personal/Xordan/src/common/effects/pseffectobjlabel.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjlabel.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjlabel.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -71,7 +71,7 @@ //printf("label destroyed\n"); } -bool psEffectObjLabel::Load(iDocumentNode *node) +bool psEffectObjLabel::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes name.Clear(); @@ -108,7 +108,7 @@ LoadGlyphs(sizeFileName); } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) { return false; } Modified: personal/Xordan/src/common/effects/pseffectobjlabel.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjlabel.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjlabel.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -59,7 +59,7 @@ virtual bool SetText(const csArray<psEffectTextRow> & rows); virtual bool SetText(int rows, ...); - bool Load(iDocumentNode * node); + bool Load(iDocumentNode * node, iLoaderContext* ldr_context); void LoadGlyphs(csString name); psEffectObj * Clone() const; // inherited function overloads Modified: personal/Xordan/src/common/effects/pseffectobjmesh.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjmesh.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjmesh.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -24,6 +24,7 @@ #include <iengine/material.h> #include <iengine/mesh.h> #include <iengine/movable.h> +#include <imap/ldrctxt.h> #include <imap/loader.h> #include <imesh/objmodel.h> #include <csutil/cscolor.h> @@ -45,7 +46,7 @@ { } -bool psEffectObjMesh::Load(iDocumentNode *node) +bool psEffectObjMesh::Load(iDocumentNode *node, iLoaderContext * ldr_context) { // get the attributes name.Clear(); @@ -70,10 +71,10 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; - return PostSetup(); + return PostSetup(ldr_context); } bool psEffectObjMesh::Render(const csVector3 &up) @@ -169,13 +170,13 @@ return newObj; } -bool psEffectObjMesh::PostSetup() +bool psEffectObjMesh::PostSetup(iLoaderContext * ldr_context) { static unsigned int uniqueID = 0; csString facName = "effect_mesh_fac_"; facName += uniqueID++; - meshFact = effectsCollection->FindMeshFactory(factName); + meshFact = ldr_context->FindMeshFactory(factName); if (!meshFact) { csReport(psCSSetup::object_reg, CS_REPORTER_SEVERITY_ERROR, "planeshift_effects", "Couldn't find mesh factory %s in effect %s\n", factName.GetData(), name.GetData()); Modified: personal/Xordan/src/common/effects/pseffectobjmesh.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjmesh.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjmesh.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -33,7 +33,7 @@ ~psEffectObjMesh(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext * ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; @@ -43,7 +43,7 @@ /** performs the post setup (after the effect obj has been loaded). * Things like create mesh factory, etc are initialized here. */ - bool PostSetup(); + bool PostSetup(iLoaderContext * ldr_context); csString factName; csRef<iSprite3DState> sprState; Modified: personal/Xordan/src/common/effects/pseffectobjparticles.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjparticles.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjparticles.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -25,6 +25,7 @@ #include <iengine/mesh.h> #include <iengine/movable.h> #include <iengine/sector.h> +#include <imap/ldrctxt.h> #include <imap/loader.h> #include <imesh/particles.h> #include <imesh/partsys.h> @@ -49,7 +50,7 @@ // pstate->Stop(); } -bool psEffectObjParticles::Load(iDocumentNode *node) +bool psEffectObjParticles::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes @@ -76,10 +77,10 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; - return PostSetup(); + return PostSetup(ldr_context); } bool psEffectObjParticles::Render(const csVector3 &up) @@ -178,13 +179,13 @@ return newObj; } -bool psEffectObjParticles::PostSetup() +bool psEffectObjParticles::PostSetup(iLoaderContext* ldr_context) { static unsigned int uniqueID = 0; csString facName = "effect_particles_fac_"; facName += uniqueID++; - meshFact = effectsCollection->FindMeshFactory(factName); + meshFact = ldr_context->FindMeshFactory(factName); if (!meshFact) { csReport(psCSSetup::object_reg, CS_REPORTER_SEVERITY_ERROR, "planeshift_effects", Modified: personal/Xordan/src/common/effects/pseffectobjparticles.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjparticles.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjparticles.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -35,7 +35,7 @@ ~psEffectObjParticles(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; @@ -45,7 +45,7 @@ /** performs the post setup (after the effect obj has been loaded). * Things like create mesh factory, etc are initialized here. */ - bool PostSetup(); + bool PostSetup(iLoaderContext* ldr_context); csString factName; Modified: personal/Xordan/src/common/effects/pseffectobjquad.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjquad.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjquad.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -51,7 +51,7 @@ engine->RemoveObject(meshFact); } -bool psEffectObjQuad::Load(iDocumentNode *node) +bool psEffectObjQuad::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes name.Clear(); @@ -73,7 +73,7 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); Modified: personal/Xordan/src/common/effects/pseffectobjquad.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjquad.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjquad.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -67,7 +67,7 @@ virtual ~psEffectObjQuad(); // inheritted function overloads - virtual bool Load(iDocumentNode *node); + virtual bool Load(iDocumentNode *node, iLoaderContext* ldr_context); virtual bool Render(const csVector3 &up); virtual bool Update(csTicks elapsed); virtual void CloneBase(psEffectObj * newObj) const; Modified: personal/Xordan/src/common/effects/pseffectobjsimpmesh.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjsimpmesh.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjsimpmesh.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -46,7 +46,7 @@ } -bool psEffectObjSimpMesh::Load(iDocumentNode *node) +bool psEffectObjSimpMesh::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes @@ -83,7 +83,7 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); @@ -160,22 +160,9 @@ bool psEffectObjSimpMesh::PostSetup() { - csRef<iLoader> loader = csQueryRegistry<iLoader> (psCSSetup::object_reg); + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> (psCSSetup::object_reg); + csRef<iThreadReturn> itr = loader->LoadLibraryFile(fileName, effectsCollection); + itr->Wait(); - loader->LoadLibraryFile(fileName, effectsCollection, false, true); - - /* - // setup the material - if (materialName != "") - { - iMaterialWrapper* mat = matUtil->LoadMaterial(materialName, csString("/this/art/effects/") + materialName); - if (!mat) - { - csReport(psCSSetup::object_reg, CS_REPORTER_SEVERITY_ERROR, "planeshift_effects", "Couldn't find effect material: %s\n", materialName.GetData()); - return false; - } - facState->SetMaterialWrapper(mat); - } - */ return true; } Modified: personal/Xordan/src/common/effects/pseffectobjsimpmesh.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjsimpmesh.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjsimpmesh.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -32,7 +32,7 @@ ~psEffectObjSimpMesh(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; Modified: personal/Xordan/src/common/effects/pseffectobjsound.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjsound.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjsound.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -64,9 +64,9 @@ } } -bool psEffectObjSound::Load(iDocumentNode *node) +bool psEffectObjSound::Load(iDocumentNode *node, iLoaderContext* ldr_context) { - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; // get the attributes Modified: personal/Xordan/src/common/effects/pseffectobjsound.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjsound.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjsound.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -36,7 +36,7 @@ ~psEffectObjSound(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); bool AttachToAnchor(psEffectAnchor * newAnchor); Modified: personal/Xordan/src/common/effects/pseffectobjspire.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjspire.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjspire.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -54,7 +54,7 @@ delete [] colour; } -bool psEffectObjSpire::Load(iDocumentNode *node) +bool psEffectObjSpire::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes name.Clear(); @@ -98,7 +98,7 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); Modified: personal/Xordan/src/common/effects/pseffectobjspire.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjspire.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjspire.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -70,7 +70,7 @@ virtual ~psEffectObjSpire(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; Modified: personal/Xordan/src/common/effects/pseffectobjstar.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjstar.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjstar.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -56,7 +56,7 @@ delete [] colour; } -bool psEffectObjStar::Load(iDocumentNode *node) +bool psEffectObjStar::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes name.Clear(); @@ -86,7 +86,7 @@ return false; } - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); Modified: personal/Xordan/src/common/effects/pseffectobjstar.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjstar.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjstar.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -66,7 +66,7 @@ ~psEffectObjStar(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; Modified: personal/Xordan/src/common/effects/pseffectobjtext.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtext.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtext.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -210,7 +210,7 @@ return false; } -bool psEffectObjText::Load(iDocumentNode * node) +bool psEffectObjText::Load(iDocumentNode * node, iLoaderContext* ldr_context) { // default text attributes fontName = "/this/data/ttf/LiberationSans-Regular.ttf"; @@ -230,7 +230,7 @@ fontSize = attr->GetValueAsInt(); } - if (!psEffectObjQuad::Load(node)) + if (!psEffectObjQuad::Load(node, ldr_context)) return false; return true; Modified: personal/Xordan/src/common/effects/pseffectobjtext.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtext.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtext.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -68,7 +68,7 @@ virtual bool SetText(int rows, ...); // inheritted function overloads - bool Load(iDocumentNode * node); + bool Load(iDocumentNode * node, iLoaderContext* ldr_context); psEffectObj * Clone() const; protected: Modified: personal/Xordan/src/common/effects/pseffectobjtext2d.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtext2d.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtext2d.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -266,9 +266,9 @@ return true; } -bool psEffectObjText2D::Load(iDocumentNode * node) +bool psEffectObjText2D::Load(iDocumentNode * node, iLoaderContext* ldr_context) { - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; // default text attributes Modified: personal/Xordan/src/common/effects/pseffectobjtext2d.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtext2d.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtext2d.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -93,7 +93,7 @@ bool SetText(int rows, ...); // inheritted function overloads - bool Load(iDocumentNode * node); + bool Load(iDocumentNode * node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool AttachToAnchor(psEffectAnchor * newAnchor); bool Update(csTicks elapsed); Modified: personal/Xordan/src/common/effects/pseffectobjtrail.cpp =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtrail.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtrail.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -63,7 +63,7 @@ delete spline[1]; } -bool psEffectObjTrail::Load(iDocumentNode *node) +bool psEffectObjTrail::Load(iDocumentNode *node, iLoaderContext* ldr_context) { // get the attributes name.Clear(); @@ -108,7 +108,7 @@ else useMid = false; - if (!psEffectObj::Load(node)) + if (!psEffectObj::Load(node, ldr_context)) return false; return PostSetup(); Modified: personal/Xordan/src/common/effects/pseffectobjtrail.h =================================================================== --- personal/Xordan/src/common/effects/pseffectobjtrail.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/effects/pseffectobjtrail.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -66,7 +66,7 @@ ~psEffectObjTrail(); // inheritted function overloads - bool Load(iDocumentNode *node); + bool Load(iDocumentNode *node, iLoaderContext* ldr_context); bool Render(const csVector3 &up); bool Update(csTicks elapsed); psEffectObj *Clone() const; Modified: personal/Xordan/src/common/engine/materialmanager.cpp =================================================================== --- personal/Xordan/src/common/engine/materialmanager.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/engine/materialmanager.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -33,7 +33,7 @@ csRef<iGraphics3D> g3d = csQueryRegistry<iGraphics3D> (object_reg); txtmgr = g3d->GetTextureManager(); engine = csQueryRegistry<iEngine> (object_reg); - loader = csQueryRegistry<iLoader> (object_reg); + loader = csQueryRegistry<iThreadedLoader> (object_reg); vfs = csQueryRegistry<iVFS> (object_reg); keepModels = _keepModels; } @@ -68,10 +68,14 @@ name = tempName.GetData(); } - iTextureWrapper* texture = engine->GetTextureList()->FindByName(name); + csRef<iTextureWrapper> texture = engine->GetTextureList()->FindByName(name); if(!texture) - texture = loader->LoadTexture(name, filename, CS_TEXTURE_3D, txtmgr, true, false); + { + csRef<iThreadReturn> itr = loader->LoadTexture(name, filename, CS_TEXTURE_3D, txtmgr, true, false); + itr->Wait(); + texture = scfQueryInterfaceSafe<iTextureWrapper>(itr->GetResultRefPtr()); + } if (!texture) { Modified: personal/Xordan/src/common/engine/materialmanager.h =================================================================== --- personal/Xordan/src/common/engine/materialmanager.h 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/engine/materialmanager.h 2008-10-27 16:02:02 UTC (rev 2284) @@ -63,7 +63,7 @@ iObjectRegistry* object_reg; csRef<iEngine> engine; csRef<iTextureManager> txtmgr; - csRef<iLoader> loader; + csRef<iThreadedLoader> loader; csRef<iVFS> vfs; }; Modified: personal/Xordan/src/common/paws/pawsgenericview.cpp =================================================================== --- personal/Xordan/src/common/paws/pawsgenericview.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/paws/pawsgenericview.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -68,7 +68,7 @@ bool pawsGenericView::LoadMap( const char* map, const char* sector ) { csRef<iEngine> engine = csQueryRegistry<iEngine > ( PawsManager::GetSingleton().GetObjectRegistry()); - csRef<iLoader> loader = csQueryRegistry<iLoader > ( PawsManager::GetSingleton().GetObjectRegistry()); + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> ( PawsManager::GetSingleton().GetObjectRegistry()); csRef<iVFS> VFS = csQueryRegistry<iVFS> ( PawsManager::GetSingleton().GetObjectRegistry()); mapName = map; @@ -80,9 +80,15 @@ // Now load the map into the selected region VFS->ChDir (map); + VFS->SetSyncDir(VFS->GetCwd()); engine->SetCacheManager(NULL); - if ( !loader->LoadMapFile("world", CS_LOADER_KEEP_WORLD, collection, CS_LOADER_ACROSS_REGIONS, true) ) + csRef<iThreadReturn> itr = loader->LoadMapFile("world", CS_LOADER_KEEP_WORLD, collection); + itr->Wait(); + if(!itr->WasSuccessful()) + { return false; + } + VFS->ChDir (map); if (sector) sectorName = sector; Modified: personal/Xordan/src/common/paws/pawsobjectview.cpp =================================================================== --- personal/Xordan/src/common/paws/pawsobjectview.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/paws/pawsobjectview.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -125,7 +125,7 @@ bool pawsObjectView::LoadMap( const char* map, const char* sector ) { csRef<iEngine> engine = csQueryRegistry<iEngine > ( PawsManager::GetSingleton().GetObjectRegistry()); - csRef<iLoader> loader = csQueryRegistry<iLoader > ( PawsManager::GetSingleton().GetObjectRegistry()); + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> ( PawsManager::GetSingleton().GetObjectRegistry()); csRef<iVFS> VFS = csQueryRegistry<iVFS> ( PawsManager::GetSingleton().GetObjectRegistry()); stage = engine->FindSector( sector ); @@ -153,9 +153,13 @@ // Now load the map into the selected region VFS->ChDir (map); + VFS->SetSyncDir(VFS->GetCwd()); engine->SetCacheManager(NULL); - if ( !loader->LoadMap(worldNode, CS_LOADER_KEEP_WORLD, col, CS_LOADER_ACROSS_REGIONS, true) ) + csRef<iThreadReturn> itr = loader->LoadMap(worldNode, CS_LOADER_KEEP_WORLD, col); + itr->Wait(); + if (!itr->WasSuccessful()) return false; + VFS->ChDir (map); stage = engine->FindSector( sector ); CS_ASSERT( stage ); @@ -196,8 +200,10 @@ if ( !meshfact ) { - csRef<iLoader> loader = csQueryRegistry<iLoader> (PawsManager::GetSingleton().GetObjectRegistry()); - meshfact = loader->LoadMeshObjectFactory (fileName); + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> (PawsManager::GetSingleton().GetObjectRegistry()); + csRef<iThreadReturn> itr = loader->LoadMeshObjectFactory (fileName); + itr->Wait(); + meshfact = scfQueryInterfaceSafe<iMeshFactoryWrapper>(itr->GetResultRefPtr()); } if ( !meshfact ) Modified: personal/Xordan/src/common/util/texfactory.cpp =================================================================== --- personal/Xordan/src/common/util/texfactory.cpp 2008-10-27 16:00:50 UTC (rev 2283) +++ personal/Xordan/src/common/util/texfactory.cpp 2008-10-27 16:02:02 UTC (rev 2284) @@ -235,10 +235,11 @@ } // if still not found here, attempt to load - csRef<iLoader> loader = csQueryRegistry<iLoader> (object_reg); + csRef<iThreadedLoader> loader = csQueryRegistry<iThreadedLoader> (object_reg); if (!loader) return NULL; // or something else - csRef<iImage> image = loader->LoadImage(name, - CS_IMGFMT_TRUECOLOR); + csRef<iThreadReturn> itr = loader->LoadImage(name, CS_IMGFMT_TRUECOLOR); + itr->Wait(); + csRef<iImage> image = scfQueryInterfaceSafe<iImage>(itr->GetResultRefPtr()); if (image && image->GetWidth()!=32) // Save in cache { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |