From 0c331a9fe023d11ae34ed948e9b13be496314600 Mon Sep 17 00:00:00 2001 From: seungho baek Date: Thu, 11 May 2023 10:07:41 +0900 Subject: [PATCH] Fix culling issue with scale Change-Id: Ibd07450e6fdd39d15cd5e90b8c8c0994cde3d589 Signed-off-by: seungho baek --- dali/internal/update/manager/render-instruction-processor.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dali/internal/update/manager/render-instruction-processor.cpp b/dali/internal/update/manager/render-instruction-processor.cpp index dcae779..25d6e97 100644 --- a/dali/internal/update/manager/render-instruction-processor.cpp +++ b/dali/internal/update/manager/render-instruction-processor.cpp @@ -154,9 +154,14 @@ inline bool SetNodeUpdateArea(Node* node, bool isLayer3d, Matrix& nodeWorldMatri if(node->GetUpdateAreaHint() == Vector4::ZERO) { + if(isLayer3d) + { + return true; + } // RenderItem::CalculateViewportSpaceAABB cannot cope with z transform // I don't use item.mModelMatrix.GetTransformComponents() for z transform, would be too slow - if(!isLayer3d && nodeWorldMatrix.GetZAxis() == Vector3(0.0f, 0.0f, 1.0f)) + Vector3 zaxis = nodeWorldMatrix.GetZAxis(); + if(EqualsZero(zaxis.x) && EqualsZero(zaxis.y)) { nodeUpdateArea = Vector4(0.0f, 0.0f, nodeSize.width, nodeSize.height); return false; @@ -217,7 +222,7 @@ inline void AddRendererToRenderList(BufferIndex updateBufferIndex, nodeUpdateAreaSet = true; const Vector3& scale = nodeWorldMatrix.GetScale(); - const Vector3& size = Vector3(nodeUpdateArea.z, nodeUpdateArea.w, 1.0f) * scale; + const Vector3& size = Vector3(nodeUpdateArea.z, nodeUpdateArea.w, 0.0f) * scale; if(size.LengthSquared() > Math::MACHINE_EPSILON_1000) { -- 2.7.4