From: seungho baek Date: Thu, 11 May 2023 01:07:41 +0000 (+0900) Subject: Fix culling issue with scale X-Git-Tag: dali_2.2.26~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=0c331a9fe023d11ae34ed948e9b13be496314600;hp=e1d2c829a24b50ae43b24e9f99c1def85eea2aa0;p=platform%2Fcore%2Fuifw%2Fdali-core.git Fix culling issue with scale Change-Id: Ibd07450e6fdd39d15cd5e90b8c8c0994cde3d589 Signed-off-by: seungho baek --- 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) {