From 9723c7197183753155499a42588214f79308fd27 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Thu, 22 Jul 2021 15:44:25 +0900 Subject: [PATCH] CanvasRenderer: Check changed status of composite drawable in changed check method Check and Update changed status of composite drawable in UpdateDrawablesChanged() and HaveDrawablesChanged() method. Change-Id: Iaa96650fbefe3363f95b852fdf5cb193f01c4a14 --- .../canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp | 16 ++++++++++++++++ .../ubuntu/canvas-renderer-impl-ubuntu.cpp | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp index 86a8a77..2739449 100644 --- a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp +++ b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp @@ -193,6 +193,15 @@ bool CanvasRendererTizen::HaveDrawablesChanged(const Dali::CanvasRenderer::Drawa { return true; } + Dali::CanvasRenderer::Drawable compositeDrawable = drawableImpl.GetCompositionDrawable(); + if(DALI_UNLIKELY(compositeDrawable)) + { + Internal::Adaptor::Drawable& compositeDrawableImpl = Dali::GetImplementation(compositeDrawable); + if(compositeDrawableImpl.GetChanged()) + { + return true; + } + } if(drawableImpl.GetType() == Drawable::Types::DRAWABLE_GROUP) { @@ -216,6 +225,13 @@ void CanvasRendererTizen::UpdateDrawablesChanged(Dali::CanvasRenderer::Drawable& Internal::Adaptor::Drawable& drawableImpl = GetImplementation(drawable); drawableImpl.SetChanged(changed); + Dali::CanvasRenderer::Drawable compositeDrawable = drawableImpl.GetCompositionDrawable(); + if(DALI_UNLIKELY(compositeDrawable)) + { + Internal::Adaptor::Drawable& compositeDrawableImpl = Dali::GetImplementation(compositeDrawable); + compositeDrawableImpl.SetChanged(changed); + } + if(drawableImpl.GetType() == Drawable::Types::DRAWABLE_GROUP) { Dali::CanvasRenderer::DrawableGroup& group = static_cast(drawable); diff --git a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp index 7a88442..82eb352 100644 --- a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp +++ b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp @@ -193,6 +193,15 @@ bool CanvasRendererUbuntu::HaveDrawablesChanged(const Dali::CanvasRenderer::Draw { return true; } + Dali::CanvasRenderer::Drawable compositeDrawable = drawableImpl.GetCompositionDrawable(); + if(DALI_UNLIKELY(compositeDrawable)) + { + Internal::Adaptor::Drawable& compositeDrawableImpl = Dali::GetImplementation(compositeDrawable); + if(compositeDrawableImpl.GetChanged()) + { + return true; + } + } if(drawableImpl.GetType() == Drawable::Types::DRAWABLE_GROUP) { @@ -216,6 +225,13 @@ void CanvasRendererUbuntu::UpdateDrawablesChanged(Dali::CanvasRenderer::Drawable Internal::Adaptor::Drawable& drawableImpl = GetImplementation(drawable); drawableImpl.SetChanged(changed); + Dali::CanvasRenderer::Drawable compositeDrawable = drawableImpl.GetCompositionDrawable(); + if(DALI_UNLIKELY(compositeDrawable)) + { + Internal::Adaptor::Drawable& compositeDrawableImpl = Dali::GetImplementation(compositeDrawable); + compositeDrawableImpl.SetChanged(changed); + } + if(drawableImpl.GetType() == Drawable::Types::DRAWABLE_GROUP) { Dali::CanvasRenderer::DrawableGroup& group = static_cast(drawable); -- 2.7.4