Skip to content
Snippets Groups Projects
Commit 0c6d1f7c authored by David Parks's avatar David Parks
Browse files

SH-1692 Factor out all (but one) of the bindDeferredShader calls in lldrawpoolalpha.

parent d3aa36f1
Branches
Tags
No related merge requests found
...@@ -125,6 +125,9 @@ void LLDrawPoolAlpha::beginPostDeferredPass(S32 pass) ...@@ -125,6 +125,9 @@ void LLDrawPoolAlpha::beginPostDeferredPass(S32 pass)
{ {
simple_shader = &gDeferredAlphaProgram; simple_shader = &gDeferredAlphaProgram;
fullbright_shader = &gObjectFullbrightProgram; fullbright_shader = &gObjectFullbrightProgram;
//prime simple shader (loads shadow relevant uniforms)
gPipeline.bindDeferredShader(*simple_shader);
} }
else else
{ {
...@@ -290,11 +293,6 @@ void LLDrawPoolAlpha::render(S32 pass) ...@@ -290,11 +293,6 @@ void LLDrawPoolAlpha::render(S32 pass)
gGL.setSceneBlendType(LLRender::BT_ALPHA); gGL.setSceneBlendType(LLRender::BT_ALPHA);
} }
if (deferred_render && current_shader != NULL)
{
gPipeline.unbindDeferredShader(*current_shader);
}
if (sShowDebugAlpha) if (sShowDebugAlpha)
{ {
if(gPipeline.canUseWindLightShaders()) if(gPipeline.canUseWindLightShaders())
...@@ -411,29 +409,11 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) ...@@ -411,29 +409,11 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
if(use_shaders && (current_shader != target_shader)) if(use_shaders && (current_shader != target_shader))
{ {
llassert(target_shader != NULL); llassert(target_shader != NULL);
if (deferred_render && current_shader != NULL)
{
gPipeline.unbindDeferredShader(*current_shader);
diffuse_channel = 0;
}
current_shader = target_shader; current_shader = target_shader;
if (deferred_render)
{
gPipeline.bindDeferredShader(*current_shader);
diffuse_channel = current_shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
}
else
{
current_shader->bind(); current_shader->bind();
} }
}
else if (!use_shaders && current_shader != NULL) else if (!use_shaders && current_shader != NULL)
{ {
if (deferred_render)
{
gPipeline.unbindDeferredShader(*current_shader);
diffuse_channel = 0;
}
LLGLSLShader::bindNoShader(); LLGLSLShader::bindNoShader();
current_shader = NULL; current_shader = NULL;
} }
...@@ -510,11 +490,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask) ...@@ -510,11 +490,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
} }
} }
if (deferred_render && current_shader != NULL)
{
gPipeline.unbindDeferredShader(*current_shader);
LLVertexBuffer::unbind(); LLVertexBuffer::unbind();
}
if (!light_enabled) if (!light_enabled)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment