2 * Copyright (c) 2024 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 // Enable debug log for test coverage
19 #define DEBUG_ENABLED 1
21 #include <dali-test-suite-utils.h>
22 #include <string_view>
23 #include "dali-scene3d/public-api/loader/environment-definition.h"
26 using namespace Dali::Scene3D::Loader;
28 int UtcDaliEnvironmentDefinitionLoadRawDefault(void)
30 EnvironmentDefinition envDef;
31 auto rawData = envDef.LoadRaw("");
33 DALI_TEST_EQUAL(rawData.mDiffuse.mPixelData.size(), 6u);
34 for(auto& face : rawData.mDiffuse.mPixelData)
36 DALI_TEST_EQUAL(face.size(), 1u);
39 DALI_TEST_EQUAL(rawData.mSpecular.mPixelData.size(), 6u);
40 for(auto& face : rawData.mSpecular.mPixelData)
42 DALI_TEST_EQUAL(face.size(), 1u);
48 int UtcDaliEnvironmentDefinitionLoadRawFail(void)
50 for(auto name : {"nonexistent.ktx", TEST_RESOURCE_DIR "Cobe.obj", TEST_RESOURCE_DIR "truncated.ktx"})
52 EnvironmentDefinition envDef{name, name};
53 DALI_TEST_ASSERTION(envDef.LoadRaw(""), "Failed to load cubemap texture");
55 envDef.mDiffuseMapPath = "";
56 DALI_TEST_ASSERTION(envDef.LoadRaw(""), "Failed to load cubemap texture"); // specular map still invalid
62 int UtcDaliEnvironmentDefinitionLoadRawSuccess(void)
64 EnvironmentDefinition envDef{"forest_irradiance.ktx", "forest_radiance.ktx"};
65 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
67 DALI_TEST_EQUAL(rawData.mDiffuse.mPixelData.size(), 6u);
68 for(auto& face : rawData.mDiffuse.mPixelData)
70 DALI_TEST_EQUAL(face.size(), 1u);
72 for(auto& mipLevel : face)
74 DALI_TEST_EQUAL(mipLevel.GetPixelFormat(), Pixel::Format::RGB888);
75 DALI_TEST_EQUAL(mipLevel.GetWidth(), size);
76 DALI_TEST_EQUAL(mipLevel.GetHeight(), size);
81 DALI_TEST_EQUAL(rawData.mSpecular.mPixelData.size(), 6u);
82 for(auto& face : rawData.mSpecular.mPixelData)
84 DALI_TEST_EQUAL(face.size(), 5u);
86 for(auto& mipLevel : face)
88 DALI_TEST_EQUAL(mipLevel.GetPixelFormat(), Pixel::Format::RGB888);
89 DALI_TEST_EQUAL(mipLevel.GetWidth(), size);
90 DALI_TEST_EQUAL(mipLevel.GetHeight(), size);
98 int UtcDaliEnvironmentDefinitionLoadEmptyRaw(void)
100 EnvironmentDefinition::RawData rawData;
101 EnvironmentDefinition envDef;
102 auto textures = envDef.Load(std::move(rawData));
103 DALI_TEST_CHECK(!textures.mDiffuse);
104 DALI_TEST_CHECK(!textures.mSpecular);
111 void CheckTextureDefault(Texture texture)
113 DALI_TEST_CHECK(texture);
114 DALI_TEST_EQUAL(texture.GetWidth(), 1u);
115 DALI_TEST_EQUAL(texture.GetHeight(), 1u);
118 void CheckTextureNotDefault(Texture texture)
120 DALI_TEST_CHECK(texture);
121 DALI_TEST_CHECK(texture.GetWidth() > 1u);
122 DALI_TEST_CHECK(texture.GetHeight() > 1u);
127 int UtcDaliEnvironmentDefinitionLoadDefault(void)
129 EnvironmentDefinition envDef{};
130 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
134 auto textures = envDef.Load(std::move(rawData));
136 CheckTextureDefault(textures.mSpecular);
137 CheckTextureDefault(textures.mDiffuse);
142 int UtcDaliEnvironmentDefinitionLoadDiffuse(void)
144 EnvironmentDefinition envDef{"forest_irradiance.ktx"};
145 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
149 auto textures = envDef.Load(std::move(rawData));
151 CheckTextureNotDefault(textures.mDiffuse);
152 CheckTextureDefault(textures.mSpecular);
157 int UtcDaliEnvironmentDefinitionLoadSpecular(void)
159 EnvironmentDefinition envDef{"", "forest_radiance.ktx"};
160 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
164 auto textures = envDef.Load(std::move(rawData));
166 CheckTextureDefault(textures.mDiffuse);
167 CheckTextureNotDefault(textures.mSpecular);
172 int UtcDaliEnvironmentDefinitionLoadBoth(void)
174 EnvironmentDefinition envDef{"forest_irradiance.ktx", "forest_radiance.ktx"};
175 auto rawData = envDef.LoadRaw(TEST_RESOURCE_DIR "/");
179 auto textures = envDef.Load(std::move(rawData));
181 CheckTextureNotDefault(textures.mDiffuse);
182 CheckTextureNotDefault(textures.mSpecular);