diff options
author | Dave Houlton <euclid@lindenlab.com> | 2020-01-28 17:26:45 -0700 |
---|---|---|
committer | Dave Houlton <euclid@lindenlab.com> | 2020-01-28 17:26:45 -0700 |
commit | 2a6b48c9b0c813c5e4ff8ac176fdf4e6c9466c22 (patch) | |
tree | 7f608467b3608127049ddc78d5045da032777cb4 /indra/newview/pipeline.cpp | |
parent | 3e44cb06df22dd1b684dc8574c3b44d0851527bc (diff) | |
parent | 2998552f3d7447da316afdd1713595528596a0c5 (diff) |
DRTVWR-440, merge in latest from 6.3.7 release
Diffstat (limited to 'indra/newview/pipeline.cpp')
-rw-r--r-- | indra/newview/pipeline.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index e54bfcd911..0395bf1a71 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -767,8 +767,8 @@ void LLPipeline::resizeScreenTexture() releaseShadowTargets(); allocateScreenBuffer(resX,resY); gResizeScreenTexture = FALSE; - } - } + } + } } void LLPipeline::allocatePhysicsBuffer() @@ -986,7 +986,7 @@ bool LLPipeline::allocateShadowBuffer(U32 resX, U32 resY) const U32 occlusion_divisor = 3; - F32 scale = RenderShadowResolutionScale; + F32 scale = llmax(0.f,RenderShadowResolutionScale); U32 sun_shadow_map_width = BlurHappySize(resX, scale); U32 sun_shadow_map_height = BlurHappySize(resY, scale); @@ -1225,7 +1225,7 @@ void LLPipeline::releaseScreenBuffers() mOcclusionDepth.release(); } - + void LLPipeline::releaseShadowTarget(U32 index) { mShadow[index].release(); @@ -8749,10 +8749,25 @@ void LLPipeline::renderDeferredLighting(LLRenderTarget* screen_target) } const LLViewerObject *vobj = drawablep->getVObj(); - if(vobj && vobj->getAvatar() && vobj->getAvatar()->isInMuteList()) + if (vobj) + { + LLVOAvatar *av = vobj->getAvatar(); + if (av) + { + if (av->isTooComplex() || av->isInMuteList() || dist_vec(av->getPosition(), LLViewerCamera::getInstance()->getOrigin()) > RenderFarClip) + { + continue; + } + } + else + { + const LLViewerObject *root_obj = drawablep->getParent() ? drawablep->getParent()->getVObj() : vobj; + if (root_obj && dist_vec(root_obj->getPosition(), LLViewerCamera::getInstance()->getOrigin()) > RenderFarClip) { continue; } + } + } LLVector4a center; center.load3(drawablep->getPositionAgent().mV); |