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 // 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-map-loader.h"
28 using namespace Dali::Scene3D::Loader;
30 int UtcDaliEnvironmentMapLoaderFailNonexistent(void)
32 EnvironmentMapData environmentMapData;
33 DALI_TEST_CHECK(!LoadEnvironmentMap("non-existent.jpg", environmentMapData));
37 int UtcDaliEnvironmentMapLoaderSuccess01(void)
39 EnvironmentMapData environmentMapData;
40 auto path = TEST_RESOURCE_DIR "/forest_radiance.ktx";
41 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
43 DALI_TEST_EQUAL(6u, environmentMapData.mPixelData.size());
44 for(auto& face : environmentMapData.mPixelData)
47 for(auto& mipData : face)
49 DALI_TEST_EQUAL(size, mipData.GetWidth());
50 DALI_TEST_EQUAL(size, mipData.GetHeight());
51 DALI_TEST_EQUAL(Pixel::Format::RGB888, mipData.GetPixelFormat());
59 int UtcDaliEnvironmentMapLoaderAutoType01(void)
61 EnvironmentMapData environmentMapData;
62 auto path = TEST_RESOURCE_DIR "/forest_diffuse_cubemap.png"; // cross horizontal
63 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
64 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
66 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::CUBEMAP);
67 DALI_TEST_EQUAL(6u, environmentMapData.mPixelData.size());
68 for(auto& face : environmentMapData.mPixelData)
71 DALI_TEST_EQUAL(size, face[0].GetWidth());
72 DALI_TEST_EQUAL(size, face[0].GetHeight());
73 DALI_TEST_EQUAL(Pixel::Format::RGBA8888, face[0].GetPixelFormat());
79 int UtcDaliEnvironmentMapLoaderAutoType02(void)
81 EnvironmentMapData environmentMapData;
82 auto path = TEST_RESOURCE_DIR "/forest_diffuse_cubemap_cross_vertical.png"; // cross vertical
83 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
84 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
86 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::CUBEMAP);
87 DALI_TEST_EQUAL(6u, environmentMapData.mPixelData.size());
88 for(auto& face : environmentMapData.mPixelData)
91 DALI_TEST_EQUAL(size, face[0].GetWidth());
92 DALI_TEST_EQUAL(size, face[0].GetHeight());
93 DALI_TEST_EQUAL(Pixel::Format::RGBA8888, face[0].GetPixelFormat());
99 int UtcDaliEnvironmentMapLoaderAutoType03(void)
101 EnvironmentMapData environmentMapData;
102 auto path = TEST_RESOURCE_DIR "/cubemap_array_horizontal.png"; // array horizontal
103 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
104 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
106 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::CUBEMAP);
107 DALI_TEST_EQUAL(6u, environmentMapData.mPixelData.size());
108 for(auto& face : environmentMapData.mPixelData)
111 DALI_TEST_EQUAL(size, face[0].GetWidth());
112 DALI_TEST_EQUAL(size, face[0].GetHeight());
113 DALI_TEST_EQUAL(Pixel::Format::RGB888, face[0].GetPixelFormat());
119 int UtcDaliEnvironmentMapLoaderAutoType04(void)
121 EnvironmentMapData environmentMapData;
122 auto path = TEST_RESOURCE_DIR "/cubemap_array_vertical.png"; // array horizontal
123 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
124 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
126 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::CUBEMAP);
127 DALI_TEST_EQUAL(6u, environmentMapData.mPixelData.size());
128 for(auto& face : environmentMapData.mPixelData)
131 DALI_TEST_EQUAL(size, face[0].GetWidth());
132 DALI_TEST_EQUAL(size, face[0].GetHeight());
133 DALI_TEST_EQUAL(Pixel::Format::RGB888, face[0].GetPixelFormat());
139 int UtcDaliEnvironmentMapLoaderAutoType05(void)
141 EnvironmentMapData environmentMapData;
142 auto path = TEST_RESOURCE_DIR "/equirectangular.png"; // no cube map
143 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
144 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
146 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::EQUIRECTANGULAR);
147 DALI_TEST_EQUAL(1u, environmentMapData.mPixelData.size());
148 for(auto& face : environmentMapData.mPixelData)
150 DALI_TEST_EQUAL(20, face[0].GetWidth());
151 DALI_TEST_EQUAL(10, face[0].GetHeight());
152 DALI_TEST_EQUAL(Pixel::Format::RGB888, face[0].GetPixelFormat());
158 int UtcDaliEnvironmentMapLoaderEquirectangularMapType01(void)
160 EnvironmentMapData environmentMapData;
161 auto path = TEST_RESOURCE_DIR "/forest_diffuse_cubemap.png"; // no cube map
162 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::AUTO);
163 environmentMapData.SetEnvironmentMapType(Scene3D::EnvironmentMapType::EQUIRECTANGULAR);
164 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
166 DALI_TEST_EQUAL(environmentMapData.GetEnvironmentMapType(), Scene3D::EnvironmentMapType::EQUIRECTANGULAR);
167 DALI_TEST_EQUAL(1u, environmentMapData.mPixelData.size());
168 for(auto& face : environmentMapData.mPixelData)
170 DALI_TEST_EQUAL(2048, face[0].GetWidth());
171 DALI_TEST_EQUAL(1536, face[0].GetHeight());
172 DALI_TEST_EQUAL(Pixel::Format::RGBA8888, face[0].GetPixelFormat());
178 int UtcDaliEnvironmentMapLoaderEnvironmentMapDataCreateTexture01(void)
180 EnvironmentMapData environmentMapData;
181 auto path = TEST_RESOURCE_DIR "/forest_radiance.ktx";
182 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
185 auto texture = environmentMapData.GetTexture();
187 DALI_TEST_CHECK(texture);
188 DALI_TEST_EQUAL(64u, texture.GetWidth());
189 DALI_TEST_EQUAL(64u, texture.GetHeight());
194 int UtcDaliEnvironmentMapLoaderEnvironmentMapDataCreateTexture02(void)
196 EnvironmentMapData environmentMapData;
197 auto path = TEST_RESOURCE_DIR "/forest_diffuse_cubemap.png";
198 DALI_TEST_CHECK(LoadEnvironmentMap(path, environmentMapData));
201 auto texture = environmentMapData.GetTexture();
203 DALI_TEST_CHECK(texture);
204 DALI_TEST_EQUAL(512u, texture.GetWidth());
205 DALI_TEST_EQUAL(512u, texture.GetHeight());