1*8975f5c5SAndroid Build Coastguard Worker //
2*8975f5c5SAndroid Build Coastguard Worker // Copyright 2015 The ANGLE Project Authors. All rights reserved.
3*8975f5c5SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
4*8975f5c5SAndroid Build Coastguard Worker // found in the LICENSE file.
5*8975f5c5SAndroid Build Coastguard Worker //
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker #include "test_utils/ANGLETest.h"
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard Worker using namespace angle;
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker namespace
12*8975f5c5SAndroid Build Coastguard Worker {
13*8975f5c5SAndroid Build Coastguard Worker
14*8975f5c5SAndroid Build Coastguard Worker class UnpackAlignmentTest : public ANGLETest<>
15*8975f5c5SAndroid Build Coastguard Worker {
16*8975f5c5SAndroid Build Coastguard Worker protected:
UnpackAlignmentTest()17*8975f5c5SAndroid Build Coastguard Worker UnpackAlignmentTest()
18*8975f5c5SAndroid Build Coastguard Worker {
19*8975f5c5SAndroid Build Coastguard Worker setWindowWidth(128);
20*8975f5c5SAndroid Build Coastguard Worker setWindowHeight(128);
21*8975f5c5SAndroid Build Coastguard Worker setConfigRedBits(8);
22*8975f5c5SAndroid Build Coastguard Worker setConfigGreenBits(8);
23*8975f5c5SAndroid Build Coastguard Worker setConfigBlueBits(8);
24*8975f5c5SAndroid Build Coastguard Worker setConfigAlphaBits(8);
25*8975f5c5SAndroid Build Coastguard Worker setConfigDepthBits(24);
26*8975f5c5SAndroid Build Coastguard Worker
27*8975f5c5SAndroid Build Coastguard Worker mProgram = 0;
28*8975f5c5SAndroid Build Coastguard Worker }
29*8975f5c5SAndroid Build Coastguard Worker
testSetUp()30*8975f5c5SAndroid Build Coastguard Worker void testSetUp() override
31*8975f5c5SAndroid Build Coastguard Worker {
32*8975f5c5SAndroid Build Coastguard Worker constexpr char kFS[] = R"(uniform sampler2D tex;
33*8975f5c5SAndroid Build Coastguard Worker void main()
34*8975f5c5SAndroid Build Coastguard Worker {
35*8975f5c5SAndroid Build Coastguard Worker gl_FragColor = texture2D(tex, vec2(0.0, 1.0));
36*8975f5c5SAndroid Build Coastguard Worker })";
37*8975f5c5SAndroid Build Coastguard Worker
38*8975f5c5SAndroid Build Coastguard Worker mProgram = CompileProgram(essl1_shaders::vs::Simple(), kFS);
39*8975f5c5SAndroid Build Coastguard Worker if (mProgram == 0)
40*8975f5c5SAndroid Build Coastguard Worker {
41*8975f5c5SAndroid Build Coastguard Worker FAIL() << "shader compilation failed.";
42*8975f5c5SAndroid Build Coastguard Worker }
43*8975f5c5SAndroid Build Coastguard Worker }
44*8975f5c5SAndroid Build Coastguard Worker
testTearDown()45*8975f5c5SAndroid Build Coastguard Worker void testTearDown() override { glDeleteProgram(mProgram); }
46*8975f5c5SAndroid Build Coastguard Worker
getPixelSize(GLenum format,GLenum type,unsigned int * size)47*8975f5c5SAndroid Build Coastguard Worker void getPixelSize(GLenum format, GLenum type, unsigned int *size)
48*8975f5c5SAndroid Build Coastguard Worker {
49*8975f5c5SAndroid Build Coastguard Worker switch (type)
50*8975f5c5SAndroid Build Coastguard Worker {
51*8975f5c5SAndroid Build Coastguard Worker case GL_UNSIGNED_SHORT_5_5_5_1:
52*8975f5c5SAndroid Build Coastguard Worker case GL_UNSIGNED_SHORT_5_6_5:
53*8975f5c5SAndroid Build Coastguard Worker case GL_UNSIGNED_SHORT_4_4_4_4:
54*8975f5c5SAndroid Build Coastguard Worker *size = sizeof(GLushort);
55*8975f5c5SAndroid Build Coastguard Worker break;
56*8975f5c5SAndroid Build Coastguard Worker
57*8975f5c5SAndroid Build Coastguard Worker case GL_UNSIGNED_BYTE:
58*8975f5c5SAndroid Build Coastguard Worker {
59*8975f5c5SAndroid Build Coastguard Worker unsigned int compCount = 0;
60*8975f5c5SAndroid Build Coastguard Worker switch (format)
61*8975f5c5SAndroid Build Coastguard Worker {
62*8975f5c5SAndroid Build Coastguard Worker case GL_RGBA:
63*8975f5c5SAndroid Build Coastguard Worker compCount = 4;
64*8975f5c5SAndroid Build Coastguard Worker break;
65*8975f5c5SAndroid Build Coastguard Worker case GL_RGB:
66*8975f5c5SAndroid Build Coastguard Worker compCount = 3;
67*8975f5c5SAndroid Build Coastguard Worker break;
68*8975f5c5SAndroid Build Coastguard Worker case GL_LUMINANCE_ALPHA:
69*8975f5c5SAndroid Build Coastguard Worker compCount = 2;
70*8975f5c5SAndroid Build Coastguard Worker break;
71*8975f5c5SAndroid Build Coastguard Worker case GL_LUMINANCE:
72*8975f5c5SAndroid Build Coastguard Worker compCount = 1;
73*8975f5c5SAndroid Build Coastguard Worker break;
74*8975f5c5SAndroid Build Coastguard Worker case GL_ALPHA:
75*8975f5c5SAndroid Build Coastguard Worker compCount = 1;
76*8975f5c5SAndroid Build Coastguard Worker break;
77*8975f5c5SAndroid Build Coastguard Worker default:
78*8975f5c5SAndroid Build Coastguard Worker FAIL() << "unknown pixel format.";
79*8975f5c5SAndroid Build Coastguard Worker }
80*8975f5c5SAndroid Build Coastguard Worker *size = sizeof(GLubyte) * compCount;
81*8975f5c5SAndroid Build Coastguard Worker }
82*8975f5c5SAndroid Build Coastguard Worker break;
83*8975f5c5SAndroid Build Coastguard Worker default:
84*8975f5c5SAndroid Build Coastguard Worker FAIL() << "unknown pixel type.";
85*8975f5c5SAndroid Build Coastguard Worker }
86*8975f5c5SAndroid Build Coastguard Worker }
87*8975f5c5SAndroid Build Coastguard Worker
formatHasRGB(GLenum format)88*8975f5c5SAndroid Build Coastguard Worker bool formatHasRGB(GLenum format) { return (format != GL_ALPHA); }
89*8975f5c5SAndroid Build Coastguard Worker
testAlignment(int alignment,unsigned int offset,GLenum format,GLenum type)90*8975f5c5SAndroid Build Coastguard Worker void testAlignment(int alignment, unsigned int offset, GLenum format, GLenum type)
91*8975f5c5SAndroid Build Coastguard Worker {
92*8975f5c5SAndroid Build Coastguard Worker static const unsigned int width = 7;
93*8975f5c5SAndroid Build Coastguard Worker static const unsigned int height = 2;
94*8975f5c5SAndroid Build Coastguard Worker
95*8975f5c5SAndroid Build Coastguard Worker glPixelStorei(GL_UNPACK_ALIGNMENT, alignment);
96*8975f5c5SAndroid Build Coastguard Worker
97*8975f5c5SAndroid Build Coastguard Worker GLint readbackAlignment;
98*8975f5c5SAndroid Build Coastguard Worker glGetIntegerv(GL_UNPACK_ALIGNMENT, &readbackAlignment);
99*8975f5c5SAndroid Build Coastguard Worker EXPECT_EQ(alignment, readbackAlignment);
100*8975f5c5SAndroid Build Coastguard Worker
101*8975f5c5SAndroid Build Coastguard Worker GLubyte buf[1024];
102*8975f5c5SAndroid Build Coastguard Worker memset(buf, 0, sizeof(buf));
103*8975f5c5SAndroid Build Coastguard Worker
104*8975f5c5SAndroid Build Coastguard Worker unsigned int pixelSize;
105*8975f5c5SAndroid Build Coastguard Worker getPixelSize(format, type, &pixelSize);
106*8975f5c5SAndroid Build Coastguard Worker for (unsigned int i = 0; i < pixelSize; i++)
107*8975f5c5SAndroid Build Coastguard Worker {
108*8975f5c5SAndroid Build Coastguard Worker buf[offset + i] = 0xFF;
109*8975f5c5SAndroid Build Coastguard Worker }
110*8975f5c5SAndroid Build Coastguard Worker
111*8975f5c5SAndroid Build Coastguard Worker GLuint tex;
112*8975f5c5SAndroid Build Coastguard Worker glGenTextures(1, &tex);
113*8975f5c5SAndroid Build Coastguard Worker glBindTexture(GL_TEXTURE_2D, tex);
114*8975f5c5SAndroid Build Coastguard Worker
115*8975f5c5SAndroid Build Coastguard Worker glTexImage2D(GL_TEXTURE_2D, 0, format, width, height, 0, format, type, &buf[0]);
116*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
117*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
118*8975f5c5SAndroid Build Coastguard Worker glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
119*8975f5c5SAndroid Build Coastguard Worker
120*8975f5c5SAndroid Build Coastguard Worker drawQuad(mProgram, essl1_shaders::PositionAttrib(), 0.5f);
121*8975f5c5SAndroid Build Coastguard Worker
122*8975f5c5SAndroid Build Coastguard Worker GLubyte expectedRGB = formatHasRGB(format) ? 255 : 0;
123*8975f5c5SAndroid Build Coastguard Worker EXPECT_PIXEL_EQ(0, 0, expectedRGB, expectedRGB, expectedRGB, 255);
124*8975f5c5SAndroid Build Coastguard Worker
125*8975f5c5SAndroid Build Coastguard Worker glDeleteTextures(1, &tex);
126*8975f5c5SAndroid Build Coastguard Worker }
127*8975f5c5SAndroid Build Coastguard Worker
128*8975f5c5SAndroid Build Coastguard Worker GLuint mProgram;
129*8975f5c5SAndroid Build Coastguard Worker };
130*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,DefaultAlignment)131*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, DefaultAlignment)
132*8975f5c5SAndroid Build Coastguard Worker {
133*8975f5c5SAndroid Build Coastguard Worker GLint defaultAlignment;
134*8975f5c5SAndroid Build Coastguard Worker glGetIntegerv(GL_UNPACK_ALIGNMENT, &defaultAlignment);
135*8975f5c5SAndroid Build Coastguard Worker EXPECT_EQ(defaultAlignment, 4);
136*8975f5c5SAndroid Build Coastguard Worker }
137*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1RGBAUByte)138*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1RGBAUByte)
139*8975f5c5SAndroid Build Coastguard Worker {
140*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
141*8975f5c5SAndroid Build Coastguard Worker }
142*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1RGBUByte)143*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1RGBUByte)
144*8975f5c5SAndroid Build Coastguard Worker {
145*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 3, GL_RGB, GL_UNSIGNED_BYTE);
146*8975f5c5SAndroid Build Coastguard Worker }
147*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1RGBAUShort4444)148*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort4444)
149*8975f5c5SAndroid Build Coastguard Worker {
150*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
151*8975f5c5SAndroid Build Coastguard Worker }
152*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1RGBAUShort5551)153*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort5551)
154*8975f5c5SAndroid Build Coastguard Worker {
155*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
156*8975f5c5SAndroid Build Coastguard Worker }
157*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1RGBAUShort565)158*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1RGBAUShort565)
159*8975f5c5SAndroid Build Coastguard Worker {
160*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
161*8975f5c5SAndroid Build Coastguard Worker }
162*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1LAUByte)163*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1LAUByte)
164*8975f5c5SAndroid Build Coastguard Worker {
165*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7 * 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
166*8975f5c5SAndroid Build Coastguard Worker }
167*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1LUByte)168*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1LUByte)
169*8975f5c5SAndroid Build Coastguard Worker {
170*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7, GL_LUMINANCE, GL_UNSIGNED_BYTE);
171*8975f5c5SAndroid Build Coastguard Worker }
172*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment1AUByte)173*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment1AUByte)
174*8975f5c5SAndroid Build Coastguard Worker {
175*8975f5c5SAndroid Build Coastguard Worker testAlignment(1, 7, GL_ALPHA, GL_UNSIGNED_BYTE);
176*8975f5c5SAndroid Build Coastguard Worker }
177*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2RGBAUByte)178*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2RGBAUByte)
179*8975f5c5SAndroid Build Coastguard Worker {
180*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
181*8975f5c5SAndroid Build Coastguard Worker }
182*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2RGBUByte)183*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2RGBUByte)
184*8975f5c5SAndroid Build Coastguard Worker {
185*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 3 + 1, GL_RGB, GL_UNSIGNED_BYTE);
186*8975f5c5SAndroid Build Coastguard Worker }
187*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2RGBAUShort4444)188*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort4444)
189*8975f5c5SAndroid Build Coastguard Worker {
190*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
191*8975f5c5SAndroid Build Coastguard Worker }
192*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2RGBAUShort5551)193*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort5551)
194*8975f5c5SAndroid Build Coastguard Worker {
195*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
196*8975f5c5SAndroid Build Coastguard Worker }
197*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2RGBAUShort565)198*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2RGBAUShort565)
199*8975f5c5SAndroid Build Coastguard Worker {
200*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
201*8975f5c5SAndroid Build Coastguard Worker }
202*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2LAUByte)203*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2LAUByte)
204*8975f5c5SAndroid Build Coastguard Worker {
205*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 * 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
206*8975f5c5SAndroid Build Coastguard Worker }
207*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2LAByte)208*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2LAByte)
209*8975f5c5SAndroid Build Coastguard Worker {
210*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
211*8975f5c5SAndroid Build Coastguard Worker }
212*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment2AUByte)213*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment2AUByte)
214*8975f5c5SAndroid Build Coastguard Worker {
215*8975f5c5SAndroid Build Coastguard Worker testAlignment(2, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
216*8975f5c5SAndroid Build Coastguard Worker }
217*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4RGBAUByte)218*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4RGBAUByte)
219*8975f5c5SAndroid Build Coastguard Worker {
220*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 4, GL_RGBA, GL_UNSIGNED_BYTE);
221*8975f5c5SAndroid Build Coastguard Worker }
222*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4RGBUByte)223*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4RGBUByte)
224*8975f5c5SAndroid Build Coastguard Worker {
225*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 3 + 3, GL_RGB, GL_UNSIGNED_BYTE);
226*8975f5c5SAndroid Build Coastguard Worker }
227*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4RGBAUShort4444)228*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort4444)
229*8975f5c5SAndroid Build Coastguard Worker {
230*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
231*8975f5c5SAndroid Build Coastguard Worker }
232*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4RGBAUShort5551)233*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort5551)
234*8975f5c5SAndroid Build Coastguard Worker {
235*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
236*8975f5c5SAndroid Build Coastguard Worker }
237*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4RGBAUShort565)238*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4RGBAUShort565)
239*8975f5c5SAndroid Build Coastguard Worker {
240*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 2 + 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
241*8975f5c5SAndroid Build Coastguard Worker }
242*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4LAUByte)243*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4LAUByte)
244*8975f5c5SAndroid Build Coastguard Worker {
245*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 * 2 + 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
246*8975f5c5SAndroid Build Coastguard Worker }
247*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4LUByte)248*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4LUByte)
249*8975f5c5SAndroid Build Coastguard Worker {
250*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
251*8975f5c5SAndroid Build Coastguard Worker }
252*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment4AUByte)253*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment4AUByte)
254*8975f5c5SAndroid Build Coastguard Worker {
255*8975f5c5SAndroid Build Coastguard Worker testAlignment(4, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
256*8975f5c5SAndroid Build Coastguard Worker }
257*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8RGBAUByte)258*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8RGBAUByte)
259*8975f5c5SAndroid Build Coastguard Worker {
260*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 4 + 4, GL_RGBA, GL_UNSIGNED_BYTE);
261*8975f5c5SAndroid Build Coastguard Worker }
262*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8RGBUByte)263*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8RGBUByte)
264*8975f5c5SAndroid Build Coastguard Worker {
265*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 3 + 3, GL_RGB, GL_UNSIGNED_BYTE);
266*8975f5c5SAndroid Build Coastguard Worker }
267*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8RGBAUShort4444)268*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort4444)
269*8975f5c5SAndroid Build Coastguard Worker {
270*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4);
271*8975f5c5SAndroid Build Coastguard Worker }
272*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8RGBAUShort5551)273*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort5551)
274*8975f5c5SAndroid Build Coastguard Worker {
275*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 2 + 2, GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1);
276*8975f5c5SAndroid Build Coastguard Worker }
277*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8RGBAUShort565)278*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8RGBAUShort565)
279*8975f5c5SAndroid Build Coastguard Worker {
280*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 2 + 2, GL_RGB, GL_UNSIGNED_SHORT_5_6_5);
281*8975f5c5SAndroid Build Coastguard Worker }
282*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8LAUByte)283*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8LAUByte)
284*8975f5c5SAndroid Build Coastguard Worker {
285*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 * 2 + 2, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE);
286*8975f5c5SAndroid Build Coastguard Worker }
287*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8LUByte)288*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8LUByte)
289*8975f5c5SAndroid Build Coastguard Worker {
290*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 + 1, GL_LUMINANCE, GL_UNSIGNED_BYTE);
291*8975f5c5SAndroid Build Coastguard Worker }
292*8975f5c5SAndroid Build Coastguard Worker
TEST_P(UnpackAlignmentTest,Alignment8AUByte)293*8975f5c5SAndroid Build Coastguard Worker TEST_P(UnpackAlignmentTest, Alignment8AUByte)
294*8975f5c5SAndroid Build Coastguard Worker {
295*8975f5c5SAndroid Build Coastguard Worker testAlignment(8, 7 + 1, GL_ALPHA, GL_UNSIGNED_BYTE);
296*8975f5c5SAndroid Build Coastguard Worker }
297*8975f5c5SAndroid Build Coastguard Worker
298*8975f5c5SAndroid Build Coastguard Worker // Use this to select which configurations (e.g. which renderer, which GLES major version) these
299*8975f5c5SAndroid Build Coastguard Worker // tests should be run against.
300*8975f5c5SAndroid Build Coastguard Worker ANGLE_INSTANTIATE_TEST_ES2_AND_ES3(UnpackAlignmentTest);
301*8975f5c5SAndroid Build Coastguard Worker
302*8975f5c5SAndroid Build Coastguard Worker } // namespace
303