diff options
Diffstat (limited to 'indra/newview/lldrawpoolalpha.cpp')
| -rw-r--r-- | indra/newview/lldrawpoolalpha.cpp | 28 |
1 files changed, 8 insertions, 20 deletions
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 5b158d857a..6aa2316589 100644 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -58,8 +58,6 @@ BOOL LLDrawPoolAlpha::sShowDebugAlpha = FALSE; LLVector4 LLDrawPoolAlpha::sWaterPlane; -static BOOL deferred_render = FALSE; - // minimum alpha before discarding a fragment static const F32 MINIMUM_ALPHA = 0.004f; // ~ 1/255 @@ -155,7 +153,6 @@ void LLDrawPoolAlpha::renderPostDeferred(S32 pass) { // don't render alpha objects on the other side of the water plane if water is opaque return; } - deferred_render = TRUE; F32 water_sign = 1.f; @@ -200,7 +197,10 @@ void LLDrawPoolAlpha::renderPostDeferred(S32 pass) prepare_alpha_shader(&materialShader[i], false, true, water_sign); } - pbr_shader = LLPipeline::sRenderingHUDs ? &gHUDPBRAlphaProgram : &gDeferredPBRAlphaProgram; + pbr_shader = + (LLPipeline::sUnderWaterRender) ? &gDeferredPBRAlphaWaterProgram : + (LLPipeline::sRenderingHUDs) ? &gHUDPBRAlphaProgram : + &gDeferredPBRAlphaProgram; prepare_alpha_shader(pbr_shader, false, true, water_sign); @@ -232,8 +232,6 @@ void LLDrawPoolAlpha::renderPostDeferred(S32 pass) gGL.setColorMask(true, false); } - - deferred_render = FALSE; } void LLDrawPoolAlpha::forwardRender(bool rigged) @@ -411,7 +409,7 @@ bool LLDrawPoolAlpha::TexSetup(LLDrawInfo* draw, bool use_material) } else { - if (deferred_render && use_material && current_shader) + if (!LLPipeline::sRenderingHUDs && use_material && current_shader) { if (draw->mNormalMap) { @@ -691,10 +689,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) } else { - if (deferred_render) - { - mat = params.mMaterial; - } + mat = LLPipeline::sRenderingHUDs ? nullptr : params.mMaterial; if (params.mFullbright) { @@ -719,7 +714,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) { target_shader = fullbright_shader; } - else if (deferred_render && mat) + else if (mat) { U32 mask = params.mShaderMask; @@ -766,7 +761,7 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) F32 brightness = 1.0f; // We have a material. Supply the appropriate data here. - if (mat && deferred_render) + if (mat) { spec_color = params.mSpecColor; env_intensity = params.mEnvIntensity; @@ -781,11 +776,6 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) } } - //if (params.mGroup) // TOO LATE - //{ - // params.mGroup->rebuildMesh(); - //} - if (params.mAvatar != nullptr) { if (lastAvatar != params.mAvatar || @@ -805,8 +795,6 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask, bool depth_only, bool rigged) bool tex_setup = TexSetup(¶ms, (mat != nullptr)); { - //LLGLEnableFunc stencil_test(GL_STENCIL_TEST, params.mSelected, &LLGLCommonFunc::selected_stencil_test); - gGL.blendFunc((LLRender::eBlendFactor) params.mBlendFuncSrc, (LLRender::eBlendFactor) params.mBlendFuncDst, mAlphaSFactor, mAlphaDFactor); bool reset_minimum_alpha = false; |
