summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-06-10 14:54:47 -0700
committerGraham Linden <graham@lindenlab.com>2019-06-10 14:54:47 -0700
commitc15baecbfbc9baffdeb6ec53b7e4090470514657 (patch)
tree2b78b844174ff68a8228108730b7136df6d68422 /indra/newview/pipeline.cpp
parent6d90dd996ed4381726a2c1666c0ea3af0984c7af (diff)
SL-11370
Modify culling logic to exclude objects correctly in < Mid graphics.
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r--indra/newview/pipeline.cpp25
1 files changed, 18 insertions, 7 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index 7e819c0a52..d4c25a4ebc 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -9360,8 +9360,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
updateCull(camera, mSky);
stateSort(camera, mSky);
- gPipeline.grabReferences(mSky);
-
renderGeom(camera, TRUE);
gPipeline.popRenderTypeMask();
@@ -9395,7 +9393,6 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLGLDisable cull(GL_CULL_FACE);
updateCull(camera, mReflectedObjects, -water_clip, &plane);
stateSort(camera, mReflectedObjects);
- gPipeline.grabReferences(mReflectedObjects);
renderGeom(camera);
}
@@ -9472,11 +9469,25 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
clip_plane.disable();
}
- updateCull(camera, mRefractedObjects, water_clip, &plane);
- stateSort(camera, mRefractedObjects);
- gPipeline.grabReferences(mRefractedObjects);
+ if (detail > 0)
+ {
+ if (detail < 4)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_PARTICLES, END_RENDER_TYPES);
+ if (detail < 3)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_AVATAR, END_RENDER_TYPES);
+ if (detail < 2)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_VOLUME, END_RENDER_TYPES);
+ }
+ }
+ }
- renderGeom(camera);
+ updateCull(camera, mRefractedObjects, water_clip, &plane);
+ stateSort(camera, mRefractedObjects);
+ renderGeom(camera);
+ }
if (LLGLSLShader::sNoFixedFunction)
{