From: jmm Date: Thu, 22 Jun 2023 11:13:28 +0000 (+0900) Subject: [Tizen] Detach skybox on setting an empty url X-Git-Tag: accepted/tizen/7.0/unified/20230825.185054~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7d17352c2478fd61d87f58e242f4f1b8dbba1ee7;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git [Tizen] Detach skybox on setting an empty url Change-Id: I8cfc89b802fe625046e98a97e15551de9285ff82 --- diff --git a/automated-tests/src/dali-scene3d/utc-Dali-SceneView.cpp b/automated-tests/src/dali-scene3d/utc-Dali-SceneView.cpp index caaca31000..53e7725c77 100644 --- a/automated-tests/src/dali-scene3d/utc-Dali-SceneView.cpp +++ b/automated-tests/src/dali-scene3d/utc-Dali-SceneView.cpp @@ -882,6 +882,38 @@ int UtcDaliSceneViewSetSkyboxEmpty(void) END_TEST; } +int UtcDaliSceneViewSetSkyboxEmpty2(void) +{ + ToolkitTestApplication application; + + gResourceReadyCalled = false; + Scene3D::SceneView view = Scene3D::SceneView::New(); + view.SetProperty(Actor::Property::SIZE, Vector2(100.0f, 100.0f)); + view.ResourceReadySignal().Connect(OnResourceReady); + application.GetScene().Add(view); + + application.SendNotification(); + application.Render(); + + view.SetSkybox(TEST_EQUIRECTANGULAR_TEXTURE); + + application.SendNotification(); + application.Render(); + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + application.SendNotification(); + application.Render(); + + uint32_t childCount = view.GetChildAt(0u).GetChildCount(); + + view.SetSkybox(""); + DALI_TEST_EQUALS(view.GetChildAt(0u).GetChildCount(), childCount - 1, TEST_LOCATION); + + view.Unparent(); + view.Reset(); + + END_TEST; +} + int UtcDaliSceneViewSetSkyboxEquirectangularEmpty(void) { ToolkitTestApplication application; diff --git a/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp b/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp index 6f8e80006a..0a1e5b09bb 100644 --- a/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp +++ b/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp @@ -821,6 +821,14 @@ void SceneView::UpdateSkybox(const std::string& skyboxUrl, Scene3D::EnvironmentM Dali::AsyncTaskManager::Get().RemoveTask(mSkyboxLoadTask); mSkyboxLoadTask.Reset(); } + + if(mSkybox) + { + mSkybox.Unparent(); + mSkybox.Reset(); + mSkyboxTexture.Reset(); + } + mSkyboxDirty = false; mSkyboxResourceReady = true; }