summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-06-23 11:46:09 -0500
committerRunitaiLinden <davep@lindenlab.com>2023-06-23 11:46:09 -0500
commit22eecf1018d8adbf214b9f1072b3cd6d3ab3d5ae (patch)
tree98586195750547e343941ed10132f4f440853300 /indra/newview/pipeline.cpp
parent3a1b60b2baa80218a79bf33cf983bd28df4f2343 (diff)
SL-19897 Fix for 100% transparent objects not showing up in highlight transparent until LoD switch.
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r--indra/newview/pipeline.cpp34
1 files changed, 31 insertions, 3 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 38f27d4dfa..e64ef6d555 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -10593,8 +10593,36 @@ void LLPipeline::handleShadowDetailChanged()
}
}
-void LLPipeline::overrideEnvironmentMap()
+class LLOctreeDirty : public OctreeTraveler
{
- //mReflectionMapManager.mProbes.clear();
- //mReflectionMapManager.addProbe(LLViewerCamera::instance().getOrigin());
+public:
+ virtual void visit(const OctreeNode* state)
+ {
+ LLSpatialGroup* group = (LLSpatialGroup*)state->getListener(0);
+
+ group->setState(LLSpatialGroup::GEOM_DIRTY);
+ gPipeline.markRebuild(group);
+
+ for (LLSpatialGroup::bridge_list_t::iterator i = group->mBridgeList.begin(); i != group->mBridgeList.end(); ++i)
+ {
+ LLSpatialBridge* bridge = *i;
+ traverse(bridge->mOctree);
+ }
+ }
+};
+
+
+void LLPipeline::rebuildDrawInfo()
+{
+ for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
+ iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
+ {
+ LLViewerRegion* region = *iter;
+
+ LLOctreeDirty dirty;
+
+ LLSpatialPartition* part = region->getSpatialPartition(LLViewerRegion::PARTITION_VOLUME);
+ dirty.traverse(part->mOctree);
+ }
}
+