1 /*-------------------------------------------------------------------------
2 * OpenGL Conformance Test Suite
3 * -----------------------------
4 *
5 * Copyright (c) 2014-2016 The Khronos Group Inc.
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 */ /*!
20 * \file
21 * \brief
22 */ /*-------------------------------------------------------------------*/
23
24 /*!
25 * \file esextcTextureBorderClampSamplingTextureGroup.cpp
26 * \brief Test Group for Texture Border Clamp Sampling Texture Tests (Test 7)
27 */ /*-------------------------------------------------------------------*/
28
29 #include "esextcTextureBorderClampSamplingTextureGroup.hpp"
30 #include "esextcTextureBorderClampSamplingTexture.cpp"
31 #include "glwEnums.hpp"
32
33 namespace glcts
34 {
35
36 /** Constructor
37 *
38 * @param context Test context
39 * @param glslVersion GLSL version
40 **/
TextureBorderClampSamplingTextureGroup(glcts::Context & context,const ExtParameters & extParams)41 TextureBorderClampSamplingTextureGroup::TextureBorderClampSamplingTextureGroup(glcts::Context& context,
42 const ExtParameters& extParams)
43 : TestCaseGroupBase(context, extParams, "sampling_texture", "Texture Border Clamp Sampling Texture Tests")
44 {
45 /* No implementation needed */
46 }
47
48 /** Initializes test cases for Texture Border Clamp Sampling Texture (Test 7)
49 **/
init(void)50 void TextureBorderClampSamplingTextureGroup::init(void)
51 {
52 /* Initialize base class */
53 TestCaseGroupBase::init();
54
55 /* Filtering GL_NEAREST */
56
57 /* Target GL_TEXTURE_2D */
58
59 /* GL_RGBA32F */
60 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DRGBA32F(
61 4, 4, GL_TEXTURE_2D, GL_RGBA32F, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 1, 0.0f, 1.0f, 0, 255,
62 GL_FLOAT, GL_UNSIGNED_BYTE);
63
64 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
65 m_context, m_extParams, "Texture2DRGBA32F", "Test 7", configurationTexture2DRGBA32F));
66
67 /* GL_R32I */
68 TestConfiguration<glw::GLint, glw::GLint> configurationTexture2DR32I(1, 4, GL_TEXTURE_2D, GL_R32I, GL_R32I,
69 GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER,
70 256, 256, 1, 0, 255, 0, 255, GL_INT, GL_INT);
71
72 addChild(new TextureBorderClampSamplingTexture<glw::GLint, glw::GLint>(m_context, m_extParams, "Texture2DR32I",
73 "Test 7", configurationTexture2DR32I));
74
75 /* GL_R32UI */
76 TestConfiguration<glw::GLuint, glw::GLuint> configurationTexture2DR32UI(
77 1, 4, GL_TEXTURE_2D, GL_R32UI, GL_R32UI, GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER, 256, 256, 1, 0, 255, 0,
78 255, GL_UNSIGNED_INT, GL_UNSIGNED_INT);
79
80 addChild(new TextureBorderClampSamplingTexture<glw::GLuint, glw::GLuint>(m_context, m_extParams, "Texture2DR32UI",
81 "Test 7", configurationTexture2DR32UI));
82
83 /* GL_RGBA8 */
84 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture2DRGBA8(
85 4, 4, GL_TEXTURE_2D, GL_RGBA8, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 1, 0, 255, 0, 255,
86 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
87
88 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(m_context, m_extParams, "Texture2DRGBA8",
89 "Test 7", configurationTexture2DRGBA8));
90
91 /* GL_DEPTH_COMPONENT32F */
92 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DDC32F(
93 1, 1, GL_TEXTURE_2D, GL_DEPTH_COMPONENT32F, GL_R8, GL_NEAREST, GL_DEPTH_COMPONENT, GL_RED, 256, 256, 1, 0, 255,
94 0, 255, GL_FLOAT, GL_UNSIGNED_BYTE);
95
96 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(m_context, m_extParams, "Texture2DDC32F",
97 "Test 7", configurationTexture2DDC32F));
98
99 /* GL_DEPTH_COMPONENT16 */
100 TestConfiguration<glw::GLushort, glw::GLubyte> configurationTexture2DDC16(
101 1, 1, GL_TEXTURE_2D, GL_DEPTH_COMPONENT16, GL_R8, GL_NEAREST, GL_DEPTH_COMPONENT, GL_RED, 256, 256, 1, 0, 255,
102 0, 255, GL_UNSIGNED_SHORT, GL_UNSIGNED_BYTE);
103
104 addChild(new TextureBorderClampSamplingTexture<glw::GLushort, glw::GLubyte>(m_context, m_extParams, "Texture2DDC16",
105 "Test 7", configurationTexture2DDC16));
106
107 /* GL_COMPRESSED_RGBA8_ETC2_EAC */
108 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DCompressed(
109 4, 4, GL_TEXTURE_2D, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 64, 64, 1, 0, 1, 0,
110 255, GL_FLOAT, GL_UNSIGNED_BYTE);
111
112 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
113 m_context, m_extParams, "Texture2DCompressed", "Test 7", configurationTexture2DCompressed));
114
115 /* Target GL_TEXTURE_2D_ARRAY */
116
117 /* GL_RGBA32F */
118 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DArrayRGBA32F(
119 4, 4, GL_TEXTURE_2D_ARRAY, GL_RGBA32F, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 6, 0.0f, 1.0f, 0, 255,
120 GL_FLOAT, GL_UNSIGNED_BYTE);
121
122 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
123 m_context, m_extParams, "Texture2DArrayRGBA32F", "Test 7", configurationTexture2DArrayRGBA32F));
124
125 /* GL_R32I */
126 TestConfiguration<glw::GLint, glw::GLint> configurationTexture2DArrayR32I(
127 1, 4, GL_TEXTURE_2D_ARRAY, GL_R32I, GL_R32I, GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER, 256, 256, 6, 0, 255,
128 0, 255, GL_INT, GL_INT);
129
130 addChild(new TextureBorderClampSamplingTexture<glw::GLint, glw::GLint>(m_context, m_extParams, "Texture2DArrayR32I",
131 "Test 7", configurationTexture2DArrayR32I));
132
133 /* GL_R32UI */
134 TestConfiguration<glw::GLuint, glw::GLuint> configurationTexture2DArrayR32UI(
135 1, 4, GL_TEXTURE_2D_ARRAY, GL_R32UI, GL_R32UI, GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER, 256, 256, 6, 0, 255,
136 0, 255, GL_UNSIGNED_INT, GL_UNSIGNED_INT);
137
138 addChild(new TextureBorderClampSamplingTexture<glw::GLuint, glw::GLuint>(
139 m_context, m_extParams, "Texture2DArrayR32UI", "Test 7", configurationTexture2DArrayR32UI));
140
141 /* GL_RGBA8 */
142 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture2DArrayRGBA8(
143 4, 4, GL_TEXTURE_2D_ARRAY, GL_RGBA8, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 6, 0, 255, 0, 255,
144 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
145
146 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(
147 m_context, m_extParams, "Texture2DArrayRGBA8", "Test 7", configurationTexture2DArrayRGBA8));
148
149 /* GL_COMPRESSED_RGBA8_ETC2_EAC */
150 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DArrayCompressed(
151 4, 4, GL_TEXTURE_2D_ARRAY, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 64, 64, 6, 0,
152 1, 0, 255, GL_FLOAT, GL_UNSIGNED_BYTE);
153
154 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
155 m_context, m_extParams, "Texture2DArrayCompressed", "Test 7", configurationTexture2DArrayCompressed));
156
157 /* Target GL_TEXTURE_3D */
158
159 /* GL_RGBA32F */
160 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture3DRGBA32F(
161 4, 4, GL_TEXTURE_3D, GL_RGBA32F, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 6, 0.0f, 1.0f, 0, 255,
162 GL_FLOAT, GL_UNSIGNED_BYTE);
163
164 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
165 m_context, m_extParams, "Texture3DRGBA32F", "Test 7", configurationTexture3DRGBA32F));
166
167 /* GL_R32I */
168 TestConfiguration<glw::GLint, glw::GLint> configurationTexture3DR32I(1, 4, GL_TEXTURE_3D, GL_R32I, GL_R32I,
169 GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER,
170 256, 256, 6, 0, 255, 0, 255, GL_INT, GL_INT);
171
172 addChild(new TextureBorderClampSamplingTexture<glw::GLint, glw::GLint>(m_context, m_extParams, "Texture3DR32I",
173 "Test 7", configurationTexture3DR32I));
174
175 /* GL_R32UI */
176 TestConfiguration<glw::GLuint, glw::GLuint> configurationTexture3DR32UI(
177 1, 4, GL_TEXTURE_3D, GL_R32UI, GL_R32UI, GL_NEAREST, GL_RED_INTEGER, GL_RGBA_INTEGER, 256, 256, 6, 0, 255, 0,
178 255, GL_UNSIGNED_INT, GL_UNSIGNED_INT);
179
180 addChild(new TextureBorderClampSamplingTexture<glw::GLuint, glw::GLuint>(m_context, m_extParams, "Texture3DR32UI",
181 "Test 7", configurationTexture3DR32UI));
182
183 /* GL_RGBA8 */
184 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture3DRGBA8(
185 4, 4, GL_TEXTURE_3D, GL_RGBA8, GL_RGBA8, GL_NEAREST, GL_RGBA, GL_RGBA, 256, 256, 6, 0, 255, 0, 255,
186 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
187
188 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(m_context, m_extParams, "Texture3DRGBA8",
189 "Test 7", configurationTexture3DRGBA8));
190
191 /* Filtering GL_LINEAR */
192
193 /* Target GL_TEXTURE_2D */
194
195 /* GL_RGBA32F */
196 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DRGBA32FLinear(
197 4, 4, GL_TEXTURE_2D, GL_RGBA32F, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 1, 0.0f, 1.0f, 0, 255,
198 GL_FLOAT, GL_UNSIGNED_BYTE);
199
200 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
201 m_context, m_extParams, "Texture2DRGBA32FLinear", "Test 7", configurationTexture2DRGBA32FLinear));
202
203 /* GL_RGBA8 */
204 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture2DRGBA8Linear(
205 4, 4, GL_TEXTURE_2D, GL_RGBA8, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 1, 0, 255, 0, 255,
206 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
207
208 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(
209 m_context, m_extParams, "Texture2DRGBA8Linear", "Test 7", configurationTexture2DRGBA8Linear));
210
211 /* GL_DEPTH_COMPONENT32F */
212 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DDC32FLinear(
213 1, 1, GL_TEXTURE_2D, GL_DEPTH_COMPONENT32F, GL_R8, GL_LINEAR, GL_DEPTH_COMPONENT, GL_RED, 256, 256, 1, 0, 255,
214 0, 255, GL_FLOAT, GL_UNSIGNED_BYTE);
215
216 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
217 m_context, m_extParams, "Texture2DDC32FLinear", "Test 7", configurationTexture2DDC32FLinear));
218
219 /* GL_DEPTH_COMPONENT16 */
220 TestConfiguration<glw::GLushort, glw::GLubyte> configurationTexture2DDC16Linear(
221 1, 1, GL_TEXTURE_2D, GL_DEPTH_COMPONENT16, GL_R8, GL_LINEAR, GL_DEPTH_COMPONENT, GL_RED, 256, 256, 1, 0, 255, 0,
222 255, GL_UNSIGNED_SHORT, GL_UNSIGNED_BYTE);
223
224 addChild(new TextureBorderClampSamplingTexture<glw::GLushort, glw::GLubyte>(
225 m_context, m_extParams, "Texture2DDC16Linear", "Test 7", configurationTexture2DDC16Linear));
226
227 /* GL_COMPRESSED_RGBA8_ETC2_EAC */
228 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DCompressedLinear(
229 4, 4, GL_TEXTURE_2D, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 64, 64, 1, 0, 1, 0,
230 255, GL_FLOAT, GL_UNSIGNED_BYTE);
231
232 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
233 m_context, m_extParams, "Texture2DCompressedLinear", "Test 7", configurationTexture2DCompressedLinear));
234
235 /* Target GL_TEXTURE_2D_ARRAY */
236
237 /* GL_RGBA32F */
238 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DArrayRGBA32FLinear(
239 4, 4, GL_TEXTURE_2D_ARRAY, GL_RGBA32F, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 6, 0.0f, 1.0f, 0, 255,
240 GL_FLOAT, GL_UNSIGNED_BYTE);
241
242 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
243 m_context, m_extParams, "Texture2DArrayRGBA32FLinear", "Test 7", configurationTexture2DArrayRGBA32FLinear));
244
245 /* GL_RGBA8 */
246 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture2DArrayRGBA8Linear(
247 4, 4, GL_TEXTURE_2D_ARRAY, GL_RGBA8, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 6, 0, 255, 0, 255,
248 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
249
250 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(
251 m_context, m_extParams, "Texture2DArrayRGBA8Linear", "Test 7", configurationTexture2DArrayRGBA8Linear));
252
253 /* GL_COMPRESSED_RGBA8_ETC2_EAC */
254 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture2DArrayCompressedLinear(
255 4, 4, GL_TEXTURE_2D_ARRAY, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 64, 64, 6, 0, 1,
256 0, 255, GL_FLOAT, GL_UNSIGNED_BYTE);
257
258 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
259 m_context, m_extParams, "Texture2DArrayCompressedLinear", "Test 7",
260 configurationTexture2DArrayCompressedLinear));
261
262 /* Target GL_TEXTURE_3D*/
263
264 /* GL_RGBA32F */
265 TestConfiguration<glw::GLfloat, glw::GLubyte> configurationTexture3DRGBA32FLinear(
266 4, 4, GL_TEXTURE_3D, GL_RGBA32F, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 6, 0.0f, 1.0f, 0, 255,
267 GL_FLOAT, GL_UNSIGNED_BYTE);
268
269 addChild(new TextureBorderClampSamplingTexture<glw::GLfloat, glw::GLubyte>(
270 m_context, m_extParams, "Texture3DRGBA32FLinear", "Test 7", configurationTexture3DRGBA32FLinear));
271
272 /* GL_RGBA8 */
273 TestConfiguration<glw::GLubyte, glw::GLubyte> configurationTexture3DRGBA8Linear(
274 4, 4, GL_TEXTURE_3D, GL_RGBA8, GL_RGBA8, GL_LINEAR, GL_RGBA, GL_RGBA, 256, 256, 6, 0, 255, 0, 255,
275 GL_UNSIGNED_BYTE, GL_UNSIGNED_BYTE);
276
277 addChild(new TextureBorderClampSamplingTexture<glw::GLubyte, glw::GLubyte>(
278 m_context, m_extParams, "Texture3DRGBA8Linear", "Test 7", configurationTexture3DRGBA8Linear));
279 }
280
281 } // namespace glcts
282