Revert "[Tizen] Appendix log for ttrace + Print keycode and timestamp"
[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 UtcDaliPixelIsCompressed(void)
47 {
48   TestApplication application;
49
50   tet_infoline("UtcDaliPixelIsCompressed");
51
52   TestPixelEnumSize(62);
53
54   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::INVALID) == false); // For completeness
55
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);
70
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);
83
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);
112
113   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB16F) == false);
114   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::RGB32F) == false);
115
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);
119
120   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::R11G11B10F) == false);
121
122   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::CHROMINANCE_U) == false);
123   DALI_TEST_CHECK(Pixel::IsCompressed(Pixel::CHROMINANCE_V) == false);
124
125   END_TEST;
126 }
127
128 int UtcDaliPixelIsCompressedN(void)
129 {
130   DALI_TEST_EQUALS(Pixel::IsCompressed(Pixel::Format(123123123123)), false, TEST_LOCATION);
131   END_TEST;
132 }
133
134 int UtcDaliPixelHasAlpha(void)
135 {
136   TestApplication application;
137
138   tet_infoline("UtcDaliPixelHasAlpha");
139
140   TestPixelEnumSize(62);
141
142   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::INVALID) == false); // For completeness
143
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);
158
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);
171
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);
200
201   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB16F) == false);
202   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::RGB32F) == false);
203
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);
207
208   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::R11G11B10F) == false);
209
210   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_U) == false);
211   DALI_TEST_CHECK(Pixel::HasAlpha(Pixel::CHROMINANCE_V) == false);
212
213   END_TEST;
214 }
215
216 int UtcDaliPixelHasAlphaN(void)
217 {
218   DALI_TEST_EQUALS(Pixel::HasAlpha(Pixel::Format(123123123123)), false, TEST_LOCATION);
219   END_TEST;
220 }
221
222 int UtcDaliPixelGetBytesPerPixel(void)
223 {
224   TestApplication application;
225
226   tet_infoline("UtcDaliPixelGetBytesPerPixel");
227
228   // Be sure that the number of cases tested below is correct:
229   TestPixelEnumSize(62);
230
231   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::INVALID) == 0); // For completeness
232
233   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
234   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::A8) == 1);
235
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);
243
244   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
245
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);
250
251   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::L8) == 1);
252
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);
294
295   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB16F) == 6);
296   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::RGB32F) == 12);
297
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);
302
303   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_U) == 1);
304   DALI_TEST_CHECK(Pixel::GetBytesPerPixel(Pixel::CHROMINANCE_V) == 1);
305
306   END_TEST;
307 }
308
309 int UtcDaliPixelGetBytesPerPixelN(void)
310 {
311   DALI_TEST_EQUALS(Pixel::GetBytesPerPixel(Pixel::Format(123123123123)), 0u, TEST_LOCATION);
312   END_TEST;
313 }
314
315 int UtcDaliPixelGetAlphaOffsetAndMaskP(void)
316 {
317   TestApplication application;
318
319   tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
320
321   int byteOffset = 0;
322   int bitMask    = 0;
323
324   // Be sure that the number of cases tested below is correct:
325   TestPixelEnumSize(62);
326
327   Pixel::GetAlphaOffsetAndMask(Pixel::INVALID, byteOffset, bitMask); // For completeness
328   DALI_TEST_CHECK(byteOffset == 0 && bitMask == 0);
329
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);
358
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);
440
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);
445
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);
454
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);
459
460   END_TEST;
461 }
462
463 int UtcDaliPixelConvertGlFormat(void)
464 {
465   tet_infoline("UtcDaliPixelConvertGlFormat");
466
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);
471
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);
475
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);
479
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);
483
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);
487
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);
491
492   END_TEST;
493 }
494
495 int UtcDaliPixelGetAlphaOffsetAndMaskN(void)
496 {
497   int byteOffset = 200;
498   int bitMask    = 200;
499   Pixel::GetAlphaOffsetAndMask(Pixel::Format(123123123123), byteOffset, bitMask);
500   DALI_TEST_CHECK(byteOffset == 200);
501   DALI_TEST_CHECK(bitMask == 200);
502   END_TEST;
503 }