From: seungho baek Date: Tue, 4 Apr 2023 08:19:51 +0000 (+0900) Subject: Fix skybox type auto issue X-Git-Tag: dali_2.2.21~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F62%2F290862%2F4;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Fix skybox type auto issue Change-Id: I5e59773428f598393d3b30070dbdeb1067f71448 Signed-off-by: seungho baek --- diff --git a/automated-tests/src/dali-scene3d-internal/CMakeLists.txt b/automated-tests/src/dali-scene3d-internal/CMakeLists.txt index a7a419e..06da0de 100755 --- a/automated-tests/src/dali-scene3d-internal/CMakeLists.txt +++ b/automated-tests/src/dali-scene3d-internal/CMakeLists.txt @@ -8,6 +8,7 @@ SET(CAPI_LIB "dali-scene3d") # List of test case sources (Only these get parsed for test cases) SET(TC_SOURCES utc-Dali-DliLoaderImpl.cpp + utc-Dali-EnvironmentMapTask.cpp utc-Dali-GlbLoaderImpl.cpp utc-Dali-Gltf2Asset.cpp utc-Dali-Gltf2LoaderImpl.cpp diff --git a/automated-tests/src/dali-scene3d-internal/utc-Dali-EnvironmentMapTask.cpp b/automated-tests/src/dali-scene3d-internal/utc-Dali-EnvironmentMapTask.cpp new file mode 100644 index 0000000..55b28d0 --- /dev/null +++ b/automated-tests/src/dali-scene3d-internal/utc-Dali-EnvironmentMapTask.cpp @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Enable debug log for test coverage +#define DEBUG_ENABLED 1 + +#include +#include +#include +#include + +using namespace Dali; +using namespace Dali::Scene3D::Internal; + +typedef IntrusivePtr EnvironmentMapLoadTaskPtr; + +bool called = false; +void LoadComplete() +{ + called = true; +} + +int UtcDaliEnvironmentMapTaskSuccess01(void) +{ + ToolkitTestApplication application; + EnvironmentMapLoadTaskPtr environmentMapLoadTask; + + auto path = TEST_RESOURCE_DIR "/forest_radiance.ktx"; + environmentMapLoadTask = new EnvironmentMapLoadTask(path, Dali::Scene3D::EnvironmentMapType::AUTO, Dali::MakeCallback(LoadComplete)); + Dali::AsyncTaskManager::Get().AddTask(environmentMapLoadTask); + + DALI_TEST_CHECK(!called); + application.SendNotification(); + application.Render(16); + + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION); + DALI_TEST_CHECK(called); + DALI_TEST_CHECK(environmentMapLoadTask->HasSucceeded()); + DALI_TEST_CHECK(environmentMapLoadTask->GetLoadedTexture()); + DALI_TEST_EQUALS(Dali::Scene3D::EnvironmentMapType::CUBEMAP, environmentMapLoadTask->GetEnvironmentMapType(), TEST_LOCATION); + + environmentMapLoadTask.Reset(); + END_TEST; +} diff --git a/dali-scene3d/internal/common/environment-map-load-task.cpp b/dali-scene3d/internal/common/environment-map-load-task.cpp index 6b5f5fb..8bc8239 100644 --- a/dali-scene3d/internal/common/environment-map-load-task.cpp +++ b/dali-scene3d/internal/common/environment-map-load-task.cpp @@ -30,10 +30,10 @@ namespace Internal EnvironmentMapLoadTask::EnvironmentMapLoadTask(const std::string& environmentMapUrl, Dali::Scene3D::EnvironmentMapType environmentMapType, CallbackBase* callback) : AsyncTask(callback), mEnvironmentMapUrl(environmentMapUrl), - mEnvironmentMapType(environmentMapType), mIsReady(true), mHasSucceeded(false) { + mEnvironmentMapData.SetEnvironmentMapType(environmentMapType); } EnvironmentMapLoadTask::~EnvironmentMapLoadTask() @@ -42,7 +42,6 @@ EnvironmentMapLoadTask::~EnvironmentMapLoadTask() void EnvironmentMapLoadTask::Process() { - mEnvironmentMapData.SetEnvironmentMapType(mEnvironmentMapType); mHasSucceeded = Scene3D::Loader::LoadEnvironmentMap(mEnvironmentMapUrl, mEnvironmentMapData); } @@ -66,6 +65,11 @@ uint32_t EnvironmentMapLoadTask::GetMipmapLevels() return (HasSucceeded()) ? mEnvironmentMapData.GetMipmapLevels() : 1u; } +Dali::Scene3D::EnvironmentMapType EnvironmentMapLoadTask::GetEnvironmentMapType() +{ + return mEnvironmentMapData.GetEnvironmentMapType(); +} + } // namespace Internal } // namespace Scene3D diff --git a/dali-scene3d/internal/common/environment-map-load-task.h b/dali-scene3d/internal/common/environment-map-load-task.h index 0bb134f..0517cbd 100644 --- a/dali-scene3d/internal/common/environment-map-load-task.h +++ b/dali-scene3d/internal/common/environment-map-load-task.h @@ -18,16 +18,16 @@ */ // EXTERNAL INCLUDES +#include #include #include -#include #include // INTERNAL INCLUDES -#include -#include #include #include +#include +#include namespace Dali { @@ -83,6 +83,12 @@ public: */ uint32_t GetMipmapLevels(); + /** + * Retrieves EnvironmentMap type of the loaded texture + * @return EnvironmentMap type of the loaded texture + */ + Dali::Scene3D::EnvironmentMapType GetEnvironmentMapType(); + private: // Undefined EnvironmentMapLoadTask(const EnvironmentMapLoadTask& task) = delete; @@ -93,7 +99,6 @@ private: private: std::string mEnvironmentMapUrl; Dali::Scene3D::Loader::EnvironmentMapData mEnvironmentMapData; - Dali::Scene3D::EnvironmentMapType mEnvironmentMapType{Dali::Scene3D::EnvironmentMapType::AUTO}; bool mIsReady; bool mHasSucceeded; 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 e2e6912..c606f8f 100644 --- a/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp +++ b/dali-scene3d/internal/controls/scene-view/scene-view-impl.cpp @@ -783,7 +783,7 @@ void SceneView::OnSkyboxLoadComplete() mSkyboxTexture = mSkyboxLoadTask->GetLoadedTexture(); Shader skyboxShader; - if(mSkyboxEnvironmentMapType == Scene3D::EnvironmentMapType::CUBEMAP) + if(mSkyboxLoadTask->GetEnvironmentMapType() == Scene3D::EnvironmentMapType::CUBEMAP) { skyboxShader = Shader::New(SHADER_SKYBOX_SHADER_VERT.data(), SHADER_SKYBOX_SHADER_FRAG.data()); } diff --git a/dali-scene3d/public-api/loader/environment-map-loader.cpp b/dali-scene3d/public-api/loader/environment-map-loader.cpp index bbfe829..43f3653 100644 --- a/dali-scene3d/public-api/loader/environment-map-loader.cpp +++ b/dali-scene3d/public-api/loader/environment-map-loader.cpp @@ -27,6 +27,8 @@ // INTERNAL INCLUDES #include +#include + namespace Dali { namespace @@ -207,7 +209,6 @@ bool LoadEnvironmentMap(const std::string& environmentMapUrl, EnvironmentMapData std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower); bool successed = (extension == KTX_EXTENSION) ? Dali::Scene3D::Loader::LoadKtxData(environmentMapUrl, environmentMapData) : LoadEnvironmentMapData(environmentMapUrl, environmentMapData); - return successed; }