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 #include <dali-test-suite-utils.h>
19 #include <dali/public-api/dali-core.h>
28 static const float ROTATION_EPSILON = 0.0001f;
30 void utc_dali_pixel_startup(void)
32 test_return_value = TET_UNDEF;
35 void utc_dali_pixel_cleanup(void)
37 test_return_value = TET_PASS;
40 static void TestPixelEnumSize(const int size)
42 DALI_TEST_CHECK((static_cast<int>(Pixel::LAST_VALID_PIXEL_FORMAT) - static_cast<int>(Pixel::FIRST_VALID_PIXEL_FORMAT) + 1) == size &&
43 "The Pixel::Format enum may have had new formats added. Expand the test cases to include them.");
46 int UtcDaliPixelIsCompressed(void)
48 TestApplication application;
50 tet_infoline("UtcDaliPixelIsCompressed");
52 TestPixelEnumSize(62);
54 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::INVALID) == false); // For completeness
56 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::L8) == false);
57 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB565) == false);
58 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB888) == false);
59 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB8888) == false);
60 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::BGR8888) == false);
61 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::BGR565) == false);
62 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_R11_EAC) == true);
63 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SIGNED_R11_EAC) == true);
64 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RG11_EAC) == true);
65 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SIGNED_RG11_EAC) == true);
66 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGB8_ETC2) == true);
67 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ETC2) == true);
68 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGB8_ETC1) == true);
69 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == true);
71 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::A8) == false);
72 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::LA88) == false);
73 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGBA5551) == false);
74 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGBA4444) == false);
75 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGBA8888) == false);
76 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::BGRA8888) == false);
77 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::BGRA5551) == false);
78 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::BGRA4444) == false);
79 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
80 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
81 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA8_ETC2_EAC) == true);
82 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true);
84 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR) == true);
85 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR) == true);
86 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR) == true);
87 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR) == true);
88 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR) == true);
89 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR) == true);
90 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR) == true);
91 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR) == true);
92 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR) == true);
93 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR) == true);
94 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR) == true);
95 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR) == true);
96 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR) == true);
97 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR) == true);
98 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) == true);
99 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR) == true);
100 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR) == true);
101 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR) == true);
102 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR) == true);
103 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR) == true);
104 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR) == true);
105 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR) == true);
106 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR) == true);
107 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR) == true);
108 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR) == true);
109 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR) == true);
110 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR) == true);
111 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR) == true);
113 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB16F) == false);
114 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB32F) == false);
116 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::DEPTH_UNSIGNED_INT) == false);
117 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::DEPTH_FLOAT) == false);
118 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::DEPTH_STENCIL) == false);
120 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::R11G11B10F) == false);
122 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::CHROMINANCE_U) == false);
123 DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::CHROMINANCE_V) == false);
128 int UtcDaliPixelIsCompressedN(void)
130 DALI_TEST_EQUALS(Pixel::IsCompressed(Pixel::Format(123123123123)), false, TEST_LOCATION);
134 int UtcDaliPixelHasAlpha(void)
136 TestApplication application;
138 tet_infoline("UtcDaliPixelHasAlpha");
140 TestPixelEnumSize(62);
142 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::INVALID) == false); // For completeness
144 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::L8) == false);
145 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB565) == false);
146 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB888) == false);
147 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB8888) == false);
148 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGR8888) == false);
149 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGR565) == false);
150 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
151 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
152 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
153 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
154 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
155 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
156 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
157 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
159 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::A8) == true);
160 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::LA88) == true);
161 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA5551) == true);
162 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA4444) == true);
163 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA8888) == true);
164 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA8888) == true);
165 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA5551) == true);
166 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA4444) == true);
167 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
168 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
169 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA8_ETC2_EAC) == true);
170 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true);
172 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR) == true);
173 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR) == true);
174 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR) == true);
175 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR) == true);
176 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR) == true);
177 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR) == true);
178 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR) == true);
179 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR) == true);
180 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR) == true);
181 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR) == true);
182 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR) == true);
183 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR) == true);
184 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR) == true);
185 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR) == true);
186 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) == true);
187 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR) == true);
188 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR) == true);
189 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR) == true);
190 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR) == true);
191 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR) == true);
192 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR) == true);
193 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR) == true);
194 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR) == true);
195 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR) == true);
196 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR) == true);
197 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR) == true);
198 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR) == true);
199 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR) == true);
201 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB16F) == false);
202 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB32F) == false);
204 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_UNSIGNED_INT) == false);
205 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_FLOAT) == false);
206 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_STENCIL) == false);
208 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::R11G11B10F) == false);
210 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_U) == false);
211 DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_V) == false);
216 int UtcDaliPixelHasAlphaN(void)
218 DALI_TEST_EQUALS(Pixel::HasAlpha(Pixel::Format(123123123123)), false, TEST_LOCATION);
222 int UtcDaliPixelGetBytesPerPixel(void)
224 TestApplication application;
226 tet_infoline("UtcDaliPixelGetBytesPerPixel");
228 // Be sure that the number of cases tested below is correct:
229 TestPixelEnumSize(62);
231 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::INVALID) == 0); // For completeness
233 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
234 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::A8) == 1);
236 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
237 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
238 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
239 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
240 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
241 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
242 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
244 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
246 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
247 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
248 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
249 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
251 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
253 // Compressed formats are marked as 0 bytes per pixel.
254 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_R11_EAC) == 0);
255 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SIGNED_R11_EAC) == 0);
256 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RG11_EAC) == 0);
257 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SIGNED_RG11_EAC) == 0);
258 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_ETC2) == 0);
259 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ETC2) == 0);
260 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_ETC1) == 0);
261 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == 0);
262 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2) == 0);
263 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2) == 0);
264 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA8_ETC2_EAC) == 0);
265 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == 0);
266 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR) == 0);
267 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR) == 0);
268 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR) == 0);
269 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR) == 0);
270 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR) == 0);
271 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR) == 0);
272 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR) == 0);
273 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR) == 0);
274 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR) == 0);
275 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR) == 0);
276 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR) == 0);
277 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR) == 0);
278 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR) == 0);
279 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR) == 0);
280 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) == 0);
281 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR) == 0);
282 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR) == 0);
283 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR) == 0);
284 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR) == 0);
285 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR) == 0);
286 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR) == 0);
287 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR) == 0);
288 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR) == 0);
289 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR) == 0);
290 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR) == 0);
291 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR) == 0);
292 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR) == 0);
293 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR) == 0);
295 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB16F) == 6);
296 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB32F) == 12);
298 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_UNSIGNED_INT) == 4);
299 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_FLOAT) == 4);
300 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_STENCIL) == 4);
301 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::R11G11B10F) == 4);
303 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_U) == 1);
304 DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_V) == 1);
309 int UtcDaliPixelGetBytesPerPixelN(void)
311 DALI_TEST_EQUALS(Pixel::GetBytesPerPixel(Pixel::Format(123123123123)), 0u, TEST_LOCATION);
315 int UtcDaliPixelGetAlphaOffsetAndMaskP(void)
317 TestApplication application;
319 tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
324 // Be sure that the number of cases tested below is correct:
325 TestPixelEnumSize(62);
327 Pixel::GetAlphaOffsetAndMask(Pixel::INVALID, byteOffset, bitMask); // For completeness
328 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
330 Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
331 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
332 Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
333 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0xff);
334 Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
335 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
336 Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
337 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
338 Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
339 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
340 Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
341 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
342 Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
343 DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0xff);
344 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
345 DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x0f);
346 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
347 DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x01);
348 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
349 DALI_TEST_CHECK(byteOffset == 3 && bitMask == 0xff);
350 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
351 DALI_TEST_CHECK(byteOffset == 3 && bitMask == 0xff);
352 Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
353 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
354 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
355 DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x0f);
356 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
357 DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x01);
359 // Compressed formats with no meaningful result:
360 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
361 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
362 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
363 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
364 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
365 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
366 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
367 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
368 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
369 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
370 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
371 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
372 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
373 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
374 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
375 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
376 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
377 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
378 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
379 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
380 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
381 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
382 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
383 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
384 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR, byteOffset, bitMask);
385 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
386 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR, byteOffset, bitMask);
387 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
388 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR, byteOffset, bitMask);
389 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
390 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR, byteOffset, bitMask);
391 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
392 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR, byteOffset, bitMask);
393 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
394 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR, byteOffset, bitMask);
395 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
396 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR, byteOffset, bitMask);
397 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
398 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR, byteOffset, bitMask);
399 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
400 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR, byteOffset, bitMask);
401 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
402 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR, byteOffset, bitMask);
403 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
404 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR, byteOffset, bitMask);
405 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
406 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR, byteOffset, bitMask);
407 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
408 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR, byteOffset, bitMask);
409 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
410 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR, byteOffset, bitMask);
411 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
412 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, byteOffset, bitMask);
413 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
414 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, byteOffset, bitMask);
415 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
416 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, byteOffset, bitMask);
417 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
418 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, byteOffset, bitMask);
419 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
420 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, byteOffset, bitMask);
421 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
422 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, byteOffset, bitMask);
423 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
424 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, byteOffset, bitMask);
425 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
426 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, byteOffset, bitMask);
427 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
428 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, byteOffset, bitMask);
429 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
430 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, byteOffset, bitMask);
431 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
432 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, byteOffset, bitMask);
433 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
434 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, byteOffset, bitMask);
435 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
436 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, byteOffset, bitMask);
437 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
438 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, byteOffset, bitMask);
439 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
441 Pixel::GetAlphaOffsetAndMask(Pixel::RGB16F, byteOffset, bitMask);
442 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
443 Pixel::GetAlphaOffsetAndMask(Pixel::RGB32F, byteOffset, bitMask);
444 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
446 Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_UNSIGNED_INT, byteOffset, bitMask);
447 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
448 Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_FLOAT, byteOffset, bitMask);
449 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
450 Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_STENCIL, byteOffset, bitMask);
451 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
452 Pixel::GetAlphaOffsetAndMask(Pixel::R11G11B10F, byteOffset, bitMask);
453 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
455 Pixel::GetAlphaOffsetAndMask(Pixel::CHROMINANCE_U, byteOffset, bitMask);
456 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
457 Pixel::GetAlphaOffsetAndMask(Pixel::CHROMINANCE_V, byteOffset, bitMask);
458 DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
463 int UtcDaliPixelConvertGlFormat(void)
465 tet_infoline("UtcDaliPixelConvertGlFormat");
467 unsigned int pixelDataType, internalFormat;
468 Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_UNSIGNED_INT, pixelDataType, internalFormat);
469 DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_INT);
470 DALI_TEST_CHECK(internalFormat == GL_DEPTH_COMPONENT);
472 Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_FLOAT, pixelDataType, internalFormat);
473 DALI_TEST_CHECK(pixelDataType == GL_FLOAT);
474 DALI_TEST_CHECK(internalFormat == GL_DEPTH_COMPONENT);
476 Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_STENCIL, pixelDataType, internalFormat);
477 DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_INT_24_8);
478 DALI_TEST_CHECK(internalFormat == GL_DEPTH_STENCIL);
480 Dali::Integration::ConvertToGlFormat(Pixel::Format::R11G11B10F, pixelDataType, internalFormat);
481 DALI_TEST_CHECK(pixelDataType == GL_FLOAT);
482 DALI_TEST_CHECK(internalFormat == GL_R11F_G11F_B10F);
484 Dali::Integration::ConvertToGlFormat(Pixel::Format::CHROMINANCE_U, pixelDataType, internalFormat);
485 DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_BYTE);
486 DALI_TEST_CHECK(internalFormat == GL_LUMINANCE);
488 Dali::Integration::ConvertToGlFormat(Pixel::Format::CHROMINANCE_V, pixelDataType, internalFormat);
489 DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_BYTE);
490 DALI_TEST_CHECK(internalFormat == GL_LUMINANCE);
495 int UtcDaliPixelGetAlphaOffsetAndMaskN(void)
497 int byteOffset = 200;
499 Pixel::GetAlphaOffsetAndMask(Pixel::Format(123123123123), byteOffset, bitMask);
500 DALI_TEST_CHECK(byteOffset == 200);
501 DALI_TEST_CHECK(bitMask == 200);