Add CHROMINANCE pixel format
[platform/core/uifw/dali-core.git] / automated-tests / src / dali / utc-Dali-Pixel.cpp
1 /*
2  * Copyright (c) 2022 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 #include <dali-test-suite-utils.h>
19 #include <dali/public-api/dali-core.h>
20 #include <stdlib.h>
21
22 #include <algorithm>
23 #include <iostream>
24
25 using std::max;
26 using namespace Dali;
27
28 static const float ROTATION_EPSILON = 0.0001f;
29
30 void utc_dali_pixel_startup(void)
31 {
32   test_return_value = TET_UNDEF;
33 }
34
35 void utc_dali_pixel_cleanup(void)
36 {
37   test_return_value = TET_PASS;
38 }
39
40 static void TestPixelEnumSize(const int size)
41 {
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.");
44 }
45
46 int UtcDaliPixelHasAlpha(void)
47 {
48   TestApplication application;
49
50   tet_infoline("UtcDaliPixelHasAlpha");
51
52   TestPixelEnumSize(62);
53
54   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::INVALID) == false); // For completeness
55
56   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::L8) == false);
57   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB565) == false);
58   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB888) == false);
59   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB8888) == false);
60   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGR8888) == false);
61   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGR565) == false);
62   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
63   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
64   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
65   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
66   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
67   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
68   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
69   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
70
71   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::A8) == true);
72   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::LA88) == true);
73   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA5551) == true);
74   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA4444) == true);
75   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGBA8888) == true);
76   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA8888) == true);
77   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA5551) == true);
78   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::BGRA4444) == true);
79   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
80   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2) == true);
81   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA8_ETC2_EAC) == true);
82   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true);
83
84   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR) == true);
85   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR) == true);
86   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR) == true);
87   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR) == true);
88   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR) == true);
89   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR) == true);
90   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR) == true);
91   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR) == true);
92   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR) == true);
93   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR) == true);
94   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR) == true);
95   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR) == true);
96   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR) == true);
97   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR) == true);
98   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) == true);
99   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR) == true);
100   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR) == true);
101   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR) == true);
102   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR) == true);
103   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR) == true);
104   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR) == true);
105   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR) == true);
106   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR) == true);
107   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR) == true);
108   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR) == true);
109   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR) == true);
110   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR) == true);
111   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR) == true);
112
113   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB16F) == false);
114   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB32F) == false);
115
116   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_UNSIGNED_INT) == false);
117   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_FLOAT) == false);
118   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::DEPTH_STENCIL) == false);
119
120   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::R11G11B10F) == false);
121
122   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_U) == false);
123   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_V) == false);
124
125   END_TEST;
126 }
127
128 int UtcDaliPixelHasAlphaN(void)
129 {
130   DALI_TEST_EQUALS(Pixel::HasAlpha(Pixel::Format(123123123123)), false, TEST_LOCATION);
131   END_TEST;
132 }
133
134 int UtcDaliPixelGetBytesPerPixel(void)
135 {
136   TestApplication application;
137
138   tet_infoline("UtcDaliPixelGetBytesPerPixel");
139
140   // Be sure that the number of cases tested below is correct:
141   TestPixelEnumSize(62);
142
143   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::INVALID) == 0); // For completeness
144
145   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
146   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::A8) == 1);
147
148   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
149   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
150   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
151   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
152   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
153   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
154   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
155
156   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
157
158   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
159   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
160   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
161   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
162
163   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
164
165   // Compressed formats are marked as 0 bytes per pixel.
166   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_R11_EAC) == 0);
167   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SIGNED_R11_EAC) == 0);
168   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RG11_EAC) == 0);
169   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SIGNED_RG11_EAC) == 0);
170   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_ETC2) == 0);
171   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ETC2) == 0);
172   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_ETC1) == 0);
173   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == 0);
174   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2) == 0);
175   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2) == 0);
176   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA8_ETC2_EAC) == 0);
177   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == 0);
178   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR) == 0);
179   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR) == 0);
180   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR) == 0);
181   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR) == 0);
182   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR) == 0);
183   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR) == 0);
184   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR) == 0);
185   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR) == 0);
186   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR) == 0);
187   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR) == 0);
188   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR) == 0);
189   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR) == 0);
190   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR) == 0);
191   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR) == 0);
192   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR) == 0);
193   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR) == 0);
194   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR) == 0);
195   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR) == 0);
196   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR) == 0);
197   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR) == 0);
198   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR) == 0);
199   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR) == 0);
200   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR) == 0);
201   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR) == 0);
202   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR) == 0);
203   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR) == 0);
204   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR) == 0);
205   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR) == 0);
206
207   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB16F) == 6);
208   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB32F) == 12);
209
210   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_UNSIGNED_INT) == 4);
211   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_FLOAT) == 4);
212   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::DEPTH_STENCIL) == 4);
213   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::R11G11B10F) == 4);
214
215   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_U) == 1);
216   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_V) == 1);
217
218   END_TEST;
219 }
220
221 int UtcDaliPixelGetBytesPerPixelN(void)
222 {
223   DALI_TEST_EQUALS(Pixel::GetBytesPerPixel(Pixel::Format(123123123123)), 0u, TEST_LOCATION);
224   END_TEST;
225 }
226
227 int UtcDaliPixelGetAlphaOffsetAndMaskP(void)
228 {
229   TestApplication application;
230
231   tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
232
233   int byteOffset = 0;
234   int bitMask    = 0;
235
236   // Be sure that the number of cases tested below is correct:
237   TestPixelEnumSize(62);
238
239   Pixel::GetAlphaOffsetAndMask(Pixel::INVALID, byteOffset, bitMask); // For completeness
240   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
241
242   Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
243   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
244   Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
245   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0xff);
246   Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
247   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
248   Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
249   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
250   Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
251   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
252   Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
253   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
254   Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
255   DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0xff);
256   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
257   DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x0f);
258   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
259   DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x01);
260   Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
261   DALI_TEST_CHECK(byteOffset == 3 && bitMask == 0xff);
262   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
263   DALI_TEST_CHECK(byteOffset == 3 && bitMask == 0xff);
264   Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
265   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
266   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
267   DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x0f);
268   Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
269   DALI_TEST_CHECK(byteOffset == 1 && bitMask == 0x01);
270
271   // Compressed formats with no meaningful result:
272   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
273   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
274   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
275   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
276   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
277   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
278   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
279   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
280   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
281   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
282   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
283   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
284   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
285   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
286   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
287   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
288   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
289   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
290   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
291   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
292   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
293   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
294   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
295   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
296   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_4x4_KHR, byteOffset, bitMask);
297   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
298   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_5x4_KHR, byteOffset, bitMask);
299   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
300   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_5x5_KHR, byteOffset, bitMask);
301   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
302   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_6x5_KHR, byteOffset, bitMask);
303   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
304   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_6x6_KHR, byteOffset, bitMask);
305   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
306   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x5_KHR, byteOffset, bitMask);
307   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
308   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x6_KHR, byteOffset, bitMask);
309   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
310   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_8x8_KHR, byteOffset, bitMask);
311   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
312   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x5_KHR, byteOffset, bitMask);
313   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
314   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x6_KHR, byteOffset, bitMask);
315   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
316   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x8_KHR, byteOffset, bitMask);
317   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
318   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_10x10_KHR, byteOffset, bitMask);
319   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
320   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_12x10_KHR, byteOffset, bitMask);
321   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
322   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA_ASTC_12x12_KHR, byteOffset, bitMask);
323   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
324   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, byteOffset, bitMask);
325   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
326   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, byteOffset, bitMask);
327   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
328   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, byteOffset, bitMask);
329   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
330   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, byteOffset, bitMask);
331   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
332   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, byteOffset, bitMask);
333   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
334   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, byteOffset, bitMask);
335   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
336   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, byteOffset, bitMask);
337   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
338   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, byteOffset, bitMask);
339   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
340   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, byteOffset, bitMask);
341   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
342   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, byteOffset, bitMask);
343   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
344   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, byteOffset, bitMask);
345   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
346   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, byteOffset, bitMask);
347   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
348   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, byteOffset, bitMask);
349   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
350   Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, byteOffset, bitMask);
351   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
352
353   Pixel::GetAlphaOffsetAndMask(Pixel::RGB16F, byteOffset, bitMask);
354   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
355   Pixel::GetAlphaOffsetAndMask(Pixel::RGB32F, byteOffset, bitMask);
356   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
357
358   Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_UNSIGNED_INT, byteOffset, bitMask);
359   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
360   Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_FLOAT, byteOffset, bitMask);
361   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
362   Pixel::GetAlphaOffsetAndMask(Pixel::DEPTH_STENCIL, byteOffset, bitMask);
363   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
364   Pixel::GetAlphaOffsetAndMask(Pixel::R11G11B10F, byteOffset, bitMask);
365   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
366
367   Pixel::GetAlphaOffsetAndMask(Pixel::CHROMINANCE_U, byteOffset, bitMask);
368   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
369   Pixel::GetAlphaOffsetAndMask(Pixel::CHROMINANCE_V, byteOffset, bitMask);
370   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
371
372   END_TEST;
373 }
374
375 int UtcDaliPixelConvertGlFormat(void)
376 {
377   tet_infoline("UtcDaliPixelConvertGlFormat");
378
379   unsigned int pixelDataType, internalFormat;
380   Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_UNSIGNED_INT, pixelDataType, internalFormat);
381   DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_INT);
382   DALI_TEST_CHECK(internalFormat == GL_DEPTH_COMPONENT);
383
384   Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_FLOAT, pixelDataType, internalFormat);
385   DALI_TEST_CHECK(pixelDataType == GL_FLOAT);
386   DALI_TEST_CHECK(internalFormat == GL_DEPTH_COMPONENT);
387
388   Dali::Integration::ConvertToGlFormat(Pixel::Format::DEPTH_STENCIL, pixelDataType, internalFormat);
389   DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_INT_24_8);
390   DALI_TEST_CHECK(internalFormat == GL_DEPTH_STENCIL);
391
392   Dali::Integration::ConvertToGlFormat(Pixel::Format::R11G11B10F, pixelDataType, internalFormat);
393   DALI_TEST_CHECK(pixelDataType == GL_FLOAT);
394   DALI_TEST_CHECK(internalFormat == GL_R11F_G11F_B10F);
395
396   Dali::Integration::ConvertToGlFormat(Pixel::Format::CHROMINANCE_U, pixelDataType, internalFormat);
397   DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_BYTE);
398   DALI_TEST_CHECK(internalFormat == GL_LUMINANCE);
399
400   Dali::Integration::ConvertToGlFormat(Pixel::Format::CHROMINANCE_V, pixelDataType, internalFormat);
401   DALI_TEST_CHECK(pixelDataType == GL_UNSIGNED_BYTE);
402   DALI_TEST_CHECK(internalFormat == GL_LUMINANCE);
403
404   END_TEST;
405 }
406
407 int UtcDaliPixelGetAlphaOffsetAndMaskN(void)
408 {
409   int byteOffset = 200;
410   int bitMask    = 200;
411   Pixel::GetAlphaOffsetAndMask(Pixel::Format(123123123123), byteOffset, bitMask);
412   DALI_TEST_CHECK(byteOffset == 200);
413   DALI_TEST_CHECK(bitMask == 200);
414   END_TEST;
415 }