2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
23 #include <dali/public-api/dali-core.h>
24 #include <dali/public-api/images/pixel.h>
25 #include <dali-test-suite-utils.h>
30 static void Startup();
31 static void Cleanup();
34 void (*tet_startup)() = Startup;
35 void (*tet_cleanup)() = Cleanup;
38 static void UtcDaliPixelHasAlpha();
39 static void UtcDaliPixelGetBytesPerPixel();
40 static void UtcDaliPixelGetAlphaOffsetAndMask();
43 POSITIVE_TC_IDX = 0x01,
47 static const float ROTATION_EPSILON = 0.0001f;
49 // Add test functionality for all APIs in the class (Positive and Negative)
51 struct tet_testlist tet_testlist[] = {
52 { UtcDaliPixelHasAlpha, POSITIVE_TC_IDX },
53 { UtcDaliPixelGetBytesPerPixel, POSITIVE_TC_IDX },
54 { UtcDaliPixelGetAlphaOffsetAndMask, POSITIVE_TC_IDX },
59 // Called only once before first test is run.
64 // Called only once after last test is run
69 static void TestPixelEnumSize(const int size)
71 DALI_TEST_CHECK( (static_cast<int>( Pixel::LAST_VALID_PIXEL_FORMAT ) - static_cast<int>( Pixel::FIRST_VALID_PIXEL_FORMAT ) + 1 ) == size &&
72 "The Pixel::Format enum may have had new formats added. Expand the test cases to include them.");
75 static void UtcDaliPixelHasAlpha()
77 TestApplication application;
79 tet_infoline("UtcDaliPixelHasAlpha");
81 TestPixelEnumSize( 26 );
83 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::L8) == false);
84 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB565) == false);
85 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB888) == false);
86 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB8888) == false);
87 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR8888) == false);
88 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR565) == false);
89 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
90 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
91 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
92 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
93 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
94 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
95 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
96 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
98 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::A8) == true);
99 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::LA88) == true);
100 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA5551) == true);
101 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA4444) == true);
102 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA8888) == true);
103 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA8888) == true);
104 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA5551) == true);
105 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA4444) == true);
106 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
107 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
108 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGBA8_ETC2_EAC ) == true );
109 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true );
112 static void UtcDaliPixelGetBytesPerPixel()
114 TestApplication application;
116 tet_infoline("UtcDaliPixelGetBytesPerPixel");
118 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
119 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::A8) == 1);
121 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
122 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
123 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
124 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
125 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
126 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
127 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
129 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
131 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
132 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
133 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
134 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
136 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
139 static void UtcDaliPixelGetAlphaOffsetAndMask()
141 TestApplication application;
143 tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
148 // Be sure that the number of cases tested below is correct:
149 TestPixelEnumSize( 26 );
151 Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
152 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
153 Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
154 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
155 Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
156 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
157 Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
158 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
159 Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
160 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
161 Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
162 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
163 Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
164 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0xff);
165 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
166 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
167 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
168 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
169 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
170 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
171 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
172 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
173 Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
174 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
175 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
176 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
177 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
178 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
180 // Compressed formats with no meaningful result:
181 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
182 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
183 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
184 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
185 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
186 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
187 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
188 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
189 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
190 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
191 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
192 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
193 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
194 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
195 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
196 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
197 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
198 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
199 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
200 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
201 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
202 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
203 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
204 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);