#include
<oglplus/program_interface.hpp>
enum class ProgramInterface : GLenum { Uniform = GL_UNIFORM, UniformBlock = GL_UNIFORM_BLOCK, AtomicCounterBuffer = GL_ATOMIC_COUNTER_BUFFER, ProgramInput = GL_PROGRAM_INPUT, ProgramOutput = GL_PROGRAM_OUTPUT, VertexSubroutine = GL_VERTEX_SUBROUTINE, TessControlSubroutine = GL_TESS_CONTROL_SUBROUTINE, TessEvaluationSubroutine = GL_TESS_EVALUATION_SUBROUTINE, GeometrySubroutine = GL_GEOMETRY_SUBROUTINE, FragmentSubroutine = GL_FRAGMENT_SUBROUTINE, ComputeSubroutine = GL_COMPUTE_SUBROUTINE, VertexSubroutineUniform = GL_VERTEX_SUBROUTINE_UNIFORM, TessControlSubroutineUniform = GL_TESS_CONTROL_SUBROUTINE_UNIFORM, TessEvaluationSubroutineUniform = GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GeometrySubroutineUniform = GL_GEOMETRY_SUBROUTINE_UNIFORM, FragmentSubroutineUniform = GL_FRAGMENT_SUBROUTINE_UNIFORM, ComputeSubroutineUniform = GL_COMPUTE_SUBROUTINE_UNIFORM, TransformFeedebackVarying = GL_TRANSFORM_FEEDEBACK_VARYING, BufferVariable = GL_BUFFER_VARIABLE, ShaderStorageBlock = GL_SHADER_STORAGE_BLOCK }; template <> Range<ProgramInterface> EnumValueRange<ProgramInterface>(void); StrCRef EnumValueName(ProgramInterface);
enum class ProgramResourceProperty : GLenum { ArraySize = GL_ARRAY_SIZE, Offset = GL_OFFSET, BlockIndex = GL_BLOCK_INDEX, ArrayStride = GL_ARRAY_STRIDE, MatrixStride = GL_MATRIX_STRIDE, IsRowMajor = GL_IS_ROW_MAJOR, AtomicCounterBufferIndex = GL_ATOMIC_COUNTER_BUFFER_INDEX, BufferBinding = GL_BUFFER_BINDING, BufferDataSize = GL_BUFFER_DATA_SIZE, NumActiveVariables = GL_NUM_ACTIVE_VARIABLES, ActiveVariables = GL_ACTIVE_VARIABLES, ReferencedByVertexShader = GL_REFERENCED_BY_VERTEX_SHADER, ReferencedByTessControlShader = GL_REFERENCED_BY_TESS_CONTROL_SHADER, ReferencedByTessEvaluationShader = GL_REFERENCED_BY_TESS_EVALUATION_SHADER, ReferencedByGeometryShader = GL_REFERENCED_BY_GEOMETRY_SHADER, ReferencedByFragmentShader = GL_REFERENCED_BY_FRAGMENT_SHADER, ReferencedByComputeShader = GL_REFERENCED_BY_COMPUTE_SHADER, NumCompatibleSubroutines = GL_NUM_COMPATIBLE_SUBROUTINES, CompatibleSubroutines = GL_COMPATIBLE_SUBROUTINES, TopLevelArraySize = GL_TOP_LEVEL_ARRAY_SIZE, TopLevelArrayStride = GL_TOP_LEVEL_ARRAY_STRIDE, Location = GL_LOCATION, LocationIndex = GL_LOCATION_INDEX, LocationComponent = GL_LOCATION_COMPONENT, IsPerPatch = GL_IS_PER_PATCH, TransformFeedbackBufferIndex = GL_TRANSFORM_FEEDBACK_BUFFER_INDEX, TransformFeedbackBufferStride = GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE }; template <> Range<ProgramResourceProperty> EnumValueRange<ProgramResourceProperty>(void); StrCRef EnumValueName(ProgramResourceProperty);