2 * Copyright (c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <dali-toolkit-test-suite-utils.h>
19 #include <dali-toolkit/dali-toolkit.h>
23 #include <dali-scene3d/public-api/controls/model/model.h>
24 #include <dali-scene3d/public-api/controls/scene-view/scene-view.h>
27 using namespace Dali::Toolkit;
29 void scene_view_startup(void)
31 test_return_value = TET_UNDEF;
34 void scene_view_cleanup(void)
36 test_return_value = TET_PASS;
42 * For the AnimatedCube.gltf and its Assets
43 * Donated by Norbert Nopper for glTF testing.
44 * Take from https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/AnimatedCube
46 const char* TEST_GLTF_FILE_NAME = TEST_RESOURCE_DIR "/AnimatedCube.gltf";
49 * For the diffuse and specular cube map texture.
50 * These textures are based off version of Wave engine sample
51 * Take from https://github.com/WaveEngine/Samples
53 * Copyright (c) 2022 Wave Coorporation
55 * Permission is hereby granted, free of charge, to any person obtaining a copy
56 * of this software and associated documentation files (the "Software"), to
57 * deal in the Software without restriction, including without limitation the
58 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
59 * sell copies of the Software, and to permit persons to whom the Software is
60 * furnished to do so, subject to the following conditions:
62 * The above copyright notice and this permission notice shall be included in
63 * all copies or substantial portions of the Software.
65 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
66 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
67 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
68 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
69 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
70 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
73 const char* TEST_DIFFUSE_TEXTURE = TEST_RESOURCE_DIR "/forest_irradiance.ktx";
74 const char* TEST_SPECULAR_TEXTURE = TEST_RESOURCE_DIR "/forest_radiance.ktx";
76 Dali::Texture GetDiffuseTexture(Dali::Scene3D::Model model)
78 Dali::Texture texture;
80 Actor meshActor = model.FindChildByName("AnimatedCube");
83 Renderer renderer = meshActor.GetRendererAt(0u);
86 TextureSet textureSet = renderer.GetTextures();
87 if(textureSet.GetTextureCount() == 7u)
89 texture = textureSet.GetTexture(5u);
97 Dali::Texture GetSpecularTexture(Dali::Scene3D::Model model)
99 Dali::Texture texture;
101 Actor meshActor = model.FindChildByName("AnimatedCube");
104 Renderer renderer = meshActor.GetRendererAt(0u);
107 TextureSet textureSet = renderer.GetTextures();
108 if(textureSet.GetTextureCount() == 7u)
110 texture = textureSet.GetTexture(6u);
119 // Negative test case for a method
120 int UtcDaliSceneViewUninitialized(void)
122 ToolkitTestApplication application;
123 tet_infoline("UtcDaliSceneViewUninitialized");
125 Scene3D::SceneView view;
129 // New() must be called to create a Model or it wont be valid.
130 Actor a = Actor::New();
132 DALI_TEST_CHECK(false);
134 catch(Dali::DaliException& e)
136 // Tests that a negative test of an assertion succeeds
137 DALI_TEST_PRINT_ASSERT(e);
138 DALI_TEST_CHECK(!view);
143 // Positive test case for a method
144 int UtcDaliSceneViewNew(void)
146 ToolkitTestApplication application;
147 tet_infoline("UtcDaliSceneViewNew");
149 Scene3D::SceneView view = Scene3D::SceneView::New();
150 DALI_TEST_CHECK(view);
154 // Positive test case for a method
155 int UtcDaliSceneViewDownCast(void)
157 ToolkitTestApplication application;
158 tet_infoline("UtcDaliSceneViewDownCast");
160 Scene3D::SceneView view = Scene3D::SceneView::New();
161 BaseHandle handle(view);
163 Scene3D::SceneView sceneView = Scene3D::SceneView::DownCast(handle);
164 DALI_TEST_CHECK(view);
165 DALI_TEST_CHECK(sceneView);
166 DALI_TEST_CHECK(sceneView == view);
170 int UtcDaliSceneViewTypeRegistry(void)
172 ToolkitTestApplication application;
173 tet_infoline("UtcDaliSceneViewTypeRegistry");
175 TypeRegistry typeRegistry = TypeRegistry::Get();
176 DALI_TEST_CHECK(typeRegistry);
178 TypeInfo typeInfo = typeRegistry.GetTypeInfo("SceneView");
179 DALI_TEST_CHECK(typeInfo);
181 BaseHandle handle = typeInfo.CreateInstance();
182 DALI_TEST_CHECK(handle);
184 Scene3D::SceneView model = Scene3D::SceneView::DownCast(handle);
185 DALI_TEST_CHECK(model);
190 // Positive test case for a method
191 int UtcDaliSceneViewAddRemove(void)
193 ToolkitTestApplication application;
194 tet_infoline("UtcDaliSceneViewAddRemove");
196 Scene3D::SceneView view = Scene3D::SceneView::New();
197 DALI_TEST_CHECK(view);
198 DALI_TEST_EQUALS(1u, view.GetChildCount(), TEST_LOCATION);
200 Actor actor = Actor::New();
202 view.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
203 view.SetProperty(Actor::Property::SIZE, application.GetScene().GetSize());
206 DALI_TEST_EQUALS(1u, view.GetChildCount(), TEST_LOCATION);
207 Actor layer = view.GetChildAt(0u);
209 DALI_TEST_EQUALS(2u, layer.GetChildCount(), TEST_LOCATION);
210 DALI_TEST_EQUALS(actor, layer.GetChildAt(1u), TEST_LOCATION); // index 0u is default camera
213 DALI_TEST_EQUALS(1u, layer.GetChildCount(), TEST_LOCATION);
217 int UtcDaliSceneViewCopyAndAssignment(void)
219 ToolkitTestApplication application;
221 Scene3D::SceneView view = Scene3D::SceneView::New();
222 DALI_TEST_CHECK(view);
224 Scene3D::SceneView copy(view);
225 DALI_TEST_CHECK(view == copy);
227 Scene3D::SceneView assign;
228 DALI_TEST_CHECK(!assign);
231 DALI_TEST_CHECK(assign == view);
236 int UtcDaliSceneViewMoveConstructor(void)
238 ToolkitTestApplication application;
240 Scene3D::SceneView view = Scene3D::SceneView::New();
241 DALI_TEST_EQUALS(1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION);
242 view.SetProperty(Actor::Property::SENSITIVE, false);
243 DALI_TEST_CHECK(false == view.GetProperty<bool>(Actor::Property::SENSITIVE));
245 Scene3D::SceneView moved = std::move(view);
246 DALI_TEST_CHECK(moved);
247 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
248 DALI_TEST_CHECK(false == moved.GetProperty<bool>(Actor::Property::SENSITIVE));
249 DALI_TEST_CHECK(!view);
254 int UtcDaliSceneViewMoveAssignment(void)
256 ToolkitTestApplication application;
258 Scene3D::SceneView view = Scene3D::SceneView::New();
259 DALI_TEST_EQUALS(1, view.GetBaseObject().ReferenceCount(), TEST_LOCATION);
260 view.SetProperty(Actor::Property::SENSITIVE, false);
261 DALI_TEST_CHECK(false == view.GetProperty<bool>(Actor::Property::SENSITIVE));
263 Scene3D::SceneView moved;
264 moved = std::move(view);
265 DALI_TEST_CHECK(moved);
266 DALI_TEST_EQUALS(1, moved.GetBaseObject().ReferenceCount(), TEST_LOCATION);
267 DALI_TEST_CHECK(false == moved.GetProperty<bool>(Actor::Property::SENSITIVE));
268 DALI_TEST_CHECK(!view);
273 int UtcDaliSceneViewOnScene01(void)
275 ToolkitTestApplication application;
277 Scene3D::SceneView view = Scene3D::SceneView::New();
279 DALI_TEST_EQUALS(1u, view.GetChildCount(), TEST_LOCATION);
280 Actor layer = view.GetChildAt(0u);
282 DALI_TEST_EQUALS(1u, layer.GetChildCount(), TEST_LOCATION);
284 application.GetScene().Add(view);
286 application.SendNotification();
287 application.Render();
289 // CameraActor is added on layer when on scene
290 DALI_TEST_EQUALS(1u, layer.GetChildCount(), TEST_LOCATION);
295 int UtcDaliSceneViewOnScene02(void)
297 ToolkitTestApplication application;
299 uint32_t renderTaskCount = application.GetScene().GetRenderTaskList().GetTaskCount();
300 DALI_TEST_EQUALS(1u, renderTaskCount, TEST_LOCATION);
302 Scene3D::SceneView view = Scene3D::SceneView::New();
304 renderTaskCount = application.GetScene().GetRenderTaskList().GetTaskCount();
305 DALI_TEST_EQUALS(2u, renderTaskCount, TEST_LOCATION);
307 RenderTask renderTask = application.GetScene().GetRenderTaskList().GetTask(1u);
308 CameraActor camera = renderTask.GetCameraActor();
310 application.GetScene().Add(view);
312 application.SendNotification();
313 application.Render();
315 CameraActor defaultCamera = renderTask.GetCameraActor();
316 DALI_TEST_CHECK(defaultCamera);
317 DALI_TEST_EQUALS(camera, defaultCamera, TEST_LOCATION);
318 DALI_TEST_EQUALS(defaultCamera, view.GetSelectedCamera(), TEST_LOCATION);
323 int UtcDaliSceneViewUserCamera(void)
325 ToolkitTestApplication application;
327 Scene3D::SceneView view = Scene3D::SceneView::New();
328 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
330 application.GetScene().Add(view);
332 application.SendNotification();
333 application.Render();
335 CameraActor defaultCamera = view.GetSelectedCamera();
336 CameraActor camera = Dali::CameraActor::New();
337 camera.SetProperty(Dali::Actor::Property::NAME, "camera");
338 view.AddCamera(camera);
339 view.SelectCamera("camera");
341 DALI_TEST_NOT_EQUALS(defaultCamera, view.GetSelectedCamera(), 0.0f, TEST_LOCATION);
342 DALI_TEST_EQUALS(camera, view.GetSelectedCamera(), TEST_LOCATION);
344 camera.SetProperty(Dali::Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
345 camera.SetProperty(Dali::Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
346 camera.SetFieldOfView(0.5f);
347 camera.SetNearClippingPlane(1.0f);
348 camera.SetFarClippingPlane(5000.0f);
349 camera.SetProperty(Dali::Actor::Property::POSITION, Vector3(20, 30, 40));
351 float fov = camera[Dali::CameraActor::Property::FIELD_OF_VIEW];
352 float nearPlain = camera[Dali::CameraActor::Property::NEAR_PLANE_DISTANCE];
353 float farPlain = camera[Dali::CameraActor::Property::FAR_PLANE_DISTANCE];
354 Vector3 cameraPosition = camera[Dali::Actor::Property::POSITION];
356 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(400, 300));
358 DALI_TEST_EQUALS(fov, camera.GetProperty<float>(Dali::CameraActor::Property::FIELD_OF_VIEW), TEST_LOCATION);
359 DALI_TEST_EQUALS(nearPlain, camera.GetProperty<float>(Dali::CameraActor::Property::NEAR_PLANE_DISTANCE), TEST_LOCATION);
360 DALI_TEST_EQUALS(farPlain, camera.GetProperty<float>(Dali::CameraActor::Property::FAR_PLANE_DISTANCE), TEST_LOCATION);
361 DALI_TEST_EQUALS(cameraPosition, camera.GetProperty<Vector3>(Dali::Actor::Property::POSITION), TEST_LOCATION);
366 int UtcDaliSceneViewAddRemoveCamera(void)
368 ToolkitTestApplication application;
370 Scene3D::SceneView view = Scene3D::SceneView::New();
371 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
373 application.GetScene().Add(view);
375 application.SendNotification();
376 application.Render();
378 CameraActor camera0 = view.GetSelectedCamera();
379 camera0.SetProperty(Dali::Actor::Property::NAME, "camera0");
380 CameraActor camera1 = Dali::CameraActor::New();
381 camera1.SetProperty(Dali::Actor::Property::NAME, "camera1");
383 DALI_TEST_EQUALS(1u, view.GetCameraCount(), TEST_LOCATION);
384 view.AddCamera(camera1);
385 DALI_TEST_EQUALS(2u, view.GetCameraCount(), TEST_LOCATION);
387 DALI_TEST_EQUALS(camera0, view.GetCamera(0), TEST_LOCATION);
388 DALI_TEST_EQUALS(camera0, view.GetCamera("camera0"), TEST_LOCATION);
389 DALI_TEST_EQUALS(camera1, view.GetCamera(1), TEST_LOCATION);
390 DALI_TEST_EQUALS(camera1, view.GetCamera("camera1"), TEST_LOCATION);
392 DALI_TEST_EQUALS(camera0, view.GetSelectedCamera(), TEST_LOCATION);
393 view.SelectCamera(1); // 0 -> 1
394 DALI_TEST_EQUALS(camera1, view.GetSelectedCamera(), TEST_LOCATION);
395 view.SelectCamera("camera0"); // 1 -> 0
396 DALI_TEST_EQUALS(camera0, view.GetSelectedCamera(), TEST_LOCATION);
397 view.SelectCamera("camera1"); // 0 -> 1
398 DALI_TEST_EQUALS(camera1, view.GetSelectedCamera(), TEST_LOCATION);
399 view.SelectCamera(0); // 1 -> 0
400 DALI_TEST_EQUALS(camera0, view.GetSelectedCamera(), TEST_LOCATION);
402 view.SelectCamera(1); // 0 -> 1
403 DALI_TEST_EQUALS(camera1, view.GetSelectedCamera(), TEST_LOCATION);
404 DALI_TEST_EQUALS(2u, view.GetCameraCount(), TEST_LOCATION);
405 view.RemoveCamera(camera1); // 1 -> 0
406 DALI_TEST_EQUALS(camera0, view.GetSelectedCamera(), TEST_LOCATION);
407 DALI_TEST_EQUALS(1u, view.GetCameraCount(), TEST_LOCATION);
409 CameraActor defaultCamera = view.GetSelectedCamera();
410 DALI_TEST_CHECK(defaultCamera);
411 DALI_TEST_EQUALS(camera0, defaultCamera, TEST_LOCATION);
412 DALI_TEST_NOT_EQUALS(camera1, defaultCamera, 0.0f, TEST_LOCATION);
416 int UtcDaliSceneViewImageBasedLight01(void)
418 ToolkitTestApplication application;
420 Scene3D::SceneView view = Scene3D::SceneView::New();
421 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
423 application.GetScene().Add(view);
425 application.SendNotification();
426 application.Render();
428 Scene3D::Model modelView1 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
429 Scene3D::Model modelView2 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
430 Scene3D::Model modelView3 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
431 view.Add(modelView1);
432 view.Add(modelView2);
434 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView2), 0.0f, TEST_LOCATION);
435 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView2), 0.0f, TEST_LOCATION);
436 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView3), 0.0f, TEST_LOCATION);
437 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView3), 0.0f, TEST_LOCATION);
439 view.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
441 DALI_TEST_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView2), TEST_LOCATION);
442 DALI_TEST_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView2), TEST_LOCATION);
443 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView3), 0.0f, TEST_LOCATION);
444 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView3), 0.0f, TEST_LOCATION);
446 view.Add(modelView3);
448 DALI_TEST_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView3), TEST_LOCATION);
449 DALI_TEST_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView3), TEST_LOCATION);
451 view.Remove(modelView1);
452 view.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
454 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView2), 0.0f, TEST_LOCATION);
455 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView2), 0.0f, TEST_LOCATION);
456 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), GetDiffuseTexture(modelView3), 0.0f, TEST_LOCATION);
457 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), GetSpecularTexture(modelView3), 0.0f, TEST_LOCATION);
458 DALI_TEST_EQUALS(GetDiffuseTexture(modelView2), GetDiffuseTexture(modelView3), TEST_LOCATION);
459 DALI_TEST_EQUALS(GetSpecularTexture(modelView2), GetSpecularTexture(modelView3), TEST_LOCATION);
464 int UtcDaliSceneViewImageBasedLight02(void)
466 ToolkitTestApplication application;
468 Scene3D::SceneView view = Scene3D::SceneView::New();
469 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
471 application.GetScene().Add(view);
473 application.SendNotification();
474 application.Render();
476 Scene3D::Model modelView1 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
477 view.Add(modelView1);
479 view.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
480 Dali::Texture diffuseTexture = GetDiffuseTexture(modelView1);
481 Dali::Texture specularTexture = GetSpecularTexture(modelView1);
483 modelView1.SetImageBasedLightSource(TEST_SPECULAR_TEXTURE, TEST_DIFFUSE_TEXTURE);
484 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, 0.0f, TEST_LOCATION);
485 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), specularTexture, 0.0f, TEST_LOCATION);
486 diffuseTexture = GetDiffuseTexture(modelView1);
487 specularTexture = GetSpecularTexture(modelView1);
489 // reset SceneView IBL
490 view.SetImageBasedLightSource("", "");
491 DALI_TEST_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, TEST_LOCATION);
492 DALI_TEST_EQUALS(GetSpecularTexture(modelView1), specularTexture, TEST_LOCATION);
494 modelView1.SetImageBasedLightSource("", "");
495 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, 0.0f, TEST_LOCATION);
496 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), specularTexture, 0.0f, TEST_LOCATION);
501 int UtcDaliSceneViewImageBasedLight03(void)
503 ToolkitTestApplication application;
505 Scene3D::SceneView view = Scene3D::SceneView::New();
506 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
508 application.GetScene().Add(view);
510 application.SendNotification();
511 application.Render();
513 Scene3D::Model modelView1 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
514 view.Add(modelView1);
516 modelView1.SetImageBasedLightSource(TEST_SPECULAR_TEXTURE, TEST_DIFFUSE_TEXTURE);
517 Dali::Texture diffuseTexture = GetDiffuseTexture(modelView1);
518 Dali::Texture specularTexture = GetSpecularTexture(modelView1);
520 view.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
521 DALI_TEST_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, TEST_LOCATION);
522 DALI_TEST_EQUALS(GetSpecularTexture(modelView1), specularTexture, TEST_LOCATION);
524 modelView1.SetImageBasedLightSource("", "");
525 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, 0.0f, TEST_LOCATION);
526 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), specularTexture, 0.0f, TEST_LOCATION);
527 diffuseTexture = GetDiffuseTexture(modelView1);
528 specularTexture = GetSpecularTexture(modelView1);
530 // reset SceneView IBL
531 view.SetImageBasedLightSource("", "");
532 DALI_TEST_NOT_EQUALS(GetDiffuseTexture(modelView1), diffuseTexture, 0.0f, TEST_LOCATION);
533 DALI_TEST_NOT_EQUALS(GetSpecularTexture(modelView1), specularTexture, 0.0f, TEST_LOCATION);
538 int UtcDaliSceneViewImageBasedFactor(void)
540 ToolkitTestApplication application;
542 Scene3D::SceneView view = Scene3D::SceneView::New();
543 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
545 application.GetScene().Add(view);
547 application.SendNotification();
548 application.Render();
550 Scene3D::Model modelView1 = Scene3D::Model::New(TEST_GLTF_FILE_NAME);
551 view.Add(modelView1);
553 DALI_TEST_EQUALS(view.GetImageBasedLightScaleFactor(), 1.0f, TEST_LOCATION);
554 DALI_TEST_EQUALS(modelView1.GetImageBasedLightScaleFactor(), 1.0f, TEST_LOCATION);
556 view.SetImageBasedLightScaleFactor(0.5f);
557 DALI_TEST_EQUALS(view.GetImageBasedLightScaleFactor(), 0.5f, TEST_LOCATION);
558 DALI_TEST_EQUALS(modelView1.GetImageBasedLightScaleFactor(), 1.0f, TEST_LOCATION);
562 int UtcDaliSceneViewUseFramebuffer01(void)
564 ToolkitTestApplication application;
566 Scene3D::SceneView view = Scene3D::SceneView::New();
567 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
569 application.GetScene().Add(view);
571 application.SendNotification();
572 application.Render();
574 bool useFramebuffer = view.IsUsingFramebuffer();
575 view.UseFramebuffer(true);
576 DALI_TEST_NOT_EQUALS(useFramebuffer, view.IsUsingFramebuffer(), 0.0f, TEST_LOCATION);
581 int UtcDaliSceneViewUseFramebuffer02(void)
583 ToolkitTestApplication application;
585 Scene3D::SceneView view = Scene3D::SceneView::New();
586 view.SetProperty(Dali::Actor::Property::SIZE, Vector2(100, 100));
588 application.GetScene().Add(view);
590 application.SendNotification();
591 application.Render();
593 RenderTask renderTask = application.GetScene().GetRenderTaskList().GetTask(1u);
594 DALI_TEST_CHECK(!renderTask.GetFrameBuffer());
596 view.UseFramebuffer(true);
597 DALI_TEST_CHECK(renderTask.GetFrameBuffer());
599 view.UseFramebuffer(false);
600 DALI_TEST_CHECK(!renderTask.GetFrameBuffer());
602 view.UseFramebuffer(true);
603 DALI_TEST_CHECK(renderTask.GetFrameBuffer());
611 static bool gOnRelayoutCallBackCalled = false;
612 void OnRelayoutCallback(Actor actor)
614 gOnRelayoutCallBackCalled = true;
617 static bool gResourceReadyCalled = false;
618 void OnResourceReady(Control control)
620 gResourceReadyCalled = true;
624 int UtcDaliSceneViewResourceReady(void)
626 ToolkitTestApplication application;
628 gOnRelayoutCallBackCalled = false;
629 gResourceReadyCalled = false;
630 Scene3D::SceneView view = Scene3D::SceneView::New();
631 view.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
632 view.OnRelayoutSignal().Connect(OnRelayoutCallback);
633 view.ResourceReadySignal().Connect(OnResourceReady);
634 // SceneView::IsResourceReady() returns true by default.
635 DALI_TEST_EQUALS(view.IsResourceReady(), true, TEST_LOCATION);
638 DALI_TEST_CHECK(!gOnRelayoutCallBackCalled);
639 DALI_TEST_CHECK(!gResourceReadyCalled);
641 application.GetScene().Add(view);
643 application.SendNotification();
644 application.Render();
646 DALI_TEST_EQUALS(gOnRelayoutCallBackCalled, true, TEST_LOCATION);
647 DALI_TEST_EQUALS(view.IsResourceReady(), true, TEST_LOCATION);
648 DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
650 gOnRelayoutCallBackCalled = false;
651 gResourceReadyCalled = false;
653 view.SetImageBasedLightSource(TEST_DIFFUSE_TEXTURE, TEST_SPECULAR_TEXTURE);
655 application.SendNotification();
656 application.Render();
658 DALI_TEST_EQUALS(gOnRelayoutCallBackCalled, false, TEST_LOCATION);
659 DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
664 int UtcDaliSceneViewSetSkybox(void)
666 ToolkitTestApplication application;
668 gResourceReadyCalled = false;
669 Scene3D::SceneView view = Scene3D::SceneView::New();
670 view.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
671 view.ResourceReadySignal().Connect(OnResourceReady);
672 // SceneView::IsResourceReady() returns true by default.
673 DALI_TEST_EQUALS(view.IsResourceReady(), true, TEST_LOCATION);
676 DALI_TEST_CHECK(!gResourceReadyCalled);
678 application.GetScene().Add(view);
680 application.SendNotification();
681 application.Render();
683 DALI_TEST_EQUALS(view.IsResourceReady(), true, TEST_LOCATION);
684 DALI_TEST_EQUALS(gResourceReadyCalled, false, TEST_LOCATION);
686 gResourceReadyCalled = false;
688 view.SetSkybox(TEST_SPECULAR_TEXTURE);
690 application.SendNotification();
691 application.Render();
693 DALI_TEST_EQUALS(gResourceReadyCalled, true, TEST_LOCATION);
698 int UtcDaliSceneViewSetSkyboxIntensity(void)
700 ToolkitTestApplication application;
702 Scene3D::SceneView view = Scene3D::SceneView::New();
703 view.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
705 float intensity = 0.5f;
706 DALI_TEST_EQUALS(view.GetSkyboxIntensity(), 1.0f, TEST_LOCATION);
708 view.SetSkyboxIntensity(intensity);
709 DALI_TEST_EQUALS(view.GetSkyboxIntensity(), intensity, TEST_LOCATION);
714 int UtcDaliSceneViewSetSkyboxOrientation(void)
716 ToolkitTestApplication application;
718 Scene3D::SceneView view = Scene3D::SceneView::New();
719 view.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f));
721 Dali::Quaternion orientation = Dali::Quaternion(Radian(0.5f), Vector3::YAXIS);
722 view.SetSkyboxOrientation(orientation);
723 DALI_TEST_EQUALS(view.GetSkyboxOrientation(), orientation, TEST_LOCATION);