2 * Copyright (c) 2014 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.
22 #include <dali/public-api/dali-core.h>
23 #include <dali-test-suite-utils.h>
29 static const float ROTATION_EPSILON = 0.0001f;
31 void utc_dali_pixel_startup(void)
33 test_return_value = TET_UNDEF;
36 void utc_dali_pixel_cleanup(void)
38 test_return_value = TET_PASS;
41 static void TestPixelEnumSize(const int size)
43 DALI_TEST_CHECK( (static_cast<int>( Pixel::LAST_VALID_PIXEL_FORMAT ) - static_cast<int>( Pixel::FIRST_VALID_PIXEL_FORMAT ) + 1 ) == size &&
44 "The Pixel::Format enum may have had new formats added. Expand the test cases to include them.");
47 int UtcDaliPixelHasAlpha(void)
49 TestApplication application;
51 tet_infoline("UtcDaliPixelHasAlpha");
53 TestPixelEnumSize( 26 );
55 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::L8) == false);
56 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB565) == false);
57 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB888) == false);
58 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGB8888) == false);
59 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR8888) == false);
60 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGR565) == false);
61 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_R11_EAC) == false);
62 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_R11_EAC) == false);
63 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RG11_EAC) == false);
64 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SIGNED_RG11_EAC) == false);
65 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC2) == false);
66 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_SRGB8_ETC2) == false);
67 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB8_ETC1) == false);
68 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1) == false);
70 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::A8) == true);
71 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::LA88) == true);
72 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA5551) == true);
73 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA4444) == true);
74 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::RGBA8888) == true);
75 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA8888) == true);
76 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA5551) == true);
77 DALI_TEST_CHECK( Pixel::HasAlpha(Pixel::BGRA4444) == true);
78 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
79 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 ) == true );
80 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_RGBA8_ETC2_EAC ) == true );
81 DALI_TEST_CHECK( Pixel::HasAlpha( Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC) == true );
85 int UtcDaliPixelGetBytesPerPixel(void)
87 TestApplication application;
89 tet_infoline("UtcDaliPixelGetBytesPerPixel");
91 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
92 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::A8) == 1);
94 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::LA88) == 2);
95 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB565) == 2);
96 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA5551) == 2);
97 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA4444) == 2);
98 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR565) == 2);
99 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA5551) == 2);
100 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA4444) == 2);
102 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB888) == 3);
104 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGB8888) == 4);
105 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGR8888) == 4);
106 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::RGBA8888) == 4);
107 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::BGRA8888) == 4);
109 DALI_TEST_CHECK( Pixel::GetBytesPerPixel(Pixel::L8) == 1);
113 int UtcDaliPixelGetAlphaOffsetAndMask(void)
115 TestApplication application;
117 tet_infoline("UtcDaliPixelGetAlphaOffsetAndMask");
122 // Be sure that the number of cases tested below is correct:
123 TestPixelEnumSize( 26 );
125 Pixel::GetAlphaOffsetAndMask(Pixel::L8, byteOffset, bitMask);
126 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
127 Pixel::GetAlphaOffsetAndMask(Pixel::A8, byteOffset, bitMask);
128 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0xff);
129 Pixel::GetAlphaOffsetAndMask(Pixel::RGB888, byteOffset, bitMask);
130 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
131 Pixel::GetAlphaOffsetAndMask(Pixel::RGB565, byteOffset, bitMask);
132 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
133 Pixel::GetAlphaOffsetAndMask(Pixel::RGB8888, byteOffset, bitMask);
134 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
135 Pixel::GetAlphaOffsetAndMask(Pixel::BGR8888, byteOffset, bitMask);
136 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
137 Pixel::GetAlphaOffsetAndMask(Pixel::LA88, byteOffset, bitMask);
138 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0xff);
139 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA4444, byteOffset, bitMask);
140 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
141 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA5551, byteOffset, bitMask);
142 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
143 Pixel::GetAlphaOffsetAndMask(Pixel::RGBA8888, byteOffset, bitMask);
144 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
145 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA8888, byteOffset, bitMask);
146 DALI_TEST_CHECK( byteOffset == 3 && bitMask == 0xff);
147 Pixel::GetAlphaOffsetAndMask(Pixel::BGR565, byteOffset, bitMask);
148 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
149 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA4444, byteOffset, bitMask);
150 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x0f);
151 Pixel::GetAlphaOffsetAndMask(Pixel::BGRA5551, byteOffset, bitMask);
152 DALI_TEST_CHECK( byteOffset == 1 && bitMask == 0x01);
154 // Compressed formats with no meaningful result:
155 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_R11_EAC, byteOffset, bitMask);
156 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
157 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_R11_EAC, byteOffset, bitMask);
158 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
159 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RG11_EAC, byteOffset, bitMask);
160 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
161 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SIGNED_RG11_EAC, byteOffset, bitMask);
162 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
163 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC2, byteOffset, bitMask);
164 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
165 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ETC2, byteOffset, bitMask);
166 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
167 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_ETC1, byteOffset, bitMask);
168 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
169 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB_PVRTC_4BPPV1, byteOffset, bitMask);
170 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
171 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
172 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
173 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, byteOffset, bitMask);
174 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
175 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_RGBA8_ETC2_EAC, byteOffset, bitMask);
176 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);
177 Pixel::GetAlphaOffsetAndMask(Pixel::COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, byteOffset, bitMask);
178 DALI_TEST_CHECK( byteOffset == 0 && bitMask == 0);