1 #ifndef _ES31CTEXTURESTORAGEMULTISAMPLEGETTEXLEVELPARAMETERIFVTESTS_HPP
2 #define _ES31CTEXTURESTORAGEMULTISAMPLEGETTEXLEVELPARAMETERIFVTESTS_HPP
3 /*-------------------------------------------------------------------------
4 * OpenGL Conformance Test Suite
5 * -----------------------------
7 * Copyright (c) 2014-2016 The Khronos Group Inc.
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
24 */ /*-------------------------------------------------------------------*/
28 * \file es31cTextureStorageMultisampleGetTexLevelParameterifvTests.hpp
29 * \brief Declares test classes for glGetTexLevelParameter{i, f}v() conformance
31 */ /*-------------------------------------------------------------------*/
33 #include "es31cTextureStorageMultisampleTests.hpp"
34 #include "glwEnums.hpp"
38 /** Test case: Verifies glGetTexLevelParameter{if}v() entry-points work correctly for
39 * all ES3.1 texture targets.
41 class MultisampleTextureGetTexLevelParametervFunctionalTest : public glcts::TestCase
45 MultisampleTextureGetTexLevelParametervFunctionalTest(Context& context);
47 virtual void deinit();
48 virtual tcu::TestNode::IterateResult iterate();
51 typedef struct texture_properties
54 glw::GLboolean fixedsamplelocations;
57 glw::GLenum internalformat;
60 bool is_multisample_texture;
63 glw::GLuint* to_id_ptr;
67 glw::GLint expected_compressed;
68 glw::GLint expected_texture_alpha_size;
69 std::vector<glw::GLint> expected_texture_alpha_types;
70 glw::GLint expected_texture_blue_size;
71 std::vector<glw::GLint> expected_texture_blue_types;
72 glw::GLint expected_texture_depth;
73 glw::GLint expected_texture_depth_size;
74 std::vector<glw::GLint> expected_texture_depth_types;
75 glw::GLint expected_texture_fixed_sample_locations;
76 glw::GLint expected_texture_green_size;
77 std::vector<glw::GLint> expected_texture_green_types;
78 glw::GLint expected_texture_height;
79 glw::GLint expected_texture_internal_format;
80 glw::GLint expected_texture_red_size;
81 std::vector<glw::GLint> expected_texture_red_types;
82 glw::GLint expected_texture_samples;
83 glw::GLint expected_texture_shared_size;
84 glw::GLint expected_texture_stencil_size;
85 glw::GLint expected_texture_width;
89 , fixedsamplelocations(GL_FALSE)
93 , is_2d_texture(false)
94 , is_cm_texture(false)
95 , is_multisample_texture(false)
101 , expected_compressed(0)
102 , expected_texture_alpha_size(0)
103 , expected_texture_blue_size(0)
104 , expected_texture_depth(0)
105 , expected_texture_depth_size(0)
106 , expected_texture_fixed_sample_locations(0)
107 , expected_texture_green_size(0)
108 , expected_texture_height(0)
109 , expected_texture_internal_format(0)
110 , expected_texture_red_size(0)
111 , expected_texture_samples(0)
112 , expected_texture_shared_size(0)
113 , expected_texture_stencil_size(0)
114 , expected_texture_width(0)
116 /* Left blank intentionally */
118 } _texture_properties;
120 /* Private variables */
121 glw::GLboolean gl_oes_texture_storage_multisample_2d_array_supported;
123 glw::GLuint to_2d_array;
124 glw::GLuint to_2d_multisample;
125 glw::GLuint to_2d_multisample_array;
127 glw::GLuint to_cubemap;
130 /** Test case: Verifies glGetTexLevelParameter{if}v() entry-points work correctly for
134 class MultisampleTextureGetTexLevelParametervWorksForMaximumLodTest : public glcts::TestCase
138 MultisampleTextureGetTexLevelParametervWorksForMaximumLodTest(Context& context);
140 virtual void deinit();
141 virtual tcu::TestNode::IterateResult iterate();
144 /* Private variables */
145 glw::GLboolean gl_oes_texture_storage_multisample_2d_array_supported;
149 /** Test case: GL_INVALID_ENUM is reported for invalid texture target. */
150 class MultisampleTextureGetTexLevelParametervInvalidTextureTargetRejectedTest : public glcts::TestCase
154 MultisampleTextureGetTexLevelParametervInvalidTextureTargetRejectedTest(Context& context);
156 virtual void deinit();
157 virtual tcu::TestNode::IterateResult iterate();
160 /* Private variables */
161 glw::GLfloat float_data;
165 /** Test case: GL_INVALID_VALUE is reported for invalid value argument. */
166 class MultisampleTextureGetTexLevelParametervInvalidValueArgumentRejectedTest : public glcts::TestCase
170 MultisampleTextureGetTexLevelParametervInvalidValueArgumentRejectedTest(Context& context);
172 virtual void deinit();
173 virtual tcu::TestNode::IterateResult iterate();
176 /* Private variables */
177 glw::GLfloat float_data;
181 /** Test case: GL_INVALID_VALUE is reported for negative <lod> argument value. */
182 class MultisampleTextureGetTexLevelParametervNegativeLodIsRejectedTest : public glcts::TestCase
186 MultisampleTextureGetTexLevelParametervNegativeLodIsRejectedTest(Context& context);
188 virtual void deinit();
189 virtual tcu::TestNode::IterateResult iterate();
192 /* Private methods */
193 void initInternals();
195 /* Private variables */
196 glw::GLfloat float_data;
201 } /* glcts namespace */
203 #endif // _ES31CTEXTURESTORAGEMULTISAMPLEGETTEXLEVELPARAMETERIFVTESTS_HPP