diff options
author | Brad Kittenbrink <brad@lindenlab.com> | 2008-02-27 18:58:14 +0000 |
---|---|---|
committer | Brad Kittenbrink <brad@lindenlab.com> | 2008-02-27 18:58:14 +0000 |
commit | 6d52efe452aa8469e0343da1c7d108f3f52ab651 (patch) | |
tree | a87be48e9840d7fc1f7ee514d7c7f994e71fdb3c /indra/newview/llviewerobjectlist.cpp | |
parent | 6027ad2630b8650cabcf00628ee9b0d25bedd67f (diff) |
Merge of windlight into release (QAR-286). This includes all changes in
windlight14 which have passed QA (up through r79932).
svn merge -r 80831:80833 svn+ssh://svn.lindenlab.com/svn/linden/branches/merge_windlight14_r80620
Diffstat (limited to 'indra/newview/llviewerobjectlist.cpp')
-rw-r--r-- | indra/newview/llviewerobjectlist.cpp | 45 |
1 files changed, 20 insertions, 25 deletions
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index 012bdb0843..8d1867cc31 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -36,6 +36,7 @@ #include "message.h" #include "timing.h" #include "llfasttimer.h" +#include "llglimmediate.h" #include "llviewercontrol.h" #include "llface.h" @@ -45,6 +46,7 @@ #include "llnetmap.h" #include "llagent.h" #include "pipeline.h" +#include "llspatialpartition.h" #include "llhoverview.h" #include "llworld.h" #include "llstring.h" @@ -206,30 +208,28 @@ void LLViewerObjectList::processUpdateCore(LLViewerObject* objectp, // ignore returned flags objectp->processUpdateMessage(msg, user_data, i, update_type, dpp); - + if (objectp->isDead()) { // The update failed return; } - updateActive(objectp); - - // Also sets the approx. pixel area - objectp->setPixelAreaAndAngle(gAgent); - // Update the image levels of textures for this object. - objectp->updateTextures(gAgent); + updateActive(objectp); if (just_created) { gPipeline.addObject(objectp); } + // Also sets the approx. pixel area + objectp->setPixelAreaAndAngle(gAgent); + // RN: this must be called after we have a drawable // (from gPipeline.addObject) // so that the drawable parent is set properly findOrphans(objectp, msg->getSenderIP(), msg->getSenderPort()); - + // If we're just wandering around, don't create new objects selected. if (just_created && update_type != OUT_TERSE_IMPROVED @@ -528,18 +528,6 @@ void LLViewerObjectList::processCachedObjectUpdate(LLMessageSystem *mesgsys, processObjectUpdate(mesgsys, user_data, update_type, true, false); } -void LLViewerObjectList::relightAllObjects() -{ - for (S32 i = 0; i < mObjects.count(); i++) - { - LLDrawable *drawable = mObjects[i]->mDrawable; - if (drawable) - { - gPipeline.markRelight(drawable); - } - } -} - void LLViewerObjectList::dirtyAllObjectInventory() { S32 count = mObjects.count(); @@ -1008,7 +996,7 @@ void LLViewerObjectList::shiftObjects(const LLVector3 &offset) } gPipeline.shiftObjects(offset); - gWorldPointer->mPartSim.shift(offset); + gWorldp->shiftRegions(offset); } void LLViewerObjectList::renderObjectsForMap(LLNetMap &netmap) @@ -1109,12 +1097,17 @@ U32 LLViewerObjectList::renderObjectsForSelect(LLCamera &camera, BOOL pick_parce std::vector<LLDrawable*> pick_drawables; - for (i = 0; i < LLPipeline::NUM_PARTITIONS-1; i++) + for (LLWorld::region_list_t::iterator iter = gWorldp->getRegionList().begin(); + iter != gWorldp->getRegionList().end(); ++iter) { - LLSpatialPartition* part = gPipeline.getSpatialPartition(i); - if (part) + LLViewerRegion* region = *iter; + for (U32 i = 0; i < LLViewerRegion::NUM_PARTITIONS; i++) { - part->cull(camera, &pick_drawables, TRUE); + LLSpatialPartition* part = region->getSpatialPartition(i); + if (part) + { + part->cull(camera, &pick_drawables, TRUE); + } } } @@ -1213,10 +1206,12 @@ U32 LLViewerObjectList::renderObjectsForSelect(LLCamera &camera, BOOL pick_parce // // Render pass for selected objects // + gGL.start(); gViewerWindow->renderSelections( TRUE, pick_parcel_wall, FALSE ); // render pickable ui elements, like names, etc. LLHUDObject::renderAllForSelect(); + gGL.stop(); gRenderForSelect = FALSE; |