MeVisLabToolboxReference
|
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_