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