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>
53class SoGLShaderParameter;
54class SoGLShaderObject;
73 static void initClass();
83class 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;
108class 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();
128class 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();
148class 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();
168class 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();
188class 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();
209class 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();
230class 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();
251class 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();
272class 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();
293class 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();
314class 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();
334class 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();
355class 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();
376class 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();
397class 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();
419class 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();
440class 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();
461class 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();
482class 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 SoMFFloat class is a container for floating point values.
Definition SoMFFloat.h:30
The SoMFInt32 class is a container for 32-bit integer values.
Definition SoMFInt32.h:30
The SoMFMatrix class is a container for SbMatrix values.
Definition SoMFMatrix.h:31
The SoMFVec2f class is a container for SbVec2f vectors.
Definition SoMFVec2f.h:31
The SoMFVec2i32 class is a container for SbVec2i32 vectors.
Definition SoMFVec2i32.h:31
The SoMFVec3f class is a container for SbVec3f vectors.
Definition SoMFVec3f.h:31
The SoMFVec3i32 class is a container for SbVec3i32 vectors.
Definition SoMFVec3i32.h:31
The SoMFVec4f class is a container for SbVec4f vectors.
Definition SoMFVec4f.h:31
The SoMFVec4i32 class is a container for SbVec4i32 vectors.
Definition SoMFVec4i32.h:31
The SoNode class is the base class for nodes used in scene graphs.
Definition SoNode.h:47
The SoSFEnum class is a container for an enum value.
Definition SoSFEnum.h:31
The SoSFFloat class is a container for a floating point value.
Definition SoSFFloat.h:30
The SoSFInt32 class is a container for a 32-bit integer value.
Definition SoSFInt32.h:30
The SoSFMatrix class is a container for an SbMatrix.
Definition SoSFMatrix.h:31
The SoSFString class is a container for an SbString.
Definition SoSFString.h:31
The SoSFVec2f class is a container for an SbVec2f vector.
Definition SoSFVec2f.h:31
The SoSFVec2i32 class is a container for an SbVec2i32 vector.
Definition SoSFVec2i32.h:31
The SoSFVec3f class is a container for an SbVec3f vector.
Definition SoSFVec3f.h:31
The SoSFVec3i32 class is a container for an SbVec3i32 vector.
Definition SoSFVec3i32.h:31
The SoSFVec4f class is a container for an SbVec4f vector.
Definition SoSFVec4f.h:31
The SoSFVec4i32 class is a container for an SbVec4i32 vector.
Definition SoSFVec4i32.h:31
Definition SoShaderParameter.h:64
#define SO_NODE_ABSTRACT_HEADER(classname)
Definition macros.dox:54
#define SO_NODE_HEADER(classname)
Definition macros.dox:43