Vital
|
Manages and provides access to vertex and fragment shaders used by the OpenGL rendering pipeline. More...
#include <shaders.h>
Public Member Functions | |
Shaders (OpenGLContext &open_gl_context) | |
Constructs a Shaders object associated with an OpenGLContext. | |
GLuint | getVertexShaderId (VertexShader shader) |
Retrieves the OpenGL shader ID for a given vertex shader. | |
GLuint | getFragmentShaderId (FragmentShader shader) |
Retrieves the OpenGL shader ID for a given fragment shader. | |
OpenGLShaderProgram * | getShaderProgram (VertexShader vertex_shader, FragmentShader fragment_shader, const GLchar **varyings=nullptr) |
Retrieves or creates an OpenGLShaderProgram from a given vertex and fragment shader pair. | |
Manages and provides access to vertex and fragment shaders used by the OpenGL rendering pipeline.
This class compiles and links various vertex and fragment shaders used throughout the UI. Shaders are retrieved and cached as needed. It supports multiple categories of shaders for different rendering tasks, such as image rendering, filter response curves, modulation arcs, and more.
Shaders are stored as enums and can be requested by their enum values. The class ensures that each shader is compiled once, and it creates specialized shader programs by linking vertex and fragment shaders.
An enumeration of all available fragment shaders.
Fragment shaders handle pixel-level rendering for different effects and graphical elements.
An enumeration of all available vertex shaders.
Each vertex shader corresponds to a certain type of geometry or pipeline configuration.
Shaders::Shaders | ( | OpenGLContext & | open_gl_context | ) |
Constructs a Shaders object associated with an OpenGLContext.
open_gl_context | The OpenGLContext used for shader compilation and linking. |
|
inline |
Retrieves the OpenGL shader ID for a given fragment shader.
shader | The fragment shader enum value. |
OpenGLShaderProgram * Shaders::getShaderProgram | ( | VertexShader | vertex_shader, |
FragmentShader | fragment_shader, | ||
const GLchar ** | varyings = nullptr ) |
Retrieves or creates an OpenGLShaderProgram from a given vertex and fragment shader pair.
vertex_shader | The vertex shader enum value. |
fragment_shader | The fragment shader enum value. |
varyings | Optional transform feedback varyings. |
|
inline |
Retrieves the OpenGL shader ID for a given vertex shader.
shader | The vertex shader enum value. |