1 #ifndef COIN_SOSHADERPARAMETER_H 2 #define COIN_SOSHADERPARAMETER_H 36 #include <Inventor/nodes/SoNode.h> 37 #include <Inventor/nodes/SoSubNode.h> 38 #include <Inventor/fields/SoSFString.h> 39 #include <Inventor/fields/SoSFFloat.h> 40 #include <Inventor/fields/SoSFInt32.h> 41 #include <Inventor/fields/SoSFVec2f.h> 42 #include <Inventor/fields/SoSFVec3f.h> 43 #include <Inventor/fields/SoSFVec4f.h> 44 #include <Inventor/fields/SoMFFloat.h> 45 #include <Inventor/fields/SoMFInt32.h> 46 #include <Inventor/fields/SoMFVec2f.h> 47 #include <Inventor/fields/SoMFVec3f.h> 48 #include <Inventor/fields/SoMFVec4f.h> 49 #include <Inventor/fields/SoSFMatrix.h> 50 #include <Inventor/fields/SoMFMatrix.h> 51 #include <Inventor/fields/SoSFNode.h> 52 #include <Inventor/fields/SoSFEnum.h> 53 #include <Inventor/fields/SoSFImage.h> 55 #include <Inventor/fields/SoSFVec2i32.h> 56 #include <Inventor/fields/SoSFVec3i32.h> 57 #include <Inventor/fields/SoSFVec4i32.h> 58 #include <Inventor/fields/SoMFVec2i32.h> 59 #include <Inventor/fields/SoMFVec3i32.h> 60 #include <Inventor/fields/SoMFVec4i32.h> 62 class SoGLShaderParameter;
63 class SoGLShaderObject;
82 static void initClass();
92 class SoUniformShaderParameterP;
99 static void initClass(
void);
100 virtual void updateParameter(SoGLShaderObject *shaderObject) = 0;
103 SoUniformShaderParameter();
104 virtual ~SoUniformShaderParameter();
106 SoGLShaderParameter * getGLShaderParameter(
const uint32_t cachecontext);
107 void ensureParameter(SoGLShaderObject * shader);
110 SoUniformShaderParameterP * pimpl;
117 class COIN_DLL_API SoShaderParameter1f :
public SoUniformShaderParameter {
118 typedef SoUniformShaderParameter
inherited;
123 SoShaderParameter1f();
126 static void initClass();
127 virtual void updateParameter(SoGLShaderObject *shaderObject);
130 virtual ~SoShaderParameter1f();
137 class COIN_DLL_API SoShaderParameter1i :
public SoUniformShaderParameter {
138 typedef SoUniformShaderParameter
inherited;
143 SoShaderParameter1i();
146 static void initClass();
147 virtual void updateParameter(SoGLShaderObject *shaderObject);
150 virtual ~SoShaderParameter1i();
157 class COIN_DLL_API SoShaderParameter2f :
public SoUniformShaderParameter {
158 typedef SoUniformShaderParameter
inherited;
163 SoShaderParameter2f();
166 static void initClass();
167 virtual void updateParameter(SoGLShaderObject *shaderObject);
170 virtual ~SoShaderParameter2f();
177 class COIN_DLL_API SoShaderParameter2i :
public SoUniformShaderParameter {
178 typedef SoUniformShaderParameter
inherited;
183 SoShaderParameter2i();
186 static void initClass();
187 virtual void updateParameter(SoGLShaderObject *shaderObject);
190 virtual ~SoShaderParameter2i();
197 class COIN_DLL_API SoShaderParameter3f :
public SoUniformShaderParameter {
198 typedef SoUniformShaderParameter
inherited;
204 SoShaderParameter3f();
207 static void initClass();
208 virtual void updateParameter(SoGLShaderObject *shaderObject);
211 virtual ~SoShaderParameter3f();
218 class COIN_DLL_API SoShaderParameter3i :
public SoUniformShaderParameter {
219 typedef SoUniformShaderParameter
inherited;
225 SoShaderParameter3i();
228 static void initClass();
229 virtual void updateParameter(SoGLShaderObject *shaderObject);
232 virtual ~SoShaderParameter3i();
239 class COIN_DLL_API SoShaderParameter4f :
public SoUniformShaderParameter {
240 typedef SoUniformShaderParameter
inherited;
246 SoShaderParameter4f();
249 static void initClass();
250 virtual void updateParameter(SoGLShaderObject *shaderObject);
253 virtual ~SoShaderParameter4f();
260 class COIN_DLL_API SoShaderParameter4i :
public SoUniformShaderParameter {
261 typedef SoUniformShaderParameter
inherited;
267 SoShaderParameter4i();
270 static void initClass();
271 virtual void updateParameter(SoGLShaderObject *shaderObject);
274 virtual ~SoShaderParameter4i();
281 class COIN_DLL_API SoShaderParameterArray1f :
public SoUniformShaderParameter {
282 typedef SoUniformShaderParameter
inherited;
288 SoShaderParameterArray1f();
291 static void initClass();
292 virtual void updateParameter(SoGLShaderObject *shaderObject);
295 virtual ~SoShaderParameterArray1f();
302 class COIN_DLL_API SoShaderParameterArray1i :
public SoUniformShaderParameter {
303 typedef SoUniformShaderParameter
inherited;
309 SoShaderParameterArray1i();
312 static void initClass();
313 virtual void updateParameter(SoGLShaderObject *shaderObject);
316 virtual ~SoShaderParameterArray1i();
323 class COIN_DLL_API SoShaderParameterArray2f :
public SoUniformShaderParameter {
324 typedef SoUniformShaderParameter
inherited;
330 SoShaderParameterArray2f();
333 static void initClass();
334 virtual void updateParameter(SoGLShaderObject *shaderObject);
337 virtual ~SoShaderParameterArray2f();
343 class COIN_DLL_API SoShaderParameterArray2i :
public SoUniformShaderParameter {
344 typedef SoUniformShaderParameter
inherited;
350 SoShaderParameterArray2i();
353 static void initClass();
354 virtual void updateParameter(SoGLShaderObject *shaderObject);
357 virtual ~SoShaderParameterArray2i();
364 class COIN_DLL_API SoShaderParameterArray3f :
public SoUniformShaderParameter {
365 typedef SoUniformShaderParameter
inherited;
371 SoShaderParameterArray3f();
374 static void initClass();
375 virtual void updateParameter(SoGLShaderObject *shaderObject);
378 virtual ~SoShaderParameterArray3f();
385 class COIN_DLL_API SoShaderParameterArray3i :
public SoUniformShaderParameter {
386 typedef SoUniformShaderParameter
inherited;
392 SoShaderParameterArray3i();
395 static void initClass();
396 virtual void updateParameter(SoGLShaderObject *shaderObject);
399 virtual ~SoShaderParameterArray3i();
406 class COIN_DLL_API SoShaderParameterArray4f :
public SoUniformShaderParameter {
407 typedef SoUniformShaderParameter
inherited;
413 SoShaderParameterArray4f();
416 static void initClass();
417 virtual void updateParameter(SoGLShaderObject *shaderObject);
420 virtual ~SoShaderParameterArray4f();
428 class COIN_DLL_API SoShaderParameterArray4i :
public SoUniformShaderParameter {
429 typedef SoUniformShaderParameter
inherited;
435 SoShaderParameterArray4i();
438 static void initClass();
439 virtual void updateParameter(SoGLShaderObject *shaderObject);
442 virtual ~SoShaderParameterArray4i();
449 class COIN_DLL_API SoShaderParameterMatrix :
public SoUniformShaderParameter {
450 typedef SoUniformShaderParameter
inherited;
456 SoShaderParameterMatrix();
459 static void initClass();
460 virtual void updateParameter(SoGLShaderObject *shaderObject);
463 virtual ~SoShaderParameterMatrix();
470 class COIN_DLL_API SoShaderParameterMatrixArray :
public SoUniformShaderParameter {
471 typedef SoUniformShaderParameter
inherited;
477 SoShaderParameterMatrixArray();
480 static void initClass();
481 virtual void updateParameter(SoGLShaderObject *shaderObject);
484 virtual ~SoShaderParameterMatrixArray();
491 class COIN_DLL_API SoShaderStateMatrixParameter :
public SoUniformShaderParameter {
492 typedef SoUniformShaderParameter
inherited;
504 enum MatrixTransform{
514 SoShaderStateMatrixParameter();
515 virtual ~SoShaderStateMatrixParameter();
517 static void initClass(
void);
518 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:45
The SoMFFloat class is a container for floating point values.This field is used where nodes...
Definition: SoMFFloat.h:39
The SoMFVec2i32 class is a container for SbVec2i32 vectors.This field is used where nodes...
Definition: SoMFVec2i32.h:40
#define SO_NODE_HEADER(classname)
The SoMFVec3i32 class is a container for SbVec3i32 vectors.This field is used where nodes...
Definition: SoMFVec3i32.h:40
The SoMFVec4i32 class is a container for SbVec4i32 vectors.This field is used where nodes...
Definition: SoMFVec4i32.h:40
The SoSFVec4f class is a container for an SbVec4f vector.This field is used where nodes...
Definition: SoSFVec4f.h:40
The SoSFVec2i32 class is a container for an SbVec2i32 vector.This field is used where nodes...
Definition: SoSFVec2i32.h:40
The SoSFVec3i32 class is a container for an SbVec3i32 vector.This field is used where nodes...
Definition: SoSFVec3i32.h:40
The SoMFInt32 class is a container for 32-bit integer values.This field is used where nodes...
Definition: SoMFInt32.h:39
The SoSFVec4i32 class is a container for an SbVec4i32 vector.This field is used where nodes...
Definition: SoSFVec4i32.h:40
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:40
The SoSFVec2f class is a container for an SbVec2f vector.This field is used where nodes...
Definition: SoSFVec2f.h:40
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:40
The SoNode class is the base class for nodes used in scene graphs.Coin is a retained mode 3D visualiz...
Definition: SoNode.h:56
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:40
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:40
The SoSFInt32 class is a container for a 32-bit integer value.This field is used where nodes...
Definition: SoSFInt32.h:39
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:40
The SoSFFloat class is a container for a floating point value.This field is used where nodes...
Definition: SoSFFloat.h:39
The SoSFVec3f class is a container for an SbVec3f vector.This field is used where nodes...
Definition: SoSFVec3f.h:40
Definition: SoShaderParameter.h:73
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:40
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:40
#define SO_NODE_ABSTRACT_HEADER(classname)