[dali_2.3.24] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / automated-tests / src / dali-scene3d / utc-Dali-NodeDefinition.cpp
index 835fdbf..1de81f7 100644 (file)
 // Enable debug log for test coverage
 #define DEBUG_ENABLED 1
 
-#include "dali-scene3d/public-api/loader/node-definition.h"
-#include "dali-scene3d/public-api/loader/view-projection.h"
-#include <toolkit-test-application.h>
 #include <dali-test-suite-utils.h>
+#include <toolkit-test-application.h>
 #include <string_view>
+#include "dali-scene3d/public-api/loader/node-definition.h"
+#include "dali-scene3d/public-api/loader/view-projection.h"
 
 using namespace Dali;
 using namespace Dali::Scene3D::Loader;
@@ -35,20 +35,19 @@ struct Context
   ResourceBundle resources;
 
   ViewProjection viewProjection;
-  Transforms transforms { MatrixStack{}, viewProjection };
+  Transforms     transforms{MatrixStack{}, viewProjection};
 
-  NodeDefinition::CreateParams createParams {
+  NodeDefinition::CreateParams createParams{
     resources,
-    transforms
-  };
+    transforms};
 };
 
-}
+} // namespace
 
 int UtcDaliConstraintDefinitionsCompare(void)
 {
-  ConstraintDefinition cd1{ "orientation", 0 };
-  ConstraintDefinition cd2{ "position", 1 };
+  ConstraintDefinition cd1{"orientation", 0};
+  ConstraintDefinition cd2{"position", 1};
 
   DALI_TEST_CHECK(cd1 < cd2);
   DALI_TEST_CHECK(!(cd2 < cd1));
@@ -58,9 +57,9 @@ int UtcDaliConstraintDefinitionsCompare(void)
   DALI_TEST_CHECK(cd1 == cd1);
   DALI_TEST_CHECK(cd2 == cd2);
 
-  ConstraintDefinition cd3{ "position", 0 };
-  ConstraintDefinition cd4{ "scale", 1 };
-  ConstraintDefinition cd5{ "position", 1 };
+  ConstraintDefinition cd3{"position", 0};
+  ConstraintDefinition cd4{"scale", 1};
+  ConstraintDefinition cd5{"position", 1};
   DALI_TEST_CHECK(cd2 != cd3);
   DALI_TEST_CHECK(cd2 != cd4);
   DALI_TEST_CHECK(cd2 == cd5);
@@ -71,13 +70,10 @@ int UtcDaliConstraintDefinitionsCompare(void)
 
 int UtcDaliBlendshapeShaderConfigurationRequestsCompare(void)
 {
-  TestApplication app;
-  BlendshapeShaderConfigurationRequest bsscr1{ "", 0, Shader(nullptr) };
+  TestApplication                      app;
+  BlendshapeShaderConfigurationRequest bsscr1{"", 0, Shader(nullptr)};
 
-  BlendshapeShaderConfigurationRequest bsscr2{ "", 0, Shader::New(
-    "void main(){ gl_Position = vec4(0.); }",
-    "void main(){ gl_FragColor = vec4(1.); }"
-  ) };
+  BlendshapeShaderConfigurationRequest bsscr2{"", 0, Shader::New("void main(){ gl_Position = vec4(0.); }", "void main(){ gl_FragColor = vec4(1.); }")};
 
   DALI_TEST_CHECK(bsscr1 < bsscr2);
   DALI_TEST_CHECK(!(bsscr2 < bsscr1));
@@ -89,8 +85,8 @@ int UtcDaliBlendshapeShaderConfigurationRequestsCompare(void)
 
 int UtcDaliNodeDefinitionExtrasCompare(void)
 {
-  NodeDefinition::Extra e1{ "alpha", Vector3::XAXIS * 2.f };
-  NodeDefinition::Extra e2{ "beta", 8 };
+  NodeDefinition::Extra e1{"alpha", Vector3::XAXIS * 2.f};
+  NodeDefinition::Extra e2{"beta", 8};
 
   DALI_TEST_CHECK(e1 < e2);
   DALI_TEST_CHECK(!(e1 < e1));
@@ -103,21 +99,22 @@ int UtcDaliNodeDefinitionExtrasCompare(void)
 int UtcDaliNodeDefinitionProperties(void)
 {
   TestApplication testApp;
-  NodeDefinition nodeDef{
+  NodeDefinition  nodeDef{
     "testRootNode",
-    Vector3{ -100.f, 100.f, -500.f },
-    Quaternion{ Radian(Degree(45.f)), Vector3::ZAXIS },
-    Vector3{ 2.f, 4.f, 8.f },
-    Vector3{ 100.f, 50.f, 25.f },
+    INVALID_INDEX,
+    Vector3{-100.f, 100.f, -500.f},
+    Quaternion{Radian(Degree(45.f)), Vector3::ZAXIS},
+    Vector3{2.f, 4.f, 8.f},
+    Vector3{100.f, 50.f, 25.f},
     false,
   };
 
   Quaternion frobnicateFactor(0.f, 1.f, 2.f, 3.f);
   frobnicateFactor.Normalize(); // because it will be (by DALi) once it's set as a property.
-  nodeDef.mExtras.push_back(NodeDefinition::Extra{ "frobnicateFactor", frobnicateFactor });
+  nodeDef.mExtras.push_back(NodeDefinition::Extra{"frobnicateFactor", frobnicateFactor});
 
   Context ctx;
-  auto actor = nodeDef.CreateActor(ctx.createParams);
+  auto    actor = nodeDef.CreateModelNode(ctx.createParams);
   DALI_TEST_EQUAL(nodeDef.mName, actor.GetProperty(Actor::Property::NAME).Get<std::string>());
   DALI_TEST_EQUAL(nodeDef.mPosition, actor.GetProperty(Actor::Property::POSITION).Get<Vector3>());
   DALI_TEST_EQUAL(nodeDef.mOrientation, actor.GetProperty(Actor::Property::ORIENTATION).Get<Quaternion>());
@@ -142,30 +139,30 @@ int UtcDaliNodeDefinitionRenderableRegisterResources(void)
 {
   NodeDefinition nodeDef;
 
-  auto renderable = new NodeDefinition::Renderable();
-  renderable->mShaderIdx = 0;
-  nodeDef.mRenderable.reset(renderable);
+  std::unique_ptr<NodeDefinition::Renderable> renderable = std::unique_ptr<NodeDefinition::Renderable>(new NodeDefinition::Renderable());
+  nodeDef.mRenderables.push_back(std::move(renderable));
+  nodeDef.mRenderables[0]->mShaderIdx = 0;
 
   struct : IResourceReceiver
   {
     std::vector<Index> shaders;
-    uint32_t otherResources = 0;
+    uint32_t           otherResources = 0;
 
     void Register(ResourceType::Value type, Index id) override
     {
       switch(type)
       {
-      case ResourceType::Shader:
-        shaders.push_back(id);
-        break;
+        case ResourceType::Shader:
+          shaders.push_back(id);
+          break;
 
-      default:
-        ++otherResources;
+        default:
+          ++otherResources;
       }
     }
   } resourceReceiver;
 
-  nodeDef.mRenderable->RegisterResources(resourceReceiver);
+  nodeDef.mRenderables[0]->RegisterResources(resourceReceiver);
   DALI_TEST_EQUAL(1u, resourceReceiver.shaders.size());
   DALI_TEST_EQUAL(0, resourceReceiver.shaders[0]);
   DALI_TEST_EQUAL(0, resourceReceiver.otherResources);
@@ -177,32 +174,32 @@ int UtcDaliNodeDefinitionRenderableReflectResources(void)
 {
   NodeDefinition nodeDef;
 
-  auto renderable = new NodeDefinition::Renderable();
-  renderable->mShaderIdx = 0;
-  nodeDef.mRenderable.reset(renderable);
+  std::unique_ptr<NodeDefinition::Renderable> renderable = std::unique_ptr<NodeDefinition::Renderable>(new NodeDefinition::Renderable());
+  nodeDef.mRenderables.push_back(std::move(renderable));
+  nodeDef.mRenderables[0]->mShaderIdx = 0;
 
   struct : IResourceReflector
   {
     std::vector<Index*> shaders;
-    uint32_t otherResources = 0;
+    uint32_t            otherResources = 0;
 
     void Reflect(ResourceType::Value type, Index& id) override
     {
       switch(type)
       {
-      case ResourceType::Shader:
-        shaders.push_back(&id);
-        break;
+        case ResourceType::Shader:
+          shaders.push_back(&id);
+          break;
 
-      default:
-        ++otherResources;
+        default:
+          ++otherResources;
       }
     }
   } resourceReflector;
 
-  nodeDef.mRenderable->ReflectResources(resourceReflector);
+  nodeDef.mRenderables[0]->ReflectResources(resourceReflector);
   DALI_TEST_EQUAL(1u, resourceReflector.shaders.size());
-  DALI_TEST_EQUAL(&renderable->mShaderIdx, resourceReflector.shaders[0]);
+  DALI_TEST_EQUAL(&nodeDef.mRenderables[0]->mShaderIdx, resourceReflector.shaders[0]);
   DALI_TEST_EQUAL(0, resourceReflector.otherResources);
 
   END_TEST;
@@ -211,19 +208,19 @@ int UtcDaliNodeDefinitionRenderableReflectResources(void)
 int UtcDaliNodeDefinitionRenderable(void)
 {
   TestApplication testApp;
-  NodeDefinition nodeDef;
+  NodeDefinition  nodeDef;
 
-  auto renderable = new NodeDefinition::Renderable();
-  renderable->mShaderIdx = 0;
-  nodeDef.mRenderable.reset(renderable);
+  std::unique_ptr<NodeDefinition::Renderable> renderable = std::unique_ptr<NodeDefinition::Renderable>(new NodeDefinition::Renderable());
+  nodeDef.mRenderables.push_back(std::move(renderable));
+  nodeDef.mRenderables[0]->mShaderIdx = 0;
 
-  Context ctx;
-  const auto VSH = "void main() { gl_Position = vec4(0.); }";
-  const auto FSH = "void main() { gl_FragColor = vec4(1.); }";
-  auto shader = Shader::New(VSH, FSH);
-  ctx.resources.mShaders.push_back({ ShaderDefinition{}, shader });
+  Context    ctx;
+  const auto VSH    = "void main() { gl_Position = vec4(0.); }";
+  const auto FSH    = "void main() { gl_FragColor = vec4(1.); }";
+  auto       shader = Shader::New(VSH, FSH);
+  ctx.resources.mShaders.push_back({ShaderDefinition{}, shader});
 
-  auto actor = nodeDef.CreateActor(ctx.createParams);
+  auto actor = nodeDef.CreateModelNode(ctx.createParams);
   DALI_TEST_EQUAL(1, actor.GetRendererCount());
 
   auto renderer = actor.GetRendererAt(0);