From ba57eca714daa56398f3994c51530ffb91dfc0d4 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Tue, 30 Jun 2020 14:51:07 +0900 Subject: [PATCH] (Partial update) The color property should be checked Change-Id: If9f649a2312dd39fa6709b82a0e16292de23560b --- automated-tests/src/dali/utc-Dali-Actor.cpp | 6 ++++++ dali/internal/render/common/render-item.cpp | 1 + dali/internal/render/common/render-item.h | 1 + dali/internal/update/manager/render-instruction-processor.cpp | 4 ++++ 4 files changed, 12 insertions(+) diff --git a/automated-tests/src/dali/utc-Dali-Actor.cpp b/automated-tests/src/dali/utc-Dali-Actor.cpp index 09ee3c7..6c3f4a3 100644 --- a/automated-tests/src/dali/utc-Dali-Actor.cpp +++ b/automated-tests/src/dali/utc-Dali-Actor.cpp @@ -7649,6 +7649,12 @@ int utcDaliActorPartialUpdateSetColor(void) DALI_TEST_EQUALS(clippingRect.width, glScissorParams.width, TEST_LOCATION); DALI_TEST_EQUALS(clippingRect.height, glScissorParams.height, TEST_LOCATION); + damagedRects.clear(); + application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects); + + damagedRects.clear(); + application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects); + // 2. Set new color actor.SetProperty(Actor::Property::COLOR, Vector3(1.0f, 0.0f, 0.0f)); application.SendNotification(); diff --git a/dali/internal/render/common/render-item.cpp b/dali/internal/render/common/render-item.cpp index d10e15e..c218b25 100644 --- a/dali/internal/render/common/render-item.cpp +++ b/dali/internal/render/common/render-item.cpp @@ -45,6 +45,7 @@ RenderItem* RenderItem::New() RenderItem::RenderItem() : mModelMatrix( false ), mModelViewMatrix( false ), + mColor( Vector4::ZERO ), mSize(), mRenderer( NULL ), mNode( NULL ), diff --git a/dali/internal/render/common/render-item.h b/dali/internal/render/common/render-item.h index 77e1fac..47fc386 100644 --- a/dali/internal/render/common/render-item.h +++ b/dali/internal/render/common/render-item.h @@ -78,6 +78,7 @@ struct RenderItem Matrix mModelMatrix; Matrix mModelViewMatrix; + Vector4 mColor; Vector3 mSize; Vector3 mUpdateSize; Render::Renderer* mRenderer; diff --git a/dali/internal/update/manager/render-instruction-processor.cpp b/dali/internal/update/manager/render-instruction-processor.cpp index 37f9236..b973fa9 100644 --- a/dali/internal/update/manager/render-instruction-processor.cpp +++ b/dali/internal/update/manager/render-instruction-processor.cpp @@ -184,6 +184,10 @@ inline void AddRendererToRenderList(BufferIndex updateBufferIndex, item.mIsOpaque = (opacityType == Renderer::OPAQUE); item.mIsUpdated |= (prevIsOpaque != item.mIsOpaque); + Vector4 prevColor = item.mColor; + item.mColor = renderable.mNode->GetColor(updateBufferIndex); + item.mIsUpdated |= (prevColor != item.mColor); + int prevDepthIndex = item.mDepthIndex; item.mDepthIndex = 0; if (!isLayer3d) -- 2.7.4