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