![]() |
ImFusion SDK 4.3
|
Interfaces and wrapper classes for working with OpenGL/GLSL shaders. More...
Interfaces and wrapper classes for working with OpenGL/GLSL shaders.
OpenGL shaders are user-defined programs that are executed on the GPU as part of a certain rendering pipeline stage. Please refer to the OpenGL Wiki for more information on the technical details how shader execution on the GPU works.
For basic rendering tasks you can use the GL::FixedFunctionPipeline class providing general-purpose rendering capabilities for points, lines, and triangles. If those are not sufficient or need to implement a custom shader yourself. The GL::Program class represents the wrapper class for this concept and is formed of one or multiple shaders. The GL::ImageProgram class is a specialization to conveniently execute a fragment shader on a 2D or 3D image (or a sub region of it) in a pixel-perfect fashion.
Shader source code is provided by the Resource System infrastructure. By default, the source code is staticly defined at compile time of your application. However, ImFusionGL provides different mechanisms to flexibly assemble the final source code, optionally also in a polymorphic fashion at runtime:
Classes | |
class | AbstractInclude |
Base class for abstract GLSL includes. More... | |
class | ImageProgram |
Convenience class to execute a GLSL fragment shader on an image or volume. More... | |
class | MultiIncludable< BaseIncludeType, IncludeArgumentsTypes > |
Multi-AbstractIncludes allow for using multiple instances of the same AbstractInclude type in one shader. More... | |
class | MultiAbstractIncludeBase |
Non-templated base class of MultiIncludable to implement polymorphic interface. More... | |
class | MultiAbstractInclude< BaseIncludeType, IncludeArgumentsTypes > |
Concrete type for an instance of a Multi-AbstractInclude. More... | |
class | Program |
OpenGL GLSL program with a fragment and optional vertex and geometry shader. More... | |
class | ProgramCache |
Helper class to manage instances of the same base shader with different abstract includes and/or defines. More... | |
class | ProgramDecorator |
Interface to apply custom arguments to a shader program. More... | |
Enumerations | |
enum class | ShaderTextReplacement { ExactMatch = 1 << 0 , AllUppercase = 1 << 1 , AllLowercase = 1 << 2 } |
Bitfield enum describing how to perform text replacement in a shader when using the MultiIncludable interface. More... | |
|
strong |
#include <ImFusion/Core/GL/MultiAbstractInclude.h>
Bitfield enum describing how to perform text replacement in a shader when using the MultiIncludable interface.