1 #ifndef COIN_SOSHADERPARAMETER_H 
    2 #define COIN_SOSHADERPARAMETER_H 
   27 #include <Inventor/nodes/SoNode.h> 
   28 #include <Inventor/nodes/SoSubNode.h> 
   29 #include <Inventor/fields/SoSFString.h> 
   30 #include <Inventor/fields/SoSFFloat.h> 
   31 #include <Inventor/fields/SoSFInt32.h> 
   32 #include <Inventor/fields/SoSFVec2f.h> 
   33 #include <Inventor/fields/SoSFVec3f.h> 
   34 #include <Inventor/fields/SoSFVec4f.h> 
   35 #include <Inventor/fields/SoMFFloat.h> 
   36 #include <Inventor/fields/SoMFInt32.h> 
   37 #include <Inventor/fields/SoMFVec2f.h> 
   38 #include <Inventor/fields/SoMFVec3f.h> 
   39 #include <Inventor/fields/SoMFVec4f.h> 
   40 #include <Inventor/fields/SoSFMatrix.h> 
   41 #include <Inventor/fields/SoMFMatrix.h> 
   42 #include <Inventor/fields/SoSFNode.h> 
   43 #include <Inventor/fields/SoSFEnum.h> 
   44 #include <Inventor/fields/SoSFImage.h> 
   46 #include <Inventor/fields/SoSFVec2i32.h> 
   47 #include <Inventor/fields/SoSFVec3i32.h> 
   48 #include <Inventor/fields/SoSFVec4i32.h> 
   49 #include <Inventor/fields/SoMFVec2i32.h> 
   50 #include <Inventor/fields/SoMFVec3i32.h> 
   51 #include <Inventor/fields/SoMFVec4i32.h> 
   53 class SoGLShaderParameter;
 
   54 class SoGLShaderObject;
 
   73   static void initClass();
 
   83 class SoUniformShaderParameterP;
 
   90   static void initClass(
void);
 
   91   virtual void updateParameter(SoGLShaderObject *shaderObject) = 0;
 
   94   SoUniformShaderParameter();
 
   95   virtual ~SoUniformShaderParameter();
 
   97   SoGLShaderParameter * getGLShaderParameter(
const uint32_t cachecontext);
 
   98   void ensureParameter(SoGLShaderObject * shader);
 
  101   SoUniformShaderParameterP * pimpl;
 
  108 class COIN_DLL_API SoShaderParameter1f : 
public SoUniformShaderParameter {
 
  109   typedef SoUniformShaderParameter inherited;
 
  114   SoShaderParameter1f();
 
  117   static void initClass();
 
  118   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  121   virtual ~SoShaderParameter1f();
 
  128 class COIN_DLL_API SoShaderParameter1i : 
public SoUniformShaderParameter {
 
  129   typedef SoUniformShaderParameter inherited;
 
  134   SoShaderParameter1i();
 
  137   static void initClass();
 
  138   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  141   virtual ~SoShaderParameter1i();
 
  148 class COIN_DLL_API SoShaderParameter2f : 
public SoUniformShaderParameter {
 
  149   typedef SoUniformShaderParameter inherited;
 
  154   SoShaderParameter2f();
 
  157   static void initClass();
 
  158   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  161   virtual ~SoShaderParameter2f();
 
  168 class COIN_DLL_API SoShaderParameter2i : 
public SoUniformShaderParameter {
 
  169   typedef SoUniformShaderParameter inherited;
 
  174   SoShaderParameter2i();
 
  177   static void initClass();
 
  178   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  181   virtual ~SoShaderParameter2i();
 
  188 class COIN_DLL_API SoShaderParameter3f : 
public SoUniformShaderParameter {
 
  189   typedef SoUniformShaderParameter inherited;
 
  195   SoShaderParameter3f();
 
  198   static void initClass();
 
  199   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  202   virtual ~SoShaderParameter3f();
 
  209 class COIN_DLL_API SoShaderParameter3i : 
public SoUniformShaderParameter {
 
  210   typedef SoUniformShaderParameter inherited;
 
  216   SoShaderParameter3i();
 
  219   static void initClass();
 
  220   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  223   virtual ~SoShaderParameter3i();
 
  230 class COIN_DLL_API SoShaderParameter4f : 
public SoUniformShaderParameter {
 
  231   typedef SoUniformShaderParameter inherited;
 
  237   SoShaderParameter4f();
 
  240   static void initClass();
 
  241   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  244   virtual ~SoShaderParameter4f();
 
  251 class COIN_DLL_API SoShaderParameter4i : 
public SoUniformShaderParameter {
 
  252   typedef SoUniformShaderParameter inherited;
 
  258   SoShaderParameter4i();
 
  261   static void initClass();
 
  262   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  265   virtual ~SoShaderParameter4i();
 
  272 class COIN_DLL_API SoShaderParameterArray1f : 
public SoUniformShaderParameter {
 
  273   typedef SoUniformShaderParameter inherited;
 
  279   SoShaderParameterArray1f();
 
  282   static void initClass();
 
  283   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  286   virtual ~SoShaderParameterArray1f();
 
  293 class COIN_DLL_API SoShaderParameterArray1i : 
public SoUniformShaderParameter {
 
  294   typedef SoUniformShaderParameter inherited;
 
  300   SoShaderParameterArray1i();
 
  303   static void initClass();
 
  304   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  307   virtual ~SoShaderParameterArray1i();
 
  314 class COIN_DLL_API SoShaderParameterArray2f : 
public SoUniformShaderParameter {
 
  315   typedef SoUniformShaderParameter inherited;
 
  321   SoShaderParameterArray2f();
 
  324   static void initClass();
 
  325   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  328   virtual ~SoShaderParameterArray2f();
 
  334 class COIN_DLL_API SoShaderParameterArray2i : 
public SoUniformShaderParameter {
 
  335   typedef SoUniformShaderParameter inherited;
 
  341   SoShaderParameterArray2i();
 
  344   static void initClass();
 
  345   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  348   virtual ~SoShaderParameterArray2i();
 
  355 class COIN_DLL_API SoShaderParameterArray3f : 
public SoUniformShaderParameter {
 
  356   typedef SoUniformShaderParameter inherited;
 
  362   SoShaderParameterArray3f();
 
  365   static void initClass();
 
  366   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  369   virtual ~SoShaderParameterArray3f();
 
  376 class COIN_DLL_API SoShaderParameterArray3i : 
public SoUniformShaderParameter {
 
  377   typedef SoUniformShaderParameter inherited;
 
  383   SoShaderParameterArray3i();
 
  386   static void initClass();
 
  387   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  390   virtual ~SoShaderParameterArray3i();
 
  397 class COIN_DLL_API SoShaderParameterArray4f : 
public SoUniformShaderParameter {
 
  398   typedef SoUniformShaderParameter inherited;
 
  404   SoShaderParameterArray4f();
 
  407   static void initClass();
 
  408   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  411   virtual ~SoShaderParameterArray4f();
 
  419 class COIN_DLL_API SoShaderParameterArray4i : 
public SoUniformShaderParameter {
 
  420   typedef SoUniformShaderParameter inherited;
 
  426   SoShaderParameterArray4i();
 
  429   static void initClass();
 
  430   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  433   virtual ~SoShaderParameterArray4i();
 
  440 class COIN_DLL_API SoShaderParameterMatrix : 
public SoUniformShaderParameter {
 
  441   typedef SoUniformShaderParameter inherited;
 
  447   SoShaderParameterMatrix();
 
  450   static void initClass();
 
  451   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  454   virtual ~SoShaderParameterMatrix();
 
  461 class COIN_DLL_API SoShaderParameterMatrixArray : 
public SoUniformShaderParameter {
 
  462   typedef SoUniformShaderParameter inherited;
 
  468   SoShaderParameterMatrixArray();
 
  471   static void initClass();
 
  472   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
  475   virtual ~SoShaderParameterMatrixArray();
 
  482 class COIN_DLL_API SoShaderStateMatrixParameter : 
public SoUniformShaderParameter {
 
  483   typedef SoUniformShaderParameter inherited;
 
  495   enum MatrixTransform{
 
  505   SoShaderStateMatrixParameter();
 
  506   virtual ~SoShaderStateMatrixParameter();
 
  508   static void initClass(
void);
 
  509   virtual void updateParameter(SoGLShaderObject *shaderObject);
 
The SoBase class is the top-level superclass for a number of class-hierarchies.SoBase provides the ba...
Definition: SoBase.h:36
The SoMFFloat class is a container for floating point values.This field is used where nodes...
Definition: SoMFFloat.h:30
The SoMFVec2i32 class is a container for SbVec2i32 vectors.This field is used where nodes...
Definition: SoMFVec2i32.h:31
#define SO_NODE_HEADER(classname)
The SoMFVec3i32 class is a container for SbVec3i32 vectors.This field is used where nodes...
Definition: SoMFVec3i32.h:31
The SoMFVec4i32 class is a container for SbVec4i32 vectors.This field is used where nodes...
Definition: SoMFVec4i32.h:31
The SoSFVec4f class is a container for an SbVec4f vector.This field is used where nodes...
Definition: SoSFVec4f.h:31
The SoSFVec2i32 class is a container for an SbVec2i32 vector.This field is used where nodes...
Definition: SoSFVec2i32.h:31
The SoSFVec3i32 class is a container for an SbVec3i32 vector.This field is used where nodes...
Definition: SoSFVec3i32.h:31
The SoMFInt32 class is a container for 32-bit integer values.This field is used where nodes...
Definition: SoMFInt32.h:30
The SoSFVec4i32 class is a container for an SbVec4i32 vector.This field is used where nodes...
Definition: SoSFVec4i32.h:31
The SoSFString class is a container for an SbString.This field is used where nodes, engines or other field containers needs to store a single string. 
Definition: SoSFString.h:31
The SoSFVec2f class is a container for an SbVec2f vector.This field is used where nodes...
Definition: SoSFVec2f.h:31
The SoMFVec4f class is a container for SbVec4f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with four elements. 
Definition: SoMFVec4f.h:31
The SoNode class is the base class for nodes used in scene graphs.Coin is a retained mode 3D visualiz...
Definition: SoNode.h:47
The SoSFEnum class is a container for an enum value.This field is used where nodes, engines or other field containers needs to store one particular value out of an enumerated set. 
Definition: SoSFEnum.h:31
The SoMFVec2f class is a container for SbVec2f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with two elements. 
Definition: SoMFVec2f.h:31
The SoSFInt32 class is a container for a 32-bit integer value.This field is used where nodes...
Definition: SoSFInt32.h:30
The SoMFMatrix class is a container for SbMatrix values.This field is used where nodes, engines or other field containers needs to store matrices. 
Definition: SoMFMatrix.h:31
The SoSFFloat class is a container for a floating point value.This field is used where nodes...
Definition: SoSFFloat.h:30
The SoSFVec3f class is a container for an SbVec3f vector.This field is used where nodes...
Definition: SoSFVec3f.h:31
Definition: SoShaderParameter.h:64
The SoSFMatrix class is a container for an SbMatrix.This field is used where nodes, engines or other field containers needs to store a 4x4 matrix. 
Definition: SoSFMatrix.h:31
The SoMFVec3f class is a container for SbVec3f vectors.This field is used where nodes, engines or other field containers needs to store an array of vectors with three elements. 
Definition: SoMFVec3f.h:31
#define SO_NODE_ABSTRACT_HEADER(classname)