#include
<oglplus/program_pipeline.hpp>
template <> class ObjCommonOps<tag::ProgramPipeline> : public ProgramPipelineName { public: static ProgramPipelineName Binding(void); static void Bind(ProgramPipelineName pipeline); void Bind(void) const; };
Returns the currently bound program pipeline. See |
|
Binds the specified program pipeline See |
|
Binds |
template <> class ObjectOps<tag::DirectState, tag::ProgramPipeline> : public ObjZeroOps<tag::DirectState, tag::ProgramPipeline> { public: struct Properties { typedef ProgramPipelineStage Stage; }; ProgPLUseStages UseStages(ProgramName program) const; void UseStages( Bitfield<ProgramPipelineStage> stages, ProgramName program ) const; #if defined GL_ALL_SHADER_BITS void UseAllStages(ProgramName program) const; #endif String GetInfoLog(void) const; Boolean IsValid(void) const; ObjectOps& Validate(void); Outcome<ObjectOps&> Validate(std::nothrow_t); void ActiveShaderProgram(ProgramName program) const; ProgramName ActiveShaderProgram(void) const; Boolean HasShader(ShaderType shader_type) const; ProgramName ShaderProgram(ShaderType shader_type) const; };
Indirectly inherits from ObjCommonOps<tag::ProgramPipeline>. |
|
This function returns an object that allows to specify which stages
of Program prog; ProgramPipeline pp; ... pp.UseStages(prog).Vertex(); pp.UseStages(prog).Vertex().Geometry(); pp.UseStages(prog).Vertex().TessControl().TessEvaluation().Geometry(); pp.UseStages(prog).Vertex().Geometry().Fragment(); pp.UseStages(prog).Geometry(); pp.UseStages(prog).All(); |
|
Uses the specified |
|
Use all stages of the |
|
Returns the validation process output. See |
|
Returns true if the pipeline is validated, false otherwise. See |
|
Validates this program pipeline. Throws ValidationError
on failure. See |
|
Make the |
|
Returns the current active shader program. See |
|
Returns true if this pipeline contains a shader of the specified type.
See |
|
Returns the program from which the shader of the specified type is
used. See |
typedef ObjectOps<tag::DirectState, tag::ProgramPipeline> ProgramPipelineOps; typedef Object<ProgramPipelineOps> ProgramPipeline; typedef ObjectZero<ObjZeroOps<tag::DirectState, tag::ProgramPipeline>> NoProgramPipeline;
Indirectly inherits from ObjCommonOps<tag::ProgramPipeline>. |
#include
<oglplus/program_pipeline_stage.hpp>
enum class ProgramPipelineStage : GLbitfield { VertexShader = GL_VERTEX_SHADER_BIT, TessControlShader = GL_TESS_CONTROL_SHADER_BIT, TessEvaluationShader = GL_TESS_EVALUATION_SHADER_BIT, GeometryShader = GL_GEOMETRY_SHADER_BIT, FragmentShader = GL_FRAGMENT_SHADER_BIT, ComputeShader = GL_COMPUTE_SHADER_BIT, AllShaders = GL_ALL_SHADER_BITS }; template <> Range<ProgramPipelineStage> EnumValueRange<ProgramPipelineStage>(void); StrCRef EnumValueName(ProgramPipelineStage); Bitfield<ProgramPipelineStage> operator | (ProgramPipelineStage b1, ProgramPipelineStage b2);