diff options
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r-- | indra/newview/pipeline.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index ffb314c013..e6ad42c23b 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -7423,6 +7423,12 @@ void LLPipeline::renderFinalize() screenTarget()->bindTexture(0, channel, LLTexUnit::TFO_POINT); } + channel = gDeferredPostGammaCorrectProgram.enableTexture(LLShaderMgr::DEFERRED_EMISSIVE, screenTarget()->getUsage()); + if (channel > -1) + { + mGlow[1].bindTexture(0, channel, LLTexUnit::TFO_BILINEAR); + } + gDeferredPostGammaCorrectProgram.uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, screenTarget()->getWidth(), screenTarget()->getHeight()); static LLCachedControl<F32> exposure(gSavedSettings, "RenderExposure", 1.f); @@ -7450,8 +7456,8 @@ void LLPipeline::renderFinalize() bool multisample = RenderFSAASamples > 1 && mRT->fxaaBuffer.isComplete(); LLGLSLShader* shader = &gGlowCombineProgram; - S32 width = mRT->screen.getWidth(); - S32 height = mRT->screen.getHeight(); + S32 width = screenTarget()->getWidth(); + S32 height = screenTarget()->getHeight(); S32 channel = -1; @@ -7469,10 +7475,10 @@ void LLPipeline::renderFinalize() shader->bind(); shader->uniform2f(LLShaderMgr::DEFERRED_SCREEN_RES, width, height); - channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mRT->deferredLight.getUsage()); + channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, screenTarget()->getUsage()); if (channel > -1) { - mRT->deferredLight.bindTexture(0, channel); + screenTarget()->bindTexture(0, channel); } { @@ -7483,7 +7489,7 @@ void LLPipeline::renderFinalize() gGL.flush(); - shader->disableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mRT->deferredLight.getUsage()); + shader->disableTexture(LLShaderMgr::DEFERRED_DIFFUSE, screenTarget()->getUsage()); shader->unbind(); mRT->fxaaBuffer.flush(); @@ -7535,11 +7541,9 @@ void LLPipeline::renderFinalize() shader->bind(); - S32 glow_channel = shader->getTextureChannel(LLShaderMgr::DEFERRED_EMISSIVE); S32 screen_channel = shader->getTextureChannel(LLShaderMgr::DEFERRED_DIFFUSE); S32 depth_channel = shader->getTextureChannel(LLShaderMgr::DEFERRED_DEPTH); - gGL.getTexUnit(glow_channel)->bind(&mGlow[1]); gGL.getTexUnit(screen_channel)->bind(screenTarget()); gGL.getTexUnit(depth_channel)->bind(&mRT->deferredScreen, true); @@ -7556,7 +7560,6 @@ void LLPipeline::renderFinalize() shader->unbind(); } } - gGL.setSceneBlendType(LLRender::BT_ALPHA); @@ -7713,12 +7716,6 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, LLRenderTarget* light_ } } - channel = shader.enableTexture(LLShaderMgr::DEFERRED_BLOOM); - if (channel > -1) - { - mGlow[1].bindTexture(0, channel); - } - stop_glerror(); bindShadowMaps(shader); |