[dali_2.3.25] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-scene3d / utc-Dali-Light.cpp
index e96737d..88b0f56 100644 (file)
@@ -1204,7 +1204,8 @@ int UtcDaliLightShadowRenderTask(void)
 {
   ToolkitTestApplication application;
   RenderTaskList taskList = application.GetScene().GetRenderTaskList();
-  DALI_TEST_EQUALS(1, taskList.GetTaskCount(), TEST_LOCATION);
+
+  uint32_t baseRenderTaskCount = application.GetScene().GetRenderTaskList().GetTaskCount();
 
   Scene3D::SceneView sceneView = Scene3D::SceneView::New();
   sceneView.SetProperty(Dali::Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
@@ -1213,35 +1214,42 @@ int UtcDaliLightShadowRenderTask(void)
   sceneView.SetProperty(Dali::Actor::Property::HEIGHT_RESIZE_POLICY, ResizePolicy::FILL_TO_PARENT);
   application.GetScene().Add(sceneView);
 
-  DALI_TEST_EQUALS(2, taskList.GetTaskCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(baseRenderTaskCount + 1u, taskList.GetTaskCount(), TEST_LOCATION);
 
   sceneView.UseFramebuffer(true);
 
-  DALI_TEST_EQUALS(2, taskList.GetTaskCount(), TEST_LOCATION);
-  DALI_TEST_EQUALS(0, taskList.GetTask(0u).GetOrderIndex(), TEST_LOCATION);
-  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(1u).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(baseRenderTaskCount + 1u, taskList.GetTaskCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(0, taskList.GetTask(baseRenderTaskCount - 1u).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount).GetOrderIndex(), TEST_LOCATION);
 
   Scene3D::Light light = Scene3D::Light::New();
   light.SetProperty(Dali::Actor::Property::COLOR, Color::BLUE);
   Dali::DevelActor::LookAt(light, Vector3(1.0f, 0.0f, 0.0f));
   light.EnableShadow(true);
+
+  tet_printf("Do not create rendertask until light is scene on");
+  DALI_TEST_EQUALS(baseRenderTaskCount + 1u, taskList.GetTaskCount(), TEST_LOCATION);
+
   sceneView.Add(light);
 
-  DALI_TEST_EQUALS(3, taskList.GetTaskCount(), TEST_LOCATION);
-  DALI_TEST_EQUALS(0, taskList.GetTask(0u).GetOrderIndex(), TEST_LOCATION);
-  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(1u).GetOrderIndex(), TEST_LOCATION);
-  DALI_TEST_EQUALS(SHADOW_ORDER_INDEX, taskList.GetTask(2u).GetOrderIndex(), TEST_LOCATION);
+  tet_printf("Create shadowmap rendertask after light is scene on");
+  DALI_TEST_EQUALS(baseRenderTaskCount + 2u, taskList.GetTaskCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(0, taskList.GetTask(baseRenderTaskCount - 1u).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(SHADOW_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount + 1u).GetOrderIndex(), TEST_LOCATION);
 
   application.SendNotification();
 
-  DALI_TEST_EQUALS(SHADOW_ORDER_INDEX, taskList.GetTask(1u).GetOrderIndex(), TEST_LOCATION);
-  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(2u).GetOrderIndex(), TEST_LOCATION);
+  tet_printf("Check render task list sorted");
+  DALI_TEST_EQUALS(SHADOW_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount + 1u).GetOrderIndex(), TEST_LOCATION);
 
   light.EnableShadow(false);
 
-  DALI_TEST_EQUALS(2, taskList.GetTaskCount(), TEST_LOCATION);
-  DALI_TEST_EQUALS(0, taskList.GetTask(0u).GetOrderIndex(), TEST_LOCATION);
-  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(1u).GetOrderIndex(), TEST_LOCATION);
+  tet_printf("Check shadowmap rendertask removed");
+  DALI_TEST_EQUALS(baseRenderTaskCount + 1u, taskList.GetTaskCount(), TEST_LOCATION);
+  DALI_TEST_EQUALS(0, taskList.GetTask(baseRenderTaskCount - 1u).GetOrderIndex(), TEST_LOCATION);
+  DALI_TEST_EQUALS(SCENE_ORDER_INDEX, taskList.GetTask(baseRenderTaskCount).GetOrderIndex(), TEST_LOCATION);
 
   END_TEST;
 }
\ No newline at end of file