summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcosmic-linden <111533034+cosmic-linden@users.noreply.github.com>2023-05-11 11:39:04 -0700
committerGitHub <noreply@github.com>2023-05-11 11:39:04 -0700
commit3914c4ce16cc84d399c244db66d3713a38cf239c (patch)
tree547d5cec3a863896a8a17386cd7caec2a45c3582
parentb8575bd1bd36a080300f47b004cb4bf054611000 (diff)
parent7d0903533c20a395e12c2d4c290fcde3ec6b2a53 (diff)
Merge pull request #212 from secondlife/SL-19236
SL-19236: Fix HUDs not rendering when transparent water graphics setting is off
-rw-r--r--indra/newview/lldrawpoolalpha.cpp2
-rw-r--r--indra/newview/pipeline.cpp8
-rw-r--r--indra/newview/pipeline.h2
3 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index ec57e20d35..f8d2a9e942 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 6ea86c4cbb..99deae309d 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 e92fa32fc6..7eede30d8f 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -376,6 +376,8 @@ public:
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, ...);