25#ifndef _SO_SHADER_PARAMETER_H_
26#define _SO_SHADER_PARAMETER_H_
65#include <Inventor/renderer/RendererResourceMacro.h>
69class SoGLShaderObject ;
155 static void initClass() ;
156 static void exitClass() ;
158 SbBool isInternal()
const;
322 static void initClass() ;
323 static void exitClass() ;
326 virtual void notify(SoNotList *list);
342#if 1 SoDEPRECATED enum
437 static void initClass() ;
438 static void exitClass() ;
503 static void initClass() ;
504 static void exitClass() ;
569 static void initClass() ;
570 static void exitClass() ;
635 static void initClass() ;
636 static void exitClass() ;
701 static void initClass() ;
702 static void exitClass() ;
767 static void initClass() ;
768 static void exitClass() ;
834 static void initClass() ;
835 static void exitClass() ;
900 static void initClass() ;
901 static void exitClass() ;
968 static void initClass() ;
969 static void exitClass() ;
1036 static void initClass() ;
1037 static void exitClass() ;
1104 static void initClass() ;
1105 static void exitClass() ;
1172 static void initClass() ;
1173 static void exitClass() ;
1240 static void initClass() ;
1241 static void exitClass() ;
1309 static void initClass() ;
1310 static void exitClass() ;
1378 static void initClass() ;
1379 static void exitClass() ;
1449 static void initClass() ;
1450 static void exitClass() ;
1523 static void initClass() ;
1524 static void exitClass() ;
1593 static void initClass() ;
1594 static void exitClass() ;
1665 static void initClass() ;
1666 static void exitClass() ;
1796 static void initClass() ;
1797 static void exitClass() ;
1918 virtual void doAction(
SoAction *action);
1926 static void initClass();
1927 static void exitClass();
1929 static SbBool areVertexAttribFuncAvailable();
1930 static SbBool areVertexAttribDivisorFuncAvailable();
1932 void getVertexAttribIndex(
SoState * state,
int& firstInd,
int&
size);
1934 virtual size_t getVertexAttribOffset(
int) {
return 0; }
1935 virtual const char * getVertexAttribPtr(
int i=0) = 0;
1936 virtual size_t getVertexAttribStride() = 0;
1937 virtual int getVertexAttribNum() = 0;
1938 virtual GLenum getVertexAttribType() = 0;
1939 virtual int getVertexAttribSize() = 0;
1940 virtual SbBool getVertexAttribIsToNormalize() = 0;
1941 virtual unsigned int getVertexAttribDivisor() {
return 0; }
2004 static void initClass();
2005 static void exitClass();
2007 virtual const char * getVertexAttribPtr(
int ) {
return (
char *)
value.
getValues(0); }
2009 virtual int getVertexAttribNum() {
return value.
getNum(); }
2010 virtual GLenum getVertexAttribType();
2011 virtual int getVertexAttribSize() {
return 1; }
2012 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2071 static void initClass();
2072 static void exitClass();
2074 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2076 virtual int getVertexAttribNum() {
return value.
getNum(); }
2077 virtual GLenum getVertexAttribType();
2078 virtual int getVertexAttribSize() {
return 1; }
2079 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2138 static void initClass();
2139 static void exitClass();
2141 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2143 virtual int getVertexAttribNum() {
return value.
getNum(); }
2144 virtual GLenum getVertexAttribType();
2145 virtual int getVertexAttribSize() {
return 2; }
2146 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2205 static void initClass();
2206 static void exitClass();
2208 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2210 virtual int getVertexAttribNum() {
return value.
getNum(); }
2211 virtual GLenum getVertexAttribType();
2212 virtual int getVertexAttribSize() {
return 2; }
2213 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2272 static void initClass();
2273 static void exitClass();
2275 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2277 virtual int getVertexAttribNum() {
return value.
getNum(); }
2278 virtual GLenum getVertexAttribType();
2279 virtual int getVertexAttribSize() {
return 3; }
2280 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2339 static void initClass();
2340 static void exitClass();
2342 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2344 virtual int getVertexAttribNum() {
return value.
getNum(); }
2345 virtual GLenum getVertexAttribType();
2346 virtual int getVertexAttribSize() {
return 3; }
2347 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2406 static void initClass();
2407 static void exitClass();
2409 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2411 virtual int getVertexAttribNum() {
return value.
getNum(); }
2412 virtual GLenum getVertexAttribType();
2413 virtual int getVertexAttribSize() {
return 4; }
2414 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2485 static void initClass();
2486 static void exitClass();
2488 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2490 virtual int getVertexAttribNum() {
return value.
getNum(); }
2491 virtual GLenum getVertexAttribType();
2492 virtual int getVertexAttribSize() {
return 4; }
2564 static void initClass();
2565 static void exitClass();
2567 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2569 virtual int getVertexAttribNum() {
return value.
getNum(); }
2570 virtual GLenum getVertexAttribType();
2571 virtual int getVertexAttribSize() {
return 4; }
2643 static void initClass();
2644 static void exitClass();
2646 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2648 virtual int getVertexAttribNum() {
return value.
getNum(); }
2649 virtual GLenum getVertexAttribType();
2650 virtual int getVertexAttribSize() {
return 4; }
2722 static void initClass();
2723 static void exitClass();
2725 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2727 virtual int getVertexAttribNum() {
return value.
getNum(); }
2728 virtual GLenum getVertexAttribType();
2729 virtual int getVertexAttribSize() {
return 4; }
2802 static void initClass();
2803 static void exitClass();
2805 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2807 virtual int getVertexAttribNum() {
return value.
getNum(); }
2808 virtual GLenum getVertexAttribType();
2809 virtual int getVertexAttribSize() {
return 4; }
2882 static void initClass();
2883 static void exitClass();
2885 virtual const char * getVertexAttribPtr(
int) {
return (
char *)
value.
getValues(0); }
2887 virtual int getVertexAttribNum() {
return value.
getNum(); }
2888 virtual GLenum getVertexAttribType();
2889 virtual int getVertexAttribSize() {
return 4; }
2952 virtual void doAction(
SoAction *action);
2955 static void initClass();
2956 static void exitClass();
2958 virtual const char * getVertexAttribPtr(
int i=0);
2959 virtual size_t getVertexAttribStride() {
return sizeof(
SbMat); }
2960 virtual int getVertexAttribNum() {
return value.
getNum(); }
2961 virtual GLenum getVertexAttribType();
2962 virtual int getVertexAttribSize() {
return 4; }
2963 virtual SbBool getVertexAttribIsToNormalize() {
return FALSE; }
2974 SbMat * m_columnMajorOrderMatrices;
2975 int m_matricesNumber;
2976 void storeColumnMajorOrderMatrices(
int startIndex);
3066 virtual void doAction(
SoAction *action);
3070 static void initClass();
3071 static void exitClass();
3073 virtual size_t getVertexAttribOffset(
int) {
return (
size_t)
offset.
getValue(); }
3074 virtual const char* getVertexAttribPtr(
int);
3076 virtual size_t getVertexAttribStride();
3077 virtual int getVertexAttribNum();
3078 virtual GLenum getVertexAttribType();
#define FALSE
Possible value of SbBool.
#define SO_NODE_ABSTRACT_HEADER(className)
#define SO_NODE_HEADER(className)
Abstract base class for all actions.
Performs a generic traversal of a scene graph or path.
Renders a scene graph using Open Inventor's Render Engine.
Computes bounding box of a scene.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Counts number of...
Multiple-value field containing any number of floating point values.
const float * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of int32_t integers.
Multiple-value field containing any number of 4x4 matrices.
Multiple-value field containing any number of short integers.
virtual size_t getValueSize() const
Get size of the value.
const short * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Multiple-value field containing any number of two-dimensional vectors.
virtual size_t getValueSize() const
Get size of the value.
const SbVec2f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Multiple-value field containing any number of two-dimensional vectors.
Multiple-value field containing any number of two-dimensional vectors.
const SbVec2s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of three-dimensional vectors.
const SbVec3f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Multiple-value f...
Multiple-value field containing any number of three-dimensional vectors.
const SbVec3s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of four-dimensional vectors.
const SbVec4b * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of four-dimensional vectors.
virtual size_t getValueSize() const
Get size of the value.
const SbVec4f * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Multiple-value f...
virtual size_t getValueSize() const
Get size of the value.
const SbVec4i32 * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Multiple-value field containing any number of four-dimensional vectors.
virtual size_t getValueSize() const
Get size of the value.
const SbVec4s * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Multiple-value field containing any number of four-dimensional vectors.
virtual size_t getValueSize() const
Get size of the value.
const SbVec4ub * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
Multiple-value field containing any number of four-dimensional vectors.
const SbVec4ui32 * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
virtual size_t getValueSize() const
Get size of the value.
Multiple-value field containing any number of four-dimensional vectors.
virtual size_t getValueSize() const
Get size of the value.
const SbVec4us * getValues(int start) const
Returns a pointer into the array of values in the field, starting at index start.
int getNum() const
Returns the number of values currently in the field.
Abstract base class for all database nodes.
Intersects objects with a ray cast into scene.
Field containing a single Boolean value.
SbBool getValue() const
Returns this field's value.
Field containing an enumerated value.
Field containing a floating-point value.
Field containing a int32_t integer.
int32_t getValue() const
Returns this field's value.
Field containing a 3x3 matrix.
Field containing a 4x4 matrix.
Field containing a string.
Field containing a two-dimensional vector.
Field containing a two-dimensional vector.
Field containing a three-dimensional vector.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Field containing...
Field containing a homogeneous three-dimensional vector.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Field containing...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract node cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFFloat value
Specifies the parameter's value.
SoShaderParameter1f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
Equality operator.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFInt32 value
Specifies the parameter's value.
SoShaderParameter1i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter2f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec2f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter2i()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec2i32 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFVec3f value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameter3f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec3i32 value
Specifies the parameter's value.
SoShaderParameter3i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameter4f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFVec4f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoSFVec4i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameter4i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFFloat value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray1f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray1i()
Constructor.
SoMFInt32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFVec2f value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray2f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray2i()
Constructor.
SoMFVec2i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray3f()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec3f value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoMFVec3i32 value
Specifies the parameter's value.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderParameterArray3i()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec4f value
Specifies the parameter's value.
SoShaderParameterArray4f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterArray4i()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFVec4i32 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
SoSFString name
Specifies the parameter's string name which is declared and used within high-level shading programs.
SoSFInt32 identifier
Specifies the parameter's integer name which is declared and used within low-level shading programs.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
SoShaderParameterMatrix3()
Constructor.
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFMatrix3 value
Specifies the parameter's value.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoMFMatrix value
Specifies the parameter's value.
SoShaderParameterMatrixArray()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoSFMatrix value
Specifies the parameter's value.
SoShaderParameterMatrix()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Shader program p...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Uniform shader p...
virtual bool isEqual(const SoUniformShaderParameter *param) const
SoShaderStateMatrixParameter()
Constructor.
SoSFEnum matrixType
Specifies the type of the state matrix.
MatrixTransform
Matrix transformation possible values.
@ IDENTITY
The state matrix is unchanged (default).
@ INVERSE
Invert the state matrix.
@ INVERSE_TRANSPOSE
Invert the transposed state matrix.
@ TRANSPOSE
Transpose the state matrix.
MatrixType
Matrix type possible values.
@ MODELVIEW_PROJECTION
The state matrix is the modelview projection matrix (default value).
@ MODELVIEW
The state matrix is the modelview matrix.
@ TEXTURE
The state matrix is the current texture matrix.
@ PROJECTION
The state matrix is the the projection matrix.
SoSFEnum matrixTransform
Specifies the transformation to be applied to the state matrix.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter1f()
Constructor.
SoMFFloat value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter1s()
Constructor.
SoMFShort value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter2f()
Constructor.
SoMFVec2f value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec2s value
Specifies the parameter's values.
SoVertexShaderParameter2s()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec3f value
Specifies the parameter's values.
SoVertexShaderParameter3f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec3s value
Specifies the parameter's values.
SoVertexShaderParameter3s()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4b value
Specifies the parameter's values.
SoVertexShaderParameter4b()
Constructor.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4f value
Specifies the parameter's values.
SoVertexShaderParameter4f()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4i()
Constructor.
SoMFVec4i32 value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4s()
Constructor.
SoMFVec4s value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoVertexShaderParameter4ub()
Constructor.
SoMFVec4ub value
Specifies the parameter's values.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4ui()
Constructor.
SoMFVec4ui32 value
Specifies the parameter's values.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFVec4us value
Specifies the parameter's values.
SoSFBool rangeScaling
Indicates if values shall be scaled to a normalized range when they are loaded.
SoVertexShaderParameter4us()
Constructor.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoSFInt32 stride
Specifies the byte offset between consecutive generic vertex parameter.
SoSFBufferObject value
Specifies the parameter's values.
SoVertexShaderParameterBufferObject()
Constructor.
SoSFInt32 components
Specifies the number of components per generic vertex parameter.
SoSFEnum type
Specifies the data type from the class SbDataType of each generic vertex parameter component.
SoSFBool shouldBeNormalized
Specifies if the fixed-point data in the buffer object should be normalized when they are accessed.
SoSFInt32 offset
Offset in bytes to the first parameter within the buffer.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Vertex shader pa...
SoMFMatrix value
Specifies the parameter's values.
SoVertexShaderParameterMatrix()
Constructor.