moGL
travis-test-3
Modern OpenGL wrapper, thin C++14 header-only layer on top of the OpenGL 4.5+ core spec
|
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 #ifndef MOGL_PROGRAMPIPELINE_INCLUDED 00012 #define MOGL_PROGRAMPIPELINE_INCLUDED 00013 00014 #include <mogl/object/handle.hpp> 00015 00016 namespace mogl 00017 { 00018 class ProgramPipeline : public Handle<GLuint> 00019 { 00020 public: 00021 ProgramPipeline(); 00022 ~ProgramPipeline(); 00023 00024 ProgramPipeline(const ProgramPipeline& other) = delete; 00025 ProgramPipeline& operator=(const ProgramPipeline& other) = delete; 00026 00027 public: 00028 void useStages(GLbitfield stages, GLuint program); 00029 void setActiveProgram(GLuint program); 00030 void validate(); 00031 void get(GLenum property, GLint* value); // Direct call to glGetProgramPipelineiv() 00032 GLint get(GLenum property); 00033 bool isHandleValid() const override final; 00034 // TODO add glGetProgramPipelineInfoLog() call 00035 }; 00036 } 00037 00038 #include "programpipeline.inl" 00039 00040 #endif // MOGL_PROGRAMPIPELINE_INCLUDED