|
MeVisLab Resolution Independence API
|
Shader class which directly takes src for vertex, geometry and/or fragment shader, compiles and links it. More...
#include <SoGLCompleteShader.h>
Public Member Functions | |
| SoGLCompleteShader () | |
| ~SoGLCompleteShader () override | |
| bool | create (const char *srcVert, const char *srcGeom, const char *srcFrag) |
| Creates the shaders and links them. If one does not need a specific shader, just pass NULL. | |
| bool | update (const char *srcVert, const char *srcGeom, const char *srcFrag) |
| Updates the shaders source. Pass NULL for shaders that you don't want to update. | |
| void | bindTexture (const char *name, SoGLTexture *texture, int unit=-1) |
| binds the given texture, if unit == -1 a unit is automatically assigned by the shader | |
| void | enable () |
| enables the shader, resets the assigned texture units | |
| Public Member Functions inherited from SoGLShaderProgram | |
| SoGLShaderProgram () | |
| Constructor. | |
| ~SoGLShaderProgram () override | |
| Destructor. | |
| void | reset () override |
| Free all resources (OpenGL too) and reset instance to initial state. | |
| void | addShaderObject (SoGLShaderObject *shaderObject) |
| void | removeShaderObject (SoGLShaderObject *shaderObject) |
| void | removeAllShaderObjects () |
| void | enable () |
| void | disable () |
| void | scheduleLinking () |
| void | setGeometryInputType (GLint type) |
| void | setGeometryOutputType (GLint type) |
| void | setGeometryVerticesOut (GLint number) |
| virtual void | updateUniformsFromState (SoState *) |
| virtual void | preLinkSetup () |
| virtual void | postLinkSetup () |
| virtual SbBool | isActiveUniform (const SbString &name) |
| virtual void | clearAssignedTextureUnits () |
| Clears the assigned texture units to 0. | |
| int | getNumAssignedTextureUnits () |
| void | setNumAssignedTextureUnits (int num) |
| int | addTextureSampler (const SbString &name) override |
| Adds a new texture sampler with given name and returns the assigned texture unit. | |
| void | set1f (const SbString &name, const float value) override |
| void | set2f (const SbString &name, const float *value) override |
| void | set3f (const SbString &name, const float *value) override |
| void | set4f (const SbString &name, const float *value) override |
| void | set2f (const SbString &name, const float value0, const float value1) override |
| void | set3f (const SbString &name, const float value0, const float value1, const float value2) override |
| void | set4f (const SbString &name, const float value0, const float value1, const float value2, const float value3) override |
| void | set1fv (const SbString &name, const int num, const float *value) override |
| void | set2fv (const SbString &name, const int num, const float *value) override |
| void | set3fv (const SbString &name, const int num, const float *value) override |
| void | set4fv (const SbString &name, const int num, const float *value) override |
| void | set1i (const SbString &name, const int32_t value) override |
| void | set2i (const SbString &name, const int32_t *value) override |
| void | set2i (const SbString &name, const SbVec2s &value) override |
| void | set3i (const SbString &name, const int32_t *value) override |
| void | set3i (const SbString &name, const SbVec3s &value) override |
| void | set4i (const SbString &name, const int32_t *value) override |
| void | setMatrix3fv (const SbString &, int, const float *, SbBool=FALSE) override |
| void | setMatrix4fv (const SbString &, int, const float *, SbBool=FALSE) override |
| void | setName (const SbString &name) |
| const SbString & | getName () const |
| int | shaderVersion (SoShader::ShaderType type) const |
| Get the used GLSL version for the given shader type. | |
| ml::GLSLProgram & | getProgramResource () |
| GLuint | getProgramHandle () const |
| bool | isValid () |
| returns if the shader is valid or needs re-creation | |
| SbBool | isExecutable () const |
| SbBool | shouldLink () const |
| LinkageResult | link () |
| void | updateUniformInfo (GLint programHandle) |
| void | setAlwaysReadErrorLog (bool flag) |
| bool | alwaysReadErrorLog () |
| bool | hadLinkError () |
| const SbString & | getErrorLog () |
| Public Member Functions inherited from SoUniformParameterBase | |
| virtual void | setMatrix3f (const SbString &name, const float *values, SbBool transpose=FALSE) |
| virtual void | setMatrix4f (const SbString &name, const float *values, SbBool transpose=FALSE) |
| virtual void | setSamplerInfo (const SbString &, SamplerType, uint32_t) |
Public Attributes | |
| SoGLShaderObject * | m_pVertSh |
| The GLSL shader objects for vertex, geometry and fragment programs. | |
| SoGLShaderObject * | m_pGeomSh |
| SoGLShaderObject * | m_pFragSh |
Additional Inherited Members | |
| Public Types inherited from SoGLShaderProgram | |
| enum | LinkageResult { LR_FAILURE = 0 , LR_SUCCESS = 1 , LR_SKIPPED = 2 } |
| Public Types inherited from SoUniformParameterBase | |
| enum | SamplerType { SAMPLER_1D , SAMPLER_2D , SAMPLER_3D , SAMPLER_CUBEMAP } |
| Static Public Member Functions inherited from SoGLShader | |
| static SbBool | isSupported () |
| Returns 'TRUE' if vertex and fragment shaders are supported by OpenGL. | |
| static bool | supportsGeometryShaders () |
| Returns if the hardware supports geometry shaders. | |
| static void | printCapabilities () |
| Prints capabilities of the OpenGL implementation. | |
| Protected Member Functions inherited from SoGLShaderProgram | |
| GLint | getUniform (const SbString &name, GLenum type, int *num=nullptr) |
| Protected Member Functions inherited from SoGLShader | |
| SoGLShader () | |
| Constructor. | |
| virtual | ~SoGLShader () |
| Destructor. | |
| void | errClear (const char *string=nullptr) const |
| Clear OpenGL error state and print any previously not displayed error message. | |
| void | errCheck (const char *string=nullptr) const |
| Check for OpenGL errors and print error message if one is found. | |
| SbBool | error (const char *string=nullptr) const |
| Returns 'TRUE' if OpenGL error is found. | |
| Protected Member Functions inherited from SoUniformParameterBase | |
| SoUniformParameterBase () | |
| Hidden constructor. | |
| virtual | ~SoUniformParameterBase () |
| Hidden destructor. | |
| Protected Attributes inherited from SoGLShaderProgram | |
| ml::GLSLProgram | _programRes |
| GLint | _geometryInputType |
| GLint | _geometryOutputType |
| GLint | _geometryVerticesOut |
| std::list< SoGLShaderObject * > | _shaderObjects |
| SbBool | _shouldLink |
| SbBool | _isExecutable |
| SbString | _name |
| int | _assignedTextureUnits |
| std::map< std::string, UniformInfo > | _uniformInfo |
| bool | _alwaysReadErrorLog |
| bool | _hadError |
| SbString | _errorLog |
Shader class which directly takes src for vertex, geometry and/or fragment shader, compiles and links it.
Definition at line 29 of file SoGLCompleteShader.h.
|
inline |
Definition at line 38 of file SoGLCompleteShader.h.
|
override |
| void SoGLCompleteShader::bindTexture | ( | const char * | name, |
| SoGLTexture * | texture, | ||
| int | unit = -1 ) |
binds the given texture, if unit == -1 a unit is automatically assigned by the shader
| bool SoGLCompleteShader::create | ( | const char * | srcVert, |
| const char * | srcGeom, | ||
| const char * | srcFrag ) |
Creates the shaders and links them. If one does not need a specific shader, just pass NULL.
| void SoGLCompleteShader::enable | ( | ) |
enables the shader, resets the assigned texture units
| bool SoGLCompleteShader::update | ( | const char * | srcVert, |
| const char * | srcGeom, | ||
| const char * | srcFrag ) |
Updates the shaders source. Pass NULL for shaders that you don't want to update.
| SoGLShaderObject * SoGLCompleteShader::m_pFragSh |
Definition at line 35 of file SoGLCompleteShader.h.
Referenced by SoGLCompleteShader().
| SoGLShaderObject * SoGLCompleteShader::m_pGeomSh |
Definition at line 34 of file SoGLCompleteShader.h.
Referenced by SoGLCompleteShader().
| SoGLShaderObject* SoGLCompleteShader::m_pVertSh |
The GLSL shader objects for vertex, geometry and fragment programs.
Definition at line 33 of file SoGLCompleteShader.h.
Referenced by SoGLCompleteShader().