PrevUpHomeNext

Program interface

#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);

Resource property

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);

PrevUpHomeNext