diff options
Diffstat (limited to 'indra/newview/lldrawpoolpbropaque.cpp')
-rw-r--r-- | indra/newview/lldrawpoolpbropaque.cpp | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/indra/newview/lldrawpoolpbropaque.cpp b/indra/newview/lldrawpoolpbropaque.cpp index d30fc22393..86b790e2c5 100644 --- a/indra/newview/lldrawpoolpbropaque.cpp +++ b/indra/newview/lldrawpoolpbropaque.cpp @@ -31,11 +31,17 @@ #include "llviewershadermgr.h" #include "pipeline.h" -static const U32 gltf_render_types[] = { LLPipeline::RENDER_TYPE_PASS_GLTF_PBR, LLPipeline::RENDER_TYPE_PASS_GLTF_PBR_ALPHA_MASK }; - -LLDrawPoolGLTFPBR::LLDrawPoolGLTFPBR() : - LLRenderPass(POOL_GLTF_PBR) +LLDrawPoolGLTFPBR::LLDrawPoolGLTFPBR(U32 type) : + LLRenderPass(type) { + if (type == LLDrawPool::POOL_GLTF_PBR_ALPHA_MASK) + { + mRenderType = LLPipeline::RENDER_TYPE_PASS_GLTF_PBR_ALPHA_MASK; + } + else + { + mRenderType = LLPipeline::RENDER_TYPE_PASS_GLTF_PBR; + } } S32 LLDrawPoolGLTFPBR::getNumDeferredPasses() @@ -47,14 +53,11 @@ void LLDrawPoolGLTFPBR::renderDeferred(S32 pass) { llassert(!LLPipeline::sRenderingHUDs); - for (U32 type : gltf_render_types) - { - gDeferredPBROpaqueProgram.bind(); - pushGLTFBatches(type); + gDeferredPBROpaqueProgram.bind(); + pushGLTFBatches(mRenderType); - gDeferredPBROpaqueProgram.bind(true); - pushRiggedGLTFBatches(type + 1); - } + gDeferredPBROpaqueProgram.bind(true); + pushRiggedGLTFBatches(mRenderType + 1); } S32 LLDrawPoolGLTFPBR::getNumPostDeferredPasses() @@ -67,12 +70,9 @@ void LLDrawPoolGLTFPBR::renderPostDeferred(S32 pass) if (LLPipeline::sRenderingHUDs) { gHUDPBROpaqueProgram.bind(); - for (U32 type : gltf_render_types) - { - pushGLTFBatches(type); - } + pushGLTFBatches(mRenderType); } - else + else if (mRenderType == LLPipeline::RENDER_TYPE_PASS_GLTF_PBR) // HACK -- don't render glow except for the non-alpha masked implementation { gGL.setColorMask(false, true); gPBRGlowProgram.bind(); @@ -85,4 +85,3 @@ void LLDrawPoolGLTFPBR::renderPostDeferred(S32 pass) } } - |