summaryrefslogtreecommitdiff
path: root/indra/newview/llvosky.cpp
diff options
context:
space:
mode:
authorGraham Linden <graham@lindenlab.com>2019-08-12 13:44:59 -0700
committerGraham Linden <graham@lindenlab.com>2019-08-12 13:44:59 -0700
commit41c7523e08aab7f2bf4a040ac1c1c8a1d24babed (patch)
treeb8a36a5667815b87929c11917c3800ed90e1061a /indra/newview/llvosky.cpp
parent71af0a2a9e9f90d1e336f8a30f642bb5e19ef658 (diff)
SL-11676
Make sun/moon textures render on Low/Low-Mid again. Fix solar additive being present when moon was only heavenly body in sky.
Diffstat (limited to 'indra/newview/llvosky.cpp')
-rw-r--r--indra/newview/llvosky.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index ad452659c6..8d5c0f04cd 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -90,7 +90,6 @@ namespace
S32 LLSkyTex::sComponents = 4;
S32 LLSkyTex::sResolution = 64;
-F32 LLSkyTex::sInterpVal = 0.f;
S32 LLSkyTex::sCurrent = 0;
@@ -479,7 +478,7 @@ void LLVOSky::init()
m_atmosphericsVars.haze_horizon = psky->getHazeHorizon();
m_atmosphericsVars.density_multiplier = psky->getDensityMultiplier();
m_atmosphericsVars.max_y = psky->getMaxY();
- m_atmosphericsVars.sun_norm = LLEnvironment::instance().getClampedLightNorm();
+ m_atmosphericsVars.sun_norm = LLEnvironment::instance().getClampedSunNorm();
m_atmosphericsVars.sunlight = psky->getSunlightColor();
m_atmosphericsVars.ambient = psky->getAmbientColor();
m_atmosphericsVars.glow = psky->getGlow();
@@ -531,7 +530,7 @@ void LLVOSky::calc()
m_atmosphericsVars.density_multiplier = psky->getDensityMultiplier();
m_atmosphericsVars.distance_multiplier = psky->getDistanceMultiplier();
m_atmosphericsVars.max_y = psky->getMaxY();
- m_atmosphericsVars.sun_norm = LLEnvironment::instance().getClampedLightNorm();
+ m_atmosphericsVars.sun_norm = LLEnvironment::instance().getClampedSunNorm();
m_atmosphericsVars.sunlight = psky->getSunlightColor();
m_atmosphericsVars.ambient = psky->getAmbientColor();
m_atmosphericsVars.glow = psky->getGlow();
@@ -725,8 +724,6 @@ bool LLVOSky::updateSky()
next_frame = next_frame % cycle_frame_no;
mInterpVal = (!mInitialized) ? 1 : (F32)next_frame / cycle_frame_no;
- // sInterpVal = (F32)next_frame / cycle_frame_no;
- LLSkyTex::setInterpVal( mInterpVal );
LLHeavenBody::setInterpVal( mInterpVal );
updateDirections();
@@ -912,6 +909,8 @@ void LLVOSky::setSunTextures(const LLUUID& sun_texture, const LLUUID& sun_textur
mSunTexturep[0] = sun_texture.isNull() ? nullptr : LLViewerTextureManager::getFetchedTexture(sun_texture, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mSunTexturep[1] = sun_texture_next.isNull() ? nullptr : LLViewerTextureManager::getFetchedTexture(sun_texture_next, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
+ bool can_use_wl = gPipeline.canUseWindLightShaders();
+
if (mFace[FACE_SUN])
{
if (mSunTexturep[0])
@@ -934,11 +933,14 @@ void LLVOSky::setSunTextures(const LLUUID& sun_texture, const LLUUID& sun_textur
mFace[FACE_SUN]->setTexture(LLRender::DIFFUSE_MAP, mSunTexturep[0]);
- if (mSunTexturep[1])
+ if (can_use_wl)
{
- mSunTexturep[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
+ if (mSunTexturep[1])
+ {
+ mSunTexturep[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
+ }
+ mFace[FACE_SUN]->setTexture(LLRender::ALTERNATE_DIFFUSE_MAP, mSunTexturep[1]);
}
- mFace[FACE_SUN]->setTexture(LLRender::ALTERNATE_DIFFUSE_MAP, mSunTexturep[1]);
}
}
@@ -946,6 +948,8 @@ void LLVOSky::setMoonTextures(const LLUUID& moon_texture, const LLUUID& moon_tex
{
LLSettingsSky::ptr_t psky = LLEnvironment::instance().getCurrentSky();
+ bool can_use_wl = gPipeline.canUseWindLightShaders();
+
mMoonTexturep[0] = moon_texture.isNull() ? nullptr : LLViewerTextureManager::getFetchedTexture(moon_texture, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
mMoonTexturep[1] = moon_texture_next.isNull() ? nullptr : LLViewerTextureManager::getFetchedTexture(moon_texture_next, FTT_DEFAULT, TRUE, LLGLTexture::BOOST_UI);
@@ -957,7 +961,7 @@ void LLVOSky::setMoonTextures(const LLUUID& moon_texture, const LLUUID& moon_tex
}
mFace[FACE_MOON]->setTexture(LLRender::DIFFUSE_MAP, mMoonTexturep[0]);
- if (mMoonTexturep[1])
+ if (mMoonTexturep[1] && can_use_wl)
{
mMoonTexturep[1]->setAddressMode(LLTexUnit::TAM_CLAMP);
mFace[FACE_MOON]->setTexture(LLRender::ALTERNATE_DIFFUSE_MAP, mMoonTexturep[1]);