MeVisLabToolboxReference
SoShaderObject Class Reference

Abstract Open Inventor node for vertex or fragment shader nodes. More...

#include <SoShaderObject.h>

Inheritance diagram for SoShaderObject:
SoFragmentShader SoGeometryShader SoVertexShader

List of all members.

Public Types

enum  SourceType { GLSL_PROGRAM, FILENAME }
 Shader object's source type. More...
enum  SnippetInsertionLocation { AT_BEGIN, AT_END }

Public Member Functions

virtual void GLRender (SoGLRenderAction *action)
 Add this node to element in state.
SoGLShaderObjectgetGLShaderObject ()
 Returns shader object.
virtual SoShader::ShaderType shaderType () const =0
 Returns type of shader.
SourceType getSourceType () const
 Returns shader object's source type.
const SbString & getSourceProgram () const
 Returns shader object's source program.
void scheduleRebuild ()
 Schedule rebuild of underlying OpenGL shader (e.g. due to GL context switch)
SbBool containsMainFunction () const
SbBool isSnippet () const
SbString getSnippetFunctionName () const
SnippetInsertionLocation getSnippetInsertionLocation () const
const SbList< SbString > & getSnippetUniformList () const
SbBool hasSourceModifications () const

Static Public Member Functions

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

Public Attributes

SoSFBool isActive
 Enable / disable shader object.
SoSFEnum sourceType
 Specify shader object's source type.
SoSFString sourceProgram
 Contains the shader object's source or the filename of the source file.

Protected Member Functions

void checkType ()
void readSource ()
 SoShaderObject ()
 Constructor.
virtual ~SoShaderObject ()
 Destructor.

Protected Attributes

SoGLShaderObject_glShaderObject
SourceType _sourceType
SbString _sourceProgram

Detailed Description

Abstract Open Inventor node for vertex or fragment shader nodes.

Definition at line 23 of file SoShaderObject.h.


Member Enumeration Documentation

Enumerator:
AT_BEGIN 
AT_END 

Definition at line 36 of file SoShaderObject.h.

Shader object's source type.

Enumerator:
GLSL_PROGRAM 

OpenGL Shading Language program.

FILENAME 

Filename of source file.

Definition at line 32 of file SoShaderObject.h.


Constructor & Destructor Documentation

SoShaderObject::SoShaderObject ( ) [protected]

Constructor.

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

Destructor.


Member Function Documentation

void SoShaderObject::checkType ( ) [protected]
SbBool SoShaderObject::containsMainFunction ( ) const [inline]

Definition at line 81 of file SoShaderObject.h.

SoGLShaderObject* SoShaderObject::getGLShaderObject ( ) [inline]

Returns shader object.

Definition at line 61 of file SoShaderObject.h.

SbString SoShaderObject::getSnippetFunctionName ( ) const [inline]

Definition at line 89 of file SoShaderObject.h.

SnippetInsertionLocation SoShaderObject::getSnippetInsertionLocation ( ) const [inline]

Definition at line 93 of file SoShaderObject.h.

const SbList<SbString>& SoShaderObject::getSnippetUniformList ( ) const [inline]

Definition at line 97 of file SoShaderObject.h.

const SbString& SoShaderObject::getSourceProgram ( ) const [inline]

Returns shader object's source program.

Definition at line 74 of file SoShaderObject.h.

SourceType SoShaderObject::getSourceType ( ) const [inline]

Returns shader object's source type.

Definition at line 69 of file SoShaderObject.h.

virtual void SoShaderObject::GLRender ( SoGLRenderAction *  action) [virtual]

Add this node to element in state.

SbBool SoShaderObject::hasSourceModifications ( ) const
static void SoShaderObject::initClass ( ) [static]

Initialize class with runtime type system.

Reimplemented in SoFragmentShader, SoGeometryShader, and SoVertexShader.

SbBool SoShaderObject::isSnippet ( ) const [inline]

Definition at line 85 of file SoShaderObject.h.

void SoShaderObject::readSource ( ) [protected]
void SoShaderObject::scheduleRebuild ( )

Schedule rebuild of underlying OpenGL shader (e.g. due to GL context switch)

virtual SoShader::ShaderType SoShaderObject::shaderType ( ) const [pure virtual]

Returns type of shader.

Implemented in SoFragmentShader, SoGeometryShader, and SoVertexShader.


Member Data Documentation

Definition at line 109 of file SoShaderObject.h.

SbString SoShaderObject::_sourceProgram [protected]

Definition at line 112 of file SoShaderObject.h.

Definition at line 111 of file SoShaderObject.h.

Enable / disable shader object.

Definition at line 42 of file SoShaderObject.h.

Contains the shader object's source or the filename of the source file.

Definition at line 48 of file SoShaderObject.h.

Specify shader object's source type.

Definition at line 45 of file SoShaderObject.h.


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