Represents the configuration of an OpenGL pipeline.
It contains all important stages of the OpenGL Pipeline:
The vertex and fragment shader are neccessary to create a valid Program. To use the Program you have to prime it.
Inherits GLObject.
Public Member Functions | |
void | create (VShader &vs, FShader &fs) |
Links the shaders and creates the Program. More... | |
void | prime (std::function< void(HotProgram &)> func) |
Primes the Program in order to use it. More... | |
![]() | |
void | setServiceContext (config::ServiceContext cnt) |
template<typename Ex , LogLevel LL, typename... Ts> | |
Error Notice Debug void | logAndThrow (Ts...args) |
Public Attributes | |
PrimitiveProcessing | primitiveProc |
PrimitiveProcessing pipeline stage. | |
PerFragmentProcessing | perFragProc |
PerFragmentProcessing pipeline stage. | |
Protected Attributes | |
GLuint | m_handle |
friend | HotProgram |
Static Protected Attributes | |
static bool | s_isPrimed = false |
![]() | |
static constexpr PrintGL | GLERR = PrintGL::Error |
Additional Inherited Members | |
![]() | |
template<typename... Ts> | |
void | checkGLError (Ts...) |
template<typename... Ts> | |
void | checkGLWarning (Ts...) |
template<typename... Ts> | |
void | logThrowGL (Ts...) |
![]() | |
template<typename... Ts> | |
void | logCritical (Ts...args) |
template<typename... Ts> | |
void | logError (Ts...args) |
template<typename... Ts> | |
void | logWarning (Ts...args) |
template<typename... Ts> | |
void | logNotice (Ts...args) |
template<typename... Ts> | |
void | log (Ts...args) |
template<typename... Ts> | |
void | logDebug (Ts...args) |
template<typename Ex , LogLevel LL = LogLevel::Error, typename... Ts> | |
void | logAndThrow (Ts...args) |
![]() | |
NotCopyable (const NotCopyable &)=delete | |
NotCopyable & | operator= (const NotCopyable &)=delete |
Links the shaders and creates the Program.
vs | vertex shader |
fs | fragment shader |
void prime | ( | std::function< void(HotProgram &)> | func | ) |
Primes the Program in order to use it.
Binds the program and applies all attributes of the configurable pipline stages. You need a HotProgram to draw something.
func | A functor that accepts a HotProgram& as parameter |