MeVisLabToolboxReference
SoShaderProgram Class Reference

Open Inventor shader program node. More...

#include <SoShaderProgram.h>

List of all members.

Public Types

enum  GeometryInputType {
  POINTS_INPUT, LINES_INPUT, LINES_ADJACENCY_INPUT, TRIANGLES_INPUT,
  TRIANGLES_ADJACENCY_INPUT
}
enum  GeometryOutputType { POINTS_OUTPUT, LINE_STRIP_OUTPUT, TRIANGLE_STRIP_OUTPUT }

Public Member Functions

 SoShaderProgram ()
 Constructor.
virtual void GLRender (SoGLRenderAction *action)
 Implements rendering.

Static Public Member Functions

static void initClass ()
 Initialize class with runtime type system.

Public Attributes

SoMFShaderObject shaderObject
 Collects all vertex and fragment shaders.
SoMFUniformShaderParameter parameter
 Collects all shader parameters.
SoSFEnum geometryInputType
 Kind of primitives the geometry shader will accept as input.
SoSFEnum geometryOutputType
 Kind of primitives the geometry shader will output.
SoSFInt32 maxEmittedGeometryVertices
 Maximum number of points the geometry shader will emit.

Protected Member Functions

virtual ~SoShaderProgram ()
 Destructor.
void setup ()
 Initial setup of shader program.
SbBool isValidShaderObjects () const
 Returns 'TRUE' if all shader objects are valid.
void adaptParametersList (const SbPList &nextParameters)
void adaptShadersList (SbPList &prevShaders, const SbPList &nextShaders)
void scheduleShaderObjectRebuild ()
void injectSnippets ()
void updateOIVStateDependentParameters (SoState *state)
 Assigns Open Inventor state to some predefined uniform parameters.

Protected Attributes

SoGLShaderProgram_glShaderProgram
SbPList _usedShaderParameters
 Shader parameters known via element.

Detailed Description

Open Inventor shader program node.

Definition at line 27 of file SoShaderProgram.h.


Member Enumeration Documentation

Enumerator:
POINTS_INPUT 
LINES_INPUT 
LINES_ADJACENCY_INPUT 
TRIANGLES_INPUT 
TRIANGLES_ADJACENCY_INPUT 

Definition at line 35 of file SoShaderProgram.h.

Enumerator:
POINTS_OUTPUT 
LINE_STRIP_OUTPUT 
TRIANGLE_STRIP_OUTPUT 

Definition at line 42 of file SoShaderProgram.h.


Constructor & Destructor Documentation

SoShaderProgram::SoShaderProgram ( )

Constructor.

virtual SoShaderProgram::~SoShaderProgram ( ) [protected, virtual]

Destructor.


Member Function Documentation

void SoShaderProgram::adaptParametersList ( const SbPList &  nextParameters) [protected]
void SoShaderProgram::adaptShadersList ( SbPList &  prevShaders,
const SbPList &  nextShaders 
) [protected]
virtual void SoShaderProgram::GLRender ( SoGLRenderAction *  action) [virtual]

Implements rendering.

static void SoShaderProgram::initClass ( ) [static]

Initialize class with runtime type system.

void SoShaderProgram::injectSnippets ( ) [protected]
SbBool SoShaderProgram::isValidShaderObjects ( ) const [protected]

Returns 'TRUE' if all shader objects are valid.

void SoShaderProgram::scheduleShaderObjectRebuild ( ) [protected]
void SoShaderProgram::setup ( ) [protected]

Initial setup of shader program.

void SoShaderProgram::updateOIVStateDependentParameters ( SoState *  state) [protected]

Assigns Open Inventor state to some predefined uniform parameters.

Currently supported state depended uniforms are:

  • 'oiv_ViewPosition' vec4(x, y, z, (orthographic projection) ? 0 : 1)
  • 'oiv_NumEnabledLights' int

Member Data Documentation

Definition at line 78 of file SoShaderProgram.h.

Shader parameters known via element.

Definition at line 81 of file SoShaderProgram.h.

Kind of primitives the geometry shader will accept as input.

Definition at line 55 of file SoShaderProgram.h.

Kind of primitives the geometry shader will output.

Definition at line 58 of file SoShaderProgram.h.

Maximum number of points the geometry shader will emit.

Definition at line 61 of file SoShaderProgram.h.

Collects all shader parameters.

Definition at line 52 of file SoShaderProgram.h.

Collects all vertex and fragment shaders.

Definition at line 49 of file SoShaderProgram.h.


The documentation for this class was generated from the following file: