#include <dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h>
#include <dali/integration-api/events/touch-event-integ.h>
+#include <toolkit-event-thread-callback.h>
#include <dali-scene3d/public-api/controls/model/model.h>
gFocusChangedCallBackCalled = true;
}
+// For ResourceReady
+static bool gOnRelayoutCallBackCalled = false;
+void OnRelayoutCallback(Actor actor)
+{
+ gOnRelayoutCallBackCalled = true;
+}
+
+static bool gResourceReadyCalled = false;
+void OnResourceReady(Control control)
+{
+ gResourceReadyCalled = true;
+}
+
} // namespace
// Negative test case for a method
ToolkitTestApplication application;
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
uint32_t modelCount = model.GetModelRoot().GetChildCount();
DALI_TEST_EQUALS(1, modelCount, TEST_LOCATION);
-
END_TEST;
}
ToolkitTestApplication application;
Scene3D::Model model = Scene3D::Model::New(TEST_DLI_FILE_NAME);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
uint32_t modelCount = model.GetModelRoot().GetChildCount();
DALI_TEST_EQUALS(1, modelCount, TEST_LOCATION);
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
Vector3 naturalSize = model.GetNaturalSize();
+ DALI_TEST_EQUALS(Vector3::ZERO, naturalSize, TEST_LOCATION);
+
+ application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
+ naturalSize = model.GetNaturalSize();
DALI_TEST_EQUALS(Vector3(2, 2, 2), naturalSize, TEST_LOCATION);
Actor root = model.GetModelRoot();
ToolkitTestApplication application;
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = model.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
Texture diffuseTexture = textureSet.GetTexture(7u);
Texture specularTexture = textureSet.GetTexture(8u);
+ gResourceReadyCalled = false;
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
model.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Texture newDiffuseTexture = textureSet.GetTexture(7u);
Texture newSpecularTexture = textureSet.GetTexture(8u);
DALI_TEST_NOT_EQUALS(diffuseTexture, newDiffuseTexture, 0.0f, TEST_LOCATION);
DALI_TEST_NOT_EQUALS(specularTexture, newSpecularTexture, 0.0f, TEST_LOCATION);
+ model.Unparent();
+ model.Reset();
END_TEST;
}
ToolkitTestApplication application;
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = model.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
Texture diffuseTexture = textureSet.GetTexture(7u);
Texture specularTexture = textureSet.GetTexture(8u);
+ // if url is empty, loading is not requested.
model.SetImageBasedLightSource("", "");
Texture newDiffuseTexture = textureSet.GetTexture(7u);
ToolkitTestApplication application;
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = model.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
Texture diffuseTexture = textureSet.GetTexture(7u);
Texture specularTexture = textureSet.GetTexture(8u);
+ gResourceReadyCalled = false;
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
model.SetImageBasedLightSource("dummy.ktx", "dummy.ktx");
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Texture newDiffuseTexture = textureSet.GetTexture(7u);
Texture newSpecularTexture = textureSet.GetTexture(8u);
END_TEST;
}
+int UtcDaliModelSetImageBasedLightSource04(void)
+{
+ ToolkitTestApplication application;
+
+ Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
+ model.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
+ application.GetScene().Add(model);
+
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(3), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+ END_TEST;
+}
+
int UtcDaliModelImageBasedFactor(void)
{
ToolkitTestApplication application;
// Allow children actor's event before on scene.
view.SetChildrenSensitive(true);
DALI_TEST_EQUALS(view.GetChildrenSensitive(), true, TEST_LOCATION);
-
application.GetScene().Add(view);
+ gResourceReadyCalled = false;
+ view.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = view.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
// Block children actor's event before on scene.
view.SetChildrenSensitive(false);
DALI_TEST_EQUALS(view.GetChildrenSensitive(), false, TEST_LOCATION);
-
application.GetScene().Add(view);
+ gResourceReadyCalled = false;
+ view.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = view.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
// Allow children actor's focus before on scene.
view.SetChildrenFocusable(true);
DALI_TEST_EQUALS(view.GetChildrenFocusable(), true, TEST_LOCATION);
-
application.GetScene().Add(view);
+ gResourceReadyCalled = false;
+ view.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = view.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
// Block children actor's focus before on scene.
view.SetChildrenFocusable(false);
DALI_TEST_EQUALS(view.GetChildrenFocusable(), false, TEST_LOCATION);
-
application.GetScene().Add(view);
+ gResourceReadyCalled = false;
+ view.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
Actor meshActor = view.FindChildByName("AnimatedCube");
DALI_TEST_CHECK(meshActor);
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
uint32_t animationCount = model.GetAnimationCount();
DALI_TEST_EQUALS(1, animationCount, TEST_LOCATION);
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_ANIMATION_TEST_FILE_NAME);
model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
Scene3D::Model model = Scene3D::Model::New(TEST_DLI_EXERCISE_FILE_NAME);
model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
+
uint32_t animationCount = model.GetAnimationCount();
DALI_TEST_EQUALS(18, animationCount, TEST_LOCATION);
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_MULTIPLE_PRIMITIVE_FILE_NAME);
model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
Scene3D::Model model = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
model.SetProperty(Dali::Actor::Property::SIZE, Vector2(50, 50));
model.SetProperty(Dali::Actor::Property::COLOR, Color::RED);
-
application.GetScene().Add(model);
+ gResourceReadyCalled = false;
+ model.ResourceReadySignal().Connect(&OnResourceReady);
+ DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
+
+ application.SendNotification();
+ application.Render();
+
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
application.SendNotification();
application.Render();
END_TEST;
}
-
-// For ResourceReady
-namespace
-{
-static bool gOnRelayoutCallBackCalled = false;
-void OnRelayoutCallback(Actor actor)
-{
- gOnRelayoutCallBackCalled = true;
-}
-
-static bool gResourceReadyCalled = false;
-void OnResourceReady(Control control)
-{
- gResourceReadyCalled = true;
-}
-} // namespace
-
int UtcDaliModelResourceReady(void)
{
ToolkitTestApplication application;
application.SendNotification();
application.Render();
+ DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ application.SendNotification();
+ application.Render();
+
DALI_TEST_EQUALS(gOnRelayoutCallBackCalled, false, TEST_LOCATION);
DALI_TEST_EQUALS(model.IsResourceReady(), true, TEST_LOCATION);
DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);