Fix shadows on basic alpha faces.
This commit is contained in:
@@ -457,7 +457,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, S32 pass)
|
|||||||
{
|
{
|
||||||
if(current_shader)
|
if(current_shader)
|
||||||
gPipeline.unbindDeferredShader(*current_shader);
|
gPipeline.unbindDeferredShader(*current_shader);
|
||||||
target_shader->bind();
|
gPipeline.bindDeferredShader(*target_shader);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
current_shader = target_shader;
|
current_shader = target_shader;
|
||||||
|
|||||||
@@ -7408,6 +7408,11 @@ static LLTrace::BlockTimerStatHandle FTM_BIND_DEFERRED("Bind Deferred");
|
|||||||
|
|
||||||
void LLPipeline::bindDeferredShader(LLGLSLShader& shader, LLRenderTarget* diffuse_source, LLRenderTarget* light_source)
|
void LLPipeline::bindDeferredShader(LLGLSLShader& shader, LLRenderTarget* diffuse_source, LLRenderTarget* light_source)
|
||||||
{
|
{
|
||||||
|
if (shader.mShaderClass != LLViewerShaderMgr::SHADER_DEFERRED && shader.mShaderClass != LLViewerShaderMgr::SHADER_INTERFACE)
|
||||||
|
{
|
||||||
|
shader.bind();
|
||||||
|
return;
|
||||||
|
}
|
||||||
LL_RECORD_BLOCK_TIME(FTM_BIND_DEFERRED);
|
LL_RECORD_BLOCK_TIME(FTM_BIND_DEFERRED);
|
||||||
|
|
||||||
static const LLCachedControl<F32> RenderDeferredSunWash("RenderDeferredSunWash",.5f);
|
static const LLCachedControl<F32> RenderDeferredSunWash("RenderDeferredSunWash",.5f);
|
||||||
@@ -8886,6 +8891,12 @@ void LLPipeline::setupSpotLight(LLGLSLShader& shader, LLDrawable* drawablep)
|
|||||||
|
|
||||||
void LLPipeline::unbindDeferredShader(LLGLSLShader &shader, LLRenderTarget* diffuse_source, LLRenderTarget* light_source)
|
void LLPipeline::unbindDeferredShader(LLGLSLShader &shader, LLRenderTarget* diffuse_source, LLRenderTarget* light_source)
|
||||||
{
|
{
|
||||||
|
if (shader.mShaderClass != LLViewerShaderMgr::SHADER_DEFERRED && shader.mShaderClass != LLViewerShaderMgr::SHADER_INTERFACE)
|
||||||
|
{
|
||||||
|
shader.unbind();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
diffuse_source = diffuse_source ? diffuse_source : &mDeferredScreen;
|
diffuse_source = diffuse_source ? diffuse_source : &mDeferredScreen;
|
||||||
light_source = light_source ? light_source : &mDeferredLight;
|
light_source = light_source ? light_source : &mDeferredLight;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user