• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef _ESEXTCTESSELLATIONSHADERPROGRAMINTERFACES_HPP
2 #define _ESEXTCTESSELLATIONSHADERPROGRAMINTERFACES_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 #include "../esextcTestCaseBase.hpp"
27 #include "glwEnums.hpp"
28 
29 namespace glcts
30 {
31 /** Implementation of Test Case 3
32  *
33  *  Make sure that the following interfaces report correct values for
34  *  GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT property:
35  *
36  *  * GL_UNIFORM;
37  *  * GL_UNIFORM_BLOCK;
38  *  * GL_ATOMIC_COUNTER_BUFFER;
39  *  * GL_SHADER_STORAGE_BLOCK;
40  *  * GL_BUFFER_VARIABLE;
41  *  * GL_PROGRAM_INPUT;
42  *  * GL_PROGRAM_OUTPUT;
43  *
44  *  Make sure that the following interfaces report correct values for
45  *  GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT property:
46  *
47  *  * GL_UNIFORM;
48  *  * GL_UNIFORM_BLOCK;
49  *  * GL_ATOMIC_COUNTER_BUFFER;
50  *  * GL_SHADER_STORAGE_BLOCK;
51  *  * GL_BUFFER_VARIABLE;
52  *  * GL_PROGRAM_INPUT;
53  *  * GL_PROGRAM_OUTPUT;
54  *
55  *  The property should also be recognized by glGetProgram*()
56  *
57  **/
58 class TessellationShaderProgramInterfaces : public TestCaseBase
59 {
60 public:
61 	/* Public methods */
62 	TessellationShaderProgramInterfaces(Context& context, const ExtParameters& extParams);
63 
~TessellationShaderProgramInterfaces(void)64 	virtual ~TessellationShaderProgramInterfaces(void)
65 	{
66 	}
67 
68 	virtual void		  deinit();
69 	void				  initTest(void);
70 	virtual IterateResult iterate(void);
71 
72 private:
73 	/* Private methods */
74 	void verifyPropertyValue(glw::GLenum interface, glw::GLenum property, glw::GLuint index, glw::GLint expected_value);
75 
76 	/* Private variables */
77 	glw::GLuint m_fs_shader_id;
78 	glw::GLuint m_po_id;
79 	glw::GLuint m_tc_shader_id;
80 	glw::GLuint m_te_shader_id;
81 	glw::GLuint m_vs_shader_id;
82 	bool		m_is_atomic_counters_supported;
83 	bool		m_is_shader_storage_blocks_supported;
84 };
85 
86 } // namespace glcts
87 
88 #endif // _ESEXTCTESSELLATIONSHADERPROGRAMINTERFACES_HPP
89