summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/lldynamictexture.cpp3
-rw-r--r--indra/newview/lldynamictexture.h5
-rw-r--r--indra/newview/llviewertexlayer.h2
3 files changed, 8 insertions, 2 deletions
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