13#ifndef SO_GLCOMPLETE_SHADER_H
14#define SO_GLCOMPLETE_SHADER_H
20#include <Inventor/SbBasic.h>
46 bool create(
const char* srcVert,
const char* srcGeom,
const char* srcFrag);
48 bool update(
const char* srcVert,
const char* srcGeom,
const char* srcFrag);
51 void bindTexture(
const char* name, SoGLTexture* texture,
int unit = -1);
#define INVENTOR_SHADER_API
Define class export specifier.
Shader class which directly takes src for vertex, geometry and/or fragment shader,...
SoGLShaderObject * m_pVertSh
The GLSL shader objects for vertex, geometry and fragment programs.
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.
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
SoGLShaderObject * m_pGeomSh
~SoGLCompleteShader() override
SoGLShaderObject * m_pFragSh
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 enable()
enables the shader, resets the assigned texture units
Vertex or fragment shader object class.
Class managing an OpenGL shader program.