1 #ifndef _ESEXTCTEXTUREBORDERCLAMPGETTEXPARAMETERIERRORS_HPP
2 #define _ESEXTCTEXTUREBORDERCLAMPGETTEXPARAMETERIERRORS_HPP
3 /*-------------------------------------------------------------------------
4  * OpenGL Conformance Test Suite
5  * -----------------------------
6  *
7  * Copyright (c) 2014-2016 The Khronos Group Inc.
8  *
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
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
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.
20  *
21  */ /*!
22  * \file
23  * \brief
24  */ /*-------------------------------------------------------------------*/
25 
26 /*!
27  * \file esextcTextureBorderClampGetTexParameterIErrors.hpp
28  * \brief Texture Border Clamp glGetTexParameterIivEXT(), glGetTexParameterIuivEXT() Errors (Test 3)
29  */ /*-------------------------------------------------------------------*/
30 
31 #include "esextcTextureBorderClampBase.hpp"
32 #include <vector>
33 
34 namespace glcts
35 {
36 
37 /**  Implementation of Test 3 from CTS_EXT_texture_border_clamp. Description follows
38  *
39  *    Verify glGetTexParameterIivEXT() and glGetTexParameterIuivEXT() report errors
40  *    as per spec.
41  *
42  *    Category: Negative tests,
43  *              Optional dependency on EXT_texture_buffer,
44  *              Optional dependency on OES_texture_storage_multisample_2d_array.
45  *    Priority: Must-have.
46  *
47  *    Make sure the functions report GL_INVALID_ENUM error if cube-map face
48  *    texture targets or GL_TEXTURE_BUFFER_EXT (if supported) are used as
49  *    a texture target.
50  *
51  */
52 class TextureBorderClampGetTexParameterIErrorsTest : public TextureBorderClampBase
53 {
54 public:
55     /* Public methods */
56     TextureBorderClampGetTexParameterIErrorsTest(Context &context, const ExtParameters &extParams, const char *name,
57                                                  const char *description);
58 
~TextureBorderClampGetTexParameterIErrorsTest()59     virtual ~TextureBorderClampGetTexParameterIErrorsTest()
60     {
61     }
62 
63     virtual IterateResult iterate(void);
64 
65 private:
66     /* Private methods */
67     virtual void initTest(void);
68 
69     void CheckAllNames(glw::GLenum target, glw::GLenum expected_error);
70     void VerifyGLGetTexParameterIiv(glw::GLenum target, glw::GLenum pname, glw::GLenum expected_error);
71     void VerifyGLGetTexParameterIuiv(glw::GLenum target, glw::GLenum pname, glw::GLenum expected_error);
72 
73     /* Private variables */
74     glw::GLboolean m_test_passed;
75 
76     /* Private static variables */
77     static const glw::GLuint m_buffer_size;
78 
79     std::vector<glw::GLenum> m_pname_list;
80 };
81 
82 } // namespace glcts
83 
84 #endif // _ESEXTCTEXTUREBORDERCLAMPGETTEXPARAMETERIERRORS_HPP
85