# 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
--- /dev/null
+/*
+ * 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 <toolkit-event-thread-callback.h>
+#include <dali-toolkit-test-suite-utils.h>
+#include <string_view>
+#include <dali-scene3d/internal/common/environment-map-load-task.h>
+
+using namespace Dali;
+using namespace Dali::Scene3D::Internal;
+
+typedef IntrusivePtr<EnvironmentMapLoadTask> 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;
+}
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()
void EnvironmentMapLoadTask::Process()
{
- mEnvironmentMapData.SetEnvironmentMapType(mEnvironmentMapType);
mHasSucceeded = Scene3D::Loader::LoadEnvironmentMap(mEnvironmentMapUrl, mEnvironmentMapData);
}
return (HasSucceeded()) ? mEnvironmentMapData.GetMipmapLevels() : 1u;
}
+Dali::Scene3D::EnvironmentMapType EnvironmentMapLoadTask::GetEnvironmentMapType()
+{
+ return mEnvironmentMapData.GetEnvironmentMapType();
+}
+
} // namespace Internal
} // namespace Scene3D
*/
// EXTERNAL INCLUDES
+#include <dali/public-api/adaptor-framework/async-task-manager.h>
#include <dali/public-api/common/intrusive-ptr.h>
#include <dali/public-api/images/pixel-data.h>
-#include <dali/public-api/adaptor-framework/async-task-manager.h>
#include <memory>
// INTERNAL INCLUDES
-#include <dali-scene3d/public-api/loader/load-result.h>
-#include <dali-scene3d/public-api/loader/scene-definition.h>
#include <dali-scene3d/public-api/common/environment-map.h>
#include <dali-scene3d/public-api/loader/environment-map-data.h>
+#include <dali-scene3d/public-api/loader/load-result.h>
+#include <dali-scene3d/public-api/loader/scene-definition.h>
namespace Dali
{
*/
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;
private:
std::string mEnvironmentMapUrl;
Dali::Scene3D::Loader::EnvironmentMapData mEnvironmentMapData;
- Dali::Scene3D::EnvironmentMapType mEnvironmentMapType{Dali::Scene3D::EnvironmentMapType::AUTO};
bool mIsReady;
bool mHasSucceeded;
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());
}
// INTERNAL INCLUDES
#include <dali-scene3d/public-api/loader/ktx-loader.h>
+#include <dali/integration-api/debug.h>
+
namespace Dali
{
namespace
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;
}