MeVisLabToolboxReference
MeVisLab/Standard/Sources/Inventor/SoShader/Inventor/elements/SoGLShaderProgramElement.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 
00006 
00007 
00008 #ifndef  _SO_GL_SHADER_PROGRAM_ELEMENT_
00009 #define  _SO_GL_SHADER_PROGRAM_ELEMENT_
00010 
00011 #include "SoShaderSystem.h"
00012 #include <Inventor/elements/SoReplacedElement.h>
00013 
00014 class SoGLShaderProgram;
00015 
00017 class INVENTOR_SHADER_API SoGLShaderProgramElement : public SoReplacedElement
00018 {
00019    typedef SoReplacedElement inherited;
00020 
00021    SO_ELEMENT_HEADER(SoGLShaderProgramElement);
00022   
00023    public:
00024 
00026       virtual void init(SoState *state);
00027   
00029       static  void set(SoState *state, SoNode *node, SoGLShaderProgram *glShaderProgram);
00031       static  SoGLShaderProgram *get(SoState *state);
00032 
00034       virtual void push(SoState *state);
00035       virtual void pop(SoState *state, const SoElement *prevTopElement);
00036 
00037    SoINTERNAL public:
00038   
00040       static void initClass();
00041   
00042    protected:
00043 
00045       virtual ~SoGLShaderProgramElement();
00046 
00047       SoGLShaderProgram  *_glShaderProgram;
00048 };
00049 
00050 #endif  // _SO_GL_SHADER_PROGRAM_ELEMENT_