Merge "Add parameter (bool immediate) to TextChanged signal in interface" into devel...
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-toolkit / utc-Dali-ImageVisual.cpp
index 056a65d..e9bd76e 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.
@@ -542,9 +542,9 @@ int UtcDaliImageVisualTextureReuse2(void)
   DALI_TEST_EQUALS( textureTrace.FindMethod("GenTextures"), true, TEST_LOCATION );
   DALI_TEST_EQUALS( drawTrace.CountMethod("DrawArrays"), 2, TEST_LOCATION );
   TraceCallStack::NamedParams tex1;
-  tex1["texture"] = "1";
+  tex1["texture"] << 1;
   TraceCallStack::NamedParams tex2;
-  tex1["texture"] = "2";
+  tex2["texture"] << 2;
   DALI_TEST_EQUALS( textureTrace.FindMethodAndParams("BindTexture", tex1), true, TEST_LOCATION );
   DALI_TEST_EQUALS( textureTrace.FindMethodAndParams("BindTexture", tex2), true, TEST_LOCATION );
 
@@ -575,6 +575,15 @@ int UtcDaliImageVisualCustomWrapModePixelArea(void)
   ToolkitTestApplication application;
   tet_infoline( "Request image visual with a Property::Map, test custom wrap mode and pixel area with atlasing" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("pixelArea", Property::Type::VECTOR4),
+    UniformData("wrapMode", Property::Type::VECTOR2),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -620,10 +629,10 @@ int UtcDaliImageVisualCustomWrapModePixelArea(void)
 
   // WITH atlasing, the wrapping is handled manually in shader, so the following gl function should not be called
   std::stringstream out;
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_S << ", " << GL_MIRRORED_REPEAT;
+  out << std::hex << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_S << ", " << GL_MIRRORED_REPEAT;
   DALI_TEST_CHECK( !texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) );
   out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_T << ", " << GL_REPEAT;
+  out << std::hex << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_T << ", " << GL_REPEAT;
   DALI_TEST_CHECK( !texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) );
 
   // test the uniforms which used to handle the wrap mode
@@ -654,6 +663,14 @@ int UtcDaliImageVisualCustomWrapModeNoAtlas(void)
   ToolkitTestApplication application;
   tet_infoline( "Request image visual with a Property::Map, test custom wrap mode and pixel area without atlasing" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("pixelArea", Property::Type::VECTOR4),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   VisualFactory factory = VisualFactory::Get();
   DALI_TEST_CHECK( factory );
 
@@ -678,8 +695,10 @@ int UtcDaliImageVisualCustomWrapModeNoAtlas(void)
   TestGlAbstraction& gl = application.GetGlAbstraction();
   TraceCallStack& textureTrace = gl.GetTextureTrace();
   textureTrace.Enable(true);
+  textureTrace.EnableLogging(true);
   TraceCallStack& texParameterTrace = gl.GetTexParameterTrace();
   texParameterTrace.Enable( true );
+  texParameterTrace.EnableLogging( true );
 
   DummyControl actor = DummyControl::New();
   DummyControlImpl& dummyImpl = static_cast<DummyControlImpl&>(actor.GetImplementation());
@@ -691,6 +710,7 @@ int UtcDaliImageVisualCustomWrapModeNoAtlas(void)
   // loading started
   application.SendNotification();
   application.Render();
+  application.SendNotification();
 
   DALI_TEST_CHECK( actor.GetRendererCount() == 1u );
 
@@ -698,10 +718,10 @@ int UtcDaliImageVisualCustomWrapModeNoAtlas(void)
 
   // WITHOUT atlasing, the wrapping is handled by setting gl texture parameters
   std::stringstream out;
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_S << ", " << GL_MIRRORED_REPEAT;
+  out << std::hex << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_S << ", " << GL_MIRRORED_REPEAT;
   DALI_TEST_CHECK( texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) );
   out.str("");
-  out << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_T << ", " << GL_REPEAT;
+  out << std::hex << GL_TEXTURE_2D << ", " << GL_TEXTURE_WRAP_T << ", " << GL_REPEAT;
   DALI_TEST_CHECK( texParameterTrace.FindMethodAndParams("TexParameteri", out.str()) );
 
   // test the uniforms which used to handle the wrap mode
@@ -728,6 +748,14 @@ int UtcDaliImageVisualAnimateMixColor(void)
   ToolkitTestApplication application;
   tet_infoline( "Animate mix color" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("mixColor", Property::Type::VECTOR3),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   application.GetPlatform().SetClosestImageSize( Vector2(100, 100) );
 
   VisualFactory factory = VisualFactory::Get();
@@ -781,7 +809,7 @@ int UtcDaliImageVisualAnimateMixColor(void)
   glAbstraction.EnableEnableDisableCallTrace( true );
   TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
-  blendStr << GL_BLEND;
+  blendStr << std::hex << GL_BLEND;
 
   application.SendNotification();
   application.Render(0); // Ensure animation starts
@@ -792,7 +820,7 @@ int UtcDaliImageVisualAnimateMixColor(void)
   DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue<Vector4>( "uColor", Vector4( 0.5f, 0.5f, 0.5f, 0.75f ) ), true, TEST_LOCATION );
   DALI_TEST_EQUALS( application.GetGlAbstraction().CheckUniformValue<Vector3>( "mixColor", testColor ), true, TEST_LOCATION );
 
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
 
   glEnableStack.Reset();
 
@@ -805,7 +833,7 @@ int UtcDaliImageVisualAnimateMixColor(void)
   // GL_BLEND should not be changed: Keep enabled
   // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
 //  DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
-  DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) );
 
   TestMixColor( visual, Visual::Property::MIX_COLOR, TARGET_MIX_COLOR );
 
@@ -842,12 +870,12 @@ int UtcDaliImageVisualAnimateOpacity(void)
   glAbstraction.EnableEnableDisableCallTrace( true );
   TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
-  blendStr << GL_BLEND;
+  blendStr << std::hex << GL_BLEND;
 
   application.SendNotification();
   application.Render();
 
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str()) );
 
   {
     tet_infoline( "Test that the opacity can be increased to full via animation, and that the blend mode is set appropriately at the start and end of the animation." );
@@ -885,7 +913,7 @@ int UtcDaliImageVisualAnimateOpacity(void)
 
     // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
 //    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
-    DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Disable", blendStr.str().c_str() ) );
+    DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) );
   }
 
 
@@ -917,7 +945,7 @@ int UtcDaliImageVisualAnimateOpacity(void)
     DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) );
     DALI_TEST_EQUALS( color.a, 0.55f, TEST_LOCATION );
 
-    DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+    DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
 
     glEnableStack.Reset();
 
@@ -928,9 +956,10 @@ int UtcDaliImageVisualAnimateOpacity(void)
     DALI_TEST_EQUALS( color.a, 0.1f, TEST_LOCATION );
 
     // GL_BLEND should not be changed: Keep enabled
-    // TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
-//    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
-    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str().c_str() ) );
+// @todo
+// TODO: Temporarily commented out the line below when caching is disabled. Will need to add it back.
+//    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
+    DALI_TEST_CHECK( !glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) );
   }
 
   END_TEST;
@@ -1003,14 +1032,14 @@ int UtcDaliImageVisualAnimateOpacity02(void)
   glAbstraction.EnableEnableDisableCallTrace( true );
   TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
-  blendStr << GL_BLEND;
+  blendStr << std::hex << GL_BLEND;
 
   application.SendNotification();
   application.Render(0);     // Ensure animation starts
   application.Render(2000u); // Halfway point through animation
   application.SendNotification(); // Handle any signals
 
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
 
   Vector4 color;
   DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) );
@@ -1024,7 +1053,7 @@ int UtcDaliImageVisualAnimateOpacity02(void)
   DALI_TEST_CHECK( application.GetGlAbstraction().GetUniformValue< Vector4 >( "uColor", color ) );
   DALI_TEST_EQUALS( color.a, 1.0f, TEST_LOCATION );
 
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Disable", blendStr.str().c_str() ) );
+  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Disable", blendStr.str() ) );
 
   END_TEST;
 }
@@ -1036,6 +1065,14 @@ int UtcDaliImageVisualAnimatePixelArea(void)
   ToolkitTestApplication application;
   tet_infoline( "ImageVisual animate pixel area" );
 
+  static std::vector<UniformData> customUniforms =
+  {
+    UniformData("pixelArea", Property::Type::VECTOR4),
+  };
+
+  TestGraphicsController& graphics = application.GetGraphicsController();
+  graphics.AddCustomUniforms(customUniforms);
+
   application.GetPlatform().SetClosestImageSize( Vector2(100, 100) );
 
   VisualFactory factory = VisualFactory::Get();
@@ -2365,8 +2402,8 @@ int UtcDaliImageVisualCustomShader(void)
 
   TraceCallStack& glEnableStack = glAbstraction.GetEnableDisableTrace();
   std::ostringstream blendStr;
-  blendStr << GL_BLEND;
-  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str().c_str() ) );
+  blendStr << std::hex << GL_BLEND;
+  DALI_TEST_CHECK( glEnableStack.FindMethodAndParams( "Enable", blendStr.str() ) );
 
   END_TEST;
 }