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.
21 #include <dali/dali.h>
22 #include <dali-test-suite-utils.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 UtcDaliPixelHasAlpha(void)
48 TestApplication application;
50 tet_infoline("UtcDaliPixelHasAlpha");
52 TestPixelEnumSize( 26 );
54 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::L8) == false);
55 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB565) == false);
56 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB888) == false);
57 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB8888) == false);
58 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR8888) == false);
59 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR565) == false);
60 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
61 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
62 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
63 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
64 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
65 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
66 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
67 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
69 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::A8) == true);
70 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::LA88) == true);
71 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA5551) == true);
72 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA4444) == true);
73 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA8888) == true);
74 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA8888) == true);
75 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA5551) == true);
76 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA4444) == true);
77 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
78 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
79 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGBA8_ETC2_EAC ) == true );
80 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true );
84 int UtcDaliPixelGetBytesPerPixel(void)
86 TestApplication application;
88 tet_infoline("UtcDaliPixelGetBytesPerPixel");
90 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
91 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::A8) == 1);
93 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
94 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
95 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
96 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
97 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
98 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
99 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
101 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
103 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
104 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
105 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
106 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
108 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
112 int UtcDaliPixelGetAlphaOffsetAndMask(void)
114 TestApplication application;
116 tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
121 // Be sure that the number of cases tested below is correct:
122 TestPixelEnumSize( 26 );
124 Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
125 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
126 Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
127 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0xff);
128 Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
129 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
130 Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
131 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
132 Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
133 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
134 Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
135 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
136 Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
137 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0xff);
138 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
139 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
140 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
141 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
142 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
143 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
144 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
145 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
146 Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
147 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
148 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
149 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
150 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
151 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
153 // Compressed formats with no meaningful result:
154 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
155 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
156 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
157 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
158 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
159 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
160 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
161 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
162 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
163 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
164 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
165 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
166 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
167 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
168 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
169 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
170 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
171 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
172 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
173 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
174 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
175 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
176 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
177 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);