diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index d9233b3af03d7e1345de144a5af5b6040c7004f1..a67873aeb7efb0fed56e6ec462abcc57dbf7e104 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -8033,15 +8033,33 @@ void LLPipeline::renderFinalize() // [RLVa:KB] - @setsphere if (pRenderBuffer) { - pRenderBuffer->copyContents(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(), 0, 0, - mScreen.getWidth(), mScreen.getHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST); + pRenderBuffer->bindTarget(); + } +// [/RLVa:KB] + LLGLSLShader *shader = &gDeferredPostNoDoFProgram; + + bindDeferredShader(*shader); + + S32 channel = shader->enableTexture(LLShaderMgr::DEFERRED_DIFFUSE, mScreen.getUsage()); + if (channel > -1) + { + mScreen.bindTexture(0, channel); + } + + mDeferredVB->setBuffer(LLVertexBuffer::MAP_VERTEX); + mDeferredVB->drawArrays(LLRender::TRIANGLES, 0, 3); + unbindDeferredShader(*shader); + +// [RLVa:KB] - @setsphere + if (pRenderBuffer) + { + pRenderBuffer->flush(); } - else - { - LLRenderTarget::copyContentsToFramebuffer(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(), 0, 0, - mScreen.getWidth(), mScreen.getHeight(), GL_COLOR_BUFFER_BIT, GL_NEAREST); - } // [/RLVa:KB] +// if (multisample) +// { +// mDeferredLight.flush(); +// } } // [RLVa:KB] - @setsphere