summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorGraham Madarasz <graham@lindenlab.com>2019-07-15 23:23:48 +0000
committerGraham Madarasz <graham@lindenlab.com>2019-07-15 23:23:48 +0000
commite96356ce60a77401c531cb36f0e51eaa5fa72cd0 (patch)
tree602ea73b6df01487765afeaced008d8c64f60594 /indra/newview
parent01bdbdb6acb4e315cb7de811d6ecced41fa0f9a7 (diff)
parentf6eab050178336a553f52837b8e8a4cc0bf6bacb (diff)
Merged in graham_linden/viewer-eep-g (pull request #462)
SL-10761, SL-11590, SL-10625
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl2
-rw-r--r--indra/newview/lldynamictexture.cpp3
-rw-r--r--indra/newview/lldynamictexture.h5
-rw-r--r--indra/newview/llviewertexlayer.h2
4 files changed, 9 insertions, 3 deletions
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
index 3fe3b7afd3..0607ea8bc5 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl
@@ -115,7 +115,7 @@ void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, ou
//set a minimum "angle" (smaller glow.y allows tighter, brighter hotspot)
temp2.x *= glow.x;
//higher glow.x gives dimmer glow (because next step is 1 / "angle")
- temp2.x = pow(temp2.x, glow.z * 0.2);
+ temp2.x = pow(temp2.x, glow.z);
//glow.z should be negative, so we're doing a sort of (1 / "angle") function
//add "minimum anti-solar illumination"
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index 5e283f7cd0..e1f41a9bd7 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -240,6 +240,7 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
gDepthDirty = TRUE;
gGL.color4f(1,1,1,1);
+ dynamicTexture->setBoundTarget(use_fbo ? &gPipeline.mWaterDis : nullptr);
dynamicTexture->preRender(); // Must be called outside of startRender()
result = FALSE;
if (dynamicTexture->render())
@@ -250,7 +251,7 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
}
//gGL.flush();
LLVertexBuffer::unbind();
-
+ dynamicTexture->setBoundTarget(nullptr);
dynamicTexture->postRender(result);
}
}
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index f3f57c9a6b..4bd74a8425 100644
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -88,6 +88,9 @@ public:
static BOOL updateAllInstances();
static void destroyGL() ;
static void restoreGL() ;
+
+ void setBoundTarget(LLRenderTarget* target) { mBoundTarget = target; }
+
protected:
void generateGLTexture();
void generateGLTexture(LLGLint internal_format, LLGLenum primary_format, LLGLenum type_format, BOOL swap_bytes = FALSE);
@@ -97,6 +100,8 @@ protected:
LLCoordGL mOrigin;
LL_ALIGN_16(LLCamera mCamera);
+ LLRenderTarget* mBoundTarget;
+
typedef std::set<LLViewerDynamicTexture*> instance_list_t;
static instance_list_t sInstances[ LLViewerDynamicTexture::ORDER_COUNT ];
static S32 sNumRenders;
diff --git a/indra/newview/llviewertexlayer.h b/indra/newview/llviewertexlayer.h
index 027ae255ec..dec7f0ddfc 100644
--- a/indra/newview/llviewertexlayer.h
+++ b/indra/newview/llviewertexlayer.h
@@ -111,7 +111,7 @@ protected:
// Pass these along for tex layer rendering.
virtual void preRender(BOOL clear_depth) { preRenderTexLayerSet(); }
virtual void postRender(BOOL success) { postRenderTexLayerSet(success); }
- virtual BOOL render() { return renderTexLayerSet(); }
+ virtual BOOL render() { return renderTexLayerSet(mBoundTarget); }
//--------------------------------------------------------------------
// Updates