moGL  travis-test-3
Modern OpenGL wrapper, thin C++14 header-only layer on top of the OpenGL 4.5+ core spec
object/shader/programpipeline.hpp
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Defines