diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index ec57e20d359cf9f8ed190f679809b34b1abfd647..f8d2a9e942e232dd1636cca74cabd3db387bc1e5 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -157,7 +157,7 @@ void LLDrawPoolAlpha::renderPostDeferred(S32 pass) { LL_PROFILE_ZONE_SCOPED_CATEGORY_DRAWPOOL; - if ((!LLPipeline::sRenderTransparentWater || gCubeSnapshot) && getType() == LLDrawPool::POOL_ALPHA_PRE_WATER) + if (LLPipeline::isWaterClip() && getType() == LLDrawPool::POOL_ALPHA_PRE_WATER) { // don't render alpha objects on the other side of the water plane if water is opaque return; } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 6ea86c4cbb0a837066c0ac34e165a302afc7c6e6..99deae309df52cee4398506b44d5d3ffb3c1f818 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2239,12 +2239,18 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3& static LLTrace::BlockTimerStatHandle FTM_CULL("Object Culling"); +// static +bool LLPipeline::isWaterClip() +{ + return (!sRenderTransparentWater || gCubeSnapshot) && !sRenderingHUDs; +} + void LLPipeline::updateCull(LLCamera& camera, LLCullResult& result) { LL_PROFILE_ZONE_SCOPED_CATEGORY_PIPELINE; //LL_RECORD_BLOCK_TIME(FTM_CULL); LL_PROFILE_GPU_ZONE("updateCull"); // should always be zero GPU time, but drop a timer to flush stuff out - bool water_clip = !sRenderTransparentWater && !sRenderingHUDs; + bool water_clip = isWaterClip(); if (water_clip) { diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index e92fa32fc6156559cfe539907f579c5524f7fd4a..7eede30d8fbaeb90cd1129a2ec4695b16c9864ce 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -376,6 +376,8 @@ class LLPipeline bool hasRenderType(const U32 type) const; bool hasAnyRenderType(const U32 type, ...) const; + static bool isWaterClip(); + void setRenderTypeMask(U32 type, ...); // This is equivalent to 'setRenderTypeMask' //void orRenderTypeMask(U32 type, ...);