CanvasRenderer: Check changed status of composite drawable in changed check method 55/261655/4
authorJunsuChoi <jsuya.choi@samsung.com>
Thu, 22 Jul 2021 06:44:25 +0000 (15:44 +0900)
committerJunsuChoi <jsuya.choi@samsung.com>
Thu, 29 Jul 2021 05:10:08 +0000 (14:10 +0900)
Check and Update changed status of composite drawable
in UpdateDrawablesChanged() and HaveDrawablesChanged() method.

Change-Id: Iaa96650fbefe3363f95b852fdf5cb193f01c4a14

dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp
dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp

index 86a8a77..2739449 100644 (file)
@@ -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<Dali::CanvasRenderer::DrawableGroup&>(drawable);
index 7a88442..82eb352 100644 (file)
@@ -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<Dali::CanvasRenderer::DrawableGroup&>(drawable);