Fix Blur Order issue caused by Type setting timing 16/320216/2
authorSeungho Baek <sbsh.baek@samsung.com>
Mon, 11 Nov 2024 05:32:56 +0000 (14:32 +0900)
committerSeungho Baek <sbsh.baek@samsung.com>
Mon, 11 Nov 2024 12:24:43 +0000 (21:24 +0900)
Change-Id: I7dc1154da92165693efcc2508b42fcc1ed7093cb
Signed-off-by: Seungho Baek <sbsh.baek@samsung.com>
automated-tests/src/dali-toolkit/utc-Dali-RenderEffect.cpp
dali-toolkit/public-api/controls/control-impl.cpp

index 7c48745d3f1bdc8a16a03e2ba6433acfd8ce089a..d84bedd4e06c56425daa7b8f5132845816229da0 100644 (file)
@@ -775,3 +775,40 @@ int UtcDaliRenderEffectRenderTaskOrdering(void)
 
   END_TEST;
 }
+
+int UtcDaliRenderEffectReInitialize(void)
+{
+  ToolkitTestApplication application;
+  tet_infoline("UtcDaliRenderEffectReInitialize");
+
+  Integration::Scene scene = application.GetScene();
+
+  Control control = Control::New();
+  control.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+  control.SetProperty(Actor::Property::SIZE, Vector2(1.0f, 1.0f));
+
+  scene.Add(control);
+
+  // Add render effect during scene on.
+  control.SetRenderEffect(BackgroundBlurEffect::New());
+
+  application.SendNotification();
+
+  RenderTaskList taskList = scene.GetRenderTaskList();
+
+  // Render effect activated.
+  DALI_TEST_EQUALS(4u, taskList.GetTaskCount(), TEST_LOCATION);
+  tet_printf("order : %d\n", taskList.GetTask(taskList.GetTaskCount() - 1).GetOrderIndex());
+  DALI_TEST_EQUALS(INT32_MIN + 2, taskList.GetTask(taskList.GetTaskCount() - 1).GetOrderIndex(), TEST_LOCATION);
+
+  control.SetRenderEffect(BackgroundBlurEffect::New());
+
+  application.SendNotification();
+
+  // Render effect activated.
+  DALI_TEST_EQUALS(4u, taskList.GetTaskCount(), TEST_LOCATION);
+  tet_printf("order : %d\n", taskList.GetTask(taskList.GetTaskCount() - 1).GetOrderIndex());
+  DALI_TEST_EQUALS(INT32_MIN + 2, taskList.GetTask(taskList.GetTaskCount() - 1).GetOrderIndex(), TEST_LOCATION);
+
+  END_TEST;
+}
\ No newline at end of file
index 8890f3bbdb0216a59719de9723106b8a80e9d92b..940711fc03e2adb011f7f8f9e47e13fceddfb9ec 100644 (file)
@@ -180,10 +180,10 @@ void Control::SetRenderEffect(Toolkit::RenderEffect effect)
       Toolkit::Internal::RenderEffectImpl* object = dynamic_cast<Toolkit::Internal::RenderEffectImpl*>(mImpl->mRenderEffect.GetObjectPtr());
       DALI_ASSERT_ALWAYS(object && "Not a valid RenderEffect set.");
 
+      SetOffScreenRenderableType(object->GetOffScreenRenderableType());
+
       Dali::Toolkit::Control ownerControl(GetOwner());
       object->SetOwnerControl(ownerControl);
-
-      SetOffScreenRenderableType(object->GetOffScreenRenderableType());
     }
   }
 }