diff options
author | cosmic-linden <111533034+cosmic-linden@users.noreply.github.com> | 2023-12-04 16:44:40 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-04 16:44:40 -0800 |
commit | 1718fe5da2e19ddbe9a738eef273112632e5dd35 (patch) | |
tree | cb358e20947f6378a009c97103f878d8a79a3ff1 /indra/newview/llsettingsvo.cpp | |
parent | 4a8a3100a978989f246b7f837e8a45968908d27b (diff) | |
parent | 18f42a659b98741a9d8c05731a8137080c9094b5 (diff) |
Merge pull request #556 from secondlife/davep/SL-20611
SL-20611 Make haze effect local lights. Incidental fix for EventPump coroutine sometimes doing unsafe work mid-render.
Diffstat (limited to 'indra/newview/llsettingsvo.cpp')
-rw-r--r-- | indra/newview/llsettingsvo.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/indra/newview/llsettingsvo.cpp b/indra/newview/llsettingsvo.cpp index 42587658a6..7009fb98ab 100644 --- a/indra/newview/llsettingsvo.cpp +++ b/indra/newview/llsettingsvo.cpp @@ -63,6 +63,7 @@ #include <boost/algorithm/string/replace.hpp> #include "llinventoryobserver.h" #include "llinventorydefines.h" +#include "llworld.h" #include "lltrans.h" @@ -983,12 +984,21 @@ void LLSettingsVOWater::applySpecial(void *ptarget, bool force) LLEnvironment& env = LLEnvironment::instance(); - auto group = LLGLSLShader::SG_WATER; + auto group = LLGLSLShader::SG_ANY; LLShaderUniforms* shader = &((LLShaderUniforms*)ptarget)[group]; { F32 water_height = env.getWaterHeight(); + if (LLViewerCamera::instance().cameraUnderWater()) + { // when the camera is under water, use the water height at the camera position + LLViewerRegion* region = LLWorld::instance().getRegionFromPosAgent(LLViewerCamera::instance().getOrigin()); + if (region) + { + water_height = region->getWaterHeight(); + } + } + //transform water plane to eye space glh::vec3f norm(0.f, 0.f, 1.f); glh::vec3f p(0.f, 0.f, water_height); |