Moving CullFace mode and Blending modes to Pipeline
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Scene.cpp
index 688f7c3..474f278 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -921,10 +921,18 @@ int UtcDaliSceneSurfaceResizedDefaultSceneViewport(void)
   auto defaultScene = application.GetScene();
   DALI_TEST_CHECK(defaultScene);
 
+  // consume the resize flag by first rendering
+  defaultScene.IsSurfaceRectChanged();
+
   // Ensure stage size matches the scene size
   auto stage = Stage::GetCurrent();
   DALI_TEST_EQUALS(stage.GetSize(), defaultScene.GetSize(), TEST_LOCATION);
 
+  bool surfaceResized;
+  // check resized flag before surface is resized.
+  surfaceResized = defaultScene.IsSurfaceRectChanged();
+  DALI_TEST_EQUALS(surfaceResized, false, TEST_LOCATION);
+
   // Resize the scene
   Vector2     newSize(1000.0f, 2000.0f);
   std::string viewportParams("0, 0, 1000, 2000"); // to match newSize
@@ -938,6 +946,9 @@ int UtcDaliSceneSurfaceResizedDefaultSceneViewport(void)
   application.SendNotification();
   application.Render(0);
 
+  surfaceResized = defaultScene.IsSurfaceRectChanged();
+  DALI_TEST_EQUALS(surfaceResized, true, TEST_LOCATION);
+
   // Check that the viewport is handled properly
   DALI_TEST_CHECK(callStack.FindMethodAndGetParameters("Viewport", viewportParams));
 
@@ -1050,10 +1061,10 @@ int UtcDaliSceneSurfaceResizedAdditionalScene(void)
   END_TEST;
 }
 
-#define CLIPPING_RECT_X          (16)
-#define CLIPPING_RECT_Y          (768)
-#define CLIPPING_RECT_WIDTH      (32)
-#define CLIPPING_RECT_HEIGHT     (32)
+#define CLIPPING_RECT_X (16)
+#define CLIPPING_RECT_Y (768)
+#define CLIPPING_RECT_WIDTH (32)
+#define CLIPPING_RECT_HEIGHT (32)
 
 int UtcDaliSceneSurfaceRotatedWithAngle0(void)
 {
@@ -1088,7 +1099,8 @@ int UtcDaliSceneSurfaceRotatedWithAngle0(void)
 
   damagedRects.clear();
   application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
-                                        TestApplication::DEFAULT_SURFACE_HEIGHT, 0);
+                                        TestApplication::DEFAULT_SURFACE_HEIGHT,
+                                        0);
   application.SendNotification();
   application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
   DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
@@ -1138,7 +1150,8 @@ int UtcDaliSceneSurfaceRotatedWithAngle90(void)
 
   damagedRects.clear();
   application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
-                                        TestApplication::DEFAULT_SURFACE_HEIGHT, 90);
+                                        TestApplication::DEFAULT_SURFACE_HEIGHT,
+                                        90);
   application.SendNotification();
   application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
   DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
@@ -1149,9 +1162,9 @@ int UtcDaliSceneSurfaceRotatedWithAngle90(void)
 
   // It is recalculation for glScissor.
   // Because surface is rotated and glScissor is called with recalcurated value.
-  clippingRect.x = TestApplication::DEFAULT_SURFACE_HEIGHT - (CLIPPING_RECT_Y + CLIPPING_RECT_HEIGHT);
-  clippingRect.y = CLIPPING_RECT_X;
-  clippingRect.width = CLIPPING_RECT_HEIGHT;
+  clippingRect.x      = TestApplication::DEFAULT_SURFACE_HEIGHT - (CLIPPING_RECT_Y + CLIPPING_RECT_HEIGHT);
+  clippingRect.y      = CLIPPING_RECT_X;
+  clippingRect.width  = CLIPPING_RECT_HEIGHT;
   clippingRect.height = CLIPPING_RECT_WIDTH;
 
   DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
@@ -1195,7 +1208,8 @@ int UtcDaliSceneSurfaceRotatedWithAngle180(void)
 
   damagedRects.clear();
   application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
-                                        TestApplication::DEFAULT_SURFACE_HEIGHT, 180);
+                                        TestApplication::DEFAULT_SURFACE_HEIGHT,
+                                        180);
   application.SendNotification();
   application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
   DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
@@ -1206,9 +1220,9 @@ int UtcDaliSceneSurfaceRotatedWithAngle180(void)
 
   // It is recalculation for glScissor.
   // Because surface is rotated and glScissor is called with recalcurated value.
-  clippingRect.x = TestApplication::DEFAULT_SURFACE_WIDTH - (CLIPPING_RECT_X + CLIPPING_RECT_WIDTH);
-  clippingRect.y = TestApplication::DEFAULT_SURFACE_HEIGHT - (CLIPPING_RECT_Y +CLIPPING_RECT_HEIGHT);
-  clippingRect.width = CLIPPING_RECT_WIDTH;
+  clippingRect.x      = TestApplication::DEFAULT_SURFACE_WIDTH - (CLIPPING_RECT_X + CLIPPING_RECT_WIDTH);
+  clippingRect.y      = TestApplication::DEFAULT_SURFACE_HEIGHT - (CLIPPING_RECT_Y + CLIPPING_RECT_HEIGHT);
+  clippingRect.width  = CLIPPING_RECT_WIDTH;
   clippingRect.height = CLIPPING_RECT_HEIGHT;
 
   DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
@@ -1252,7 +1266,8 @@ int UtcDaliSceneSurfaceRotatedWithAngle270(void)
 
   damagedRects.clear();
   application.GetScene().SurfaceRotated(TestApplication::DEFAULT_SURFACE_WIDTH,
-                                        TestApplication::DEFAULT_SURFACE_HEIGHT, 270);
+                                        TestApplication::DEFAULT_SURFACE_HEIGHT,
+                                        270);
   application.SendNotification();
   application.PreRenderWithPartialUpdate(TestApplication::RENDER_FRAME_INTERVAL, nullptr, damagedRects);
   DALI_TEST_EQUALS(damagedRects.size(), 1, TEST_LOCATION);
@@ -1263,9 +1278,9 @@ int UtcDaliSceneSurfaceRotatedWithAngle270(void)
 
   // It is recalculation for glScissor.
   // Because surface is rotated and glScissor is called with recalcurated value.
-  clippingRect.x = CLIPPING_RECT_Y;
-  clippingRect.y = TestApplication::DEFAULT_SURFACE_WIDTH - (CLIPPING_RECT_X + CLIPPING_RECT_WIDTH);
-  clippingRect.width = CLIPPING_RECT_HEIGHT;
+  clippingRect.x      = CLIPPING_RECT_Y;
+  clippingRect.y      = TestApplication::DEFAULT_SURFACE_WIDTH - (CLIPPING_RECT_X + CLIPPING_RECT_WIDTH);
+  clippingRect.width  = CLIPPING_RECT_HEIGHT;
   clippingRect.height = CLIPPING_RECT_WIDTH;
 
   DALI_TEST_EQUALS(clippingRect.x, glScissorParams.x, TEST_LOCATION);
@@ -1372,7 +1387,9 @@ int UtcDaliSceneEnsureReplacedSurfaceKeepsClearColor(void)
   application.Render();
 
   // Check scissor test was enabled.
-  DALI_TEST_CHECK(enabledDisableTrace.FindMethodAndParams("Enable", "3089")); // 3089 = 0xC11 (GL_SCISSOR_TEST)
+  std::ostringstream scissor;
+  scissor << std::hex << GL_SCISSOR_TEST;
+  DALI_TEST_CHECK(enabledDisableTrace.FindMethodAndParams("Enable", scissor.str()));
 
   // Check the scissor was set, and the coordinates are correct.
   DALI_TEST_CHECK(scissorTrace.FindMethodAndParams("Scissor", "0, 700, 100, 100"));