## siShaderParameterDataType

### Introduced

v9.0 (2011)

### Description

Defines the Shader parameter type for a Parameter object belonging to Shader, Material, Light or Camera. Shader parameter types only apply to parameters that support the siTexturable capability. This can be tested using the Parameter.Capabilities property. The output type of a shader can be checked using the Shader.OutputType property.
Note: Each data type, apart from siShaderDataTypeUnknown, has also an equivalent string name that can be used to create shader parameter definitions using type strings, instead of this enum. Custom port types can't be registered using those built-in string names. The string names are shown in brackets after each type's description.

### C# Syntax

    siShaderParameterDataType.siShaderDataTypeUnknown                           // -1
    siShaderParameterDataType.siShaderDataTypeBoolean                           // 0
    siShaderParameterDataType.siShaderDataTypeInteger                           // 1
    siShaderParameterDataType.siShaderDataTypeScalar                            // 2
    siShaderParameterDataType.siShaderDataTypeVector2                           // 3
    siShaderParameterDataType.siShaderDataTypeVector3                           // 4
    siShaderParameterDataType.siShaderDataTypeVector4                           // 5
    siShaderParameterDataType.siShaderDataTypeQuaternion                        // 6
    siShaderParameterDataType.siShaderDataTypeMatrix33                          // 7
    siShaderParameterDataType.siShaderDataTypeMatrix44                          // 8
    siShaderParameterDataType.siShaderDataTypeColor3                            // 9
    siShaderParameterDataType.siShaderDataTypeColor4                            // 10
    siShaderParameterDataType.siShaderDataTypeString                            // 11
    siShaderParameterDataType.siShaderDataTypeProperty                          // 16
    siShaderParameterDataType.siShaderDataTypeProfileCurve                      // 17
    siShaderParameterDataType.siShaderDataTypeGradient                          // 18
    siShaderParameterDataType.siShaderDataTypeLightProfile                      // 19
    siShaderParameterDataType.siShaderDataTypeReference                         // 32
    siShaderParameterDataType.siShaderDataTypeImage                             // 33
    siShaderParameterDataType.siShaderDataTypeCustom                            // 48
    siShaderParameterDataType.siShaderDataTypeStructure                         // 64
    siShaderParameterDataType.siShaderDataTypeArray                             // 65

Constant | Value | Description
--- | --- | ---
siShaderDataTypeArray | 65 | An array container ["array"]
siShaderDataTypeBoolean | 0 | A boolean value ["boolean"]
siShaderDataTypeColor3 | 9 | A 3-scalar component color value (red, green, and blue) ["color3"]
siShaderDataTypeColor4 | 10 | A 4-scalar component color value (red, green, blue, and alpha) ["color4"]
siShaderDataTypeCustom | 48 | Custom data type. Used with the siShaderCustomDataType shader definition attribute. ["custom"]
siShaderDataTypeGradient | 18 | A color gradient ["gradient"]
siShaderDataTypeImage | 33 | An image input (texture map) ["image"]
siShaderDataTypeInteger | 1 | A signed integer value ["integer"]
siShaderDataTypeLightProfile | 19 | A light profile parameter ["lightprofile"]
siShaderDataTypeMatrix33 | 7 | A 9-scalar component matrix value ["matrix33"]
siShaderDataTypeMatrix44 | 8 | A 16-scalar component matrix value ["matrix44"]
siShaderDataTypeProfileCurve | 17 | A profile curve (scalar fcurve) ["fcurve"].
siShaderDataTypeProperty | 16 | A property lookup parameter. Used with the siShaderPropertyFilterType shader definition attribute. ["property"]
siShaderDataTypeQuaternion | 6 | A 4-scalar component quaternion value ["quaternion"]
siShaderDataTypeReference | 32 | A reference input. Used with the siShaderReferenceFilterType shader definition attribute. ["reference"]
siShaderDataTypeScalar | 2 | A scalar (floating point) value ["scalar"]
siShaderDataTypeString | 11 | A string value ["string"]
siShaderDataTypeStructure | 64 | A strucure container ["structure"]
siShaderDataTypeUnknown | -1 | Not a known type
siShaderDataTypeVector2 | 3 | A 2-scalar component vector value ["vector2"]
siShaderDataTypeVector3 | 4 | A 3-scalar component vector value ["vector3"]
siShaderDataTypeVector4 | 5 | A 4-scalar component vector value ["vector4"]

### Applies To

ShaderParamDef.DataType ShaderParameter.DataType ShaderParamDefContainer.AddArrayParamDef ShaderParamDefContainer.AddParamDef ShaderParamDef::GetDataType ShaderParameter::GetDataType ShaderParamDefContainer::AddArrayParamDef ShaderParamDefContainer::AddParamDef

### See Also

XSIApplication.RegisterShaderCustomParameterType Application::RegisterShaderCustomParameterType