## Shader.GetShaderParameterType

### Introduced

v7.0

### Description

Returns whether the shader parameter is an input or output parameter and also its type. If the parameter is not connected to a shader, this method returns siUnknownParameterType instead.

### C# Syntax

    Object Shader.GetShaderParameterType( String in_ParameterName );

### Scripting Syntax

    oArray = Shader.GetShaderParameterType( ParameterScriptName );

### Return Value

A two-member Array where item[0] is a Boolean and item[1] is a siShaderParameterType value.
If the parameter is not connected to a shader, this method returns siUnknownParameterType instead.

### Parameters

Parameter | Type | Description
--- | --- | ---
ParameterScriptName | String | Script name of parameter (Parameter.ScriptName).

### Examples

#### JScript Example

    /*
            This example shows how to set up a texture shader on a sphere
            and then get information about one of its parameters.
    */
    // Create an object with a texture shader
    NewScene( null, false );
    var root = Application.ActiveProject.ActiveScene.Root;
    var model = root.AddModel();
    model.name = "MyModel";
    var object = model.AddGeometry( "Sphere", "MeshSurface" );
    BlendInPresets( "Image", object, 1, false );
    CreateProjection( object, siTxtSpherical, siTxtDefaultSpherical, "TxtSupport", "TxtProjection" );
    var filename = Application.InstallationPath( siFactoryPath ) +
            "\\Data\\XSI_SAMPLES\\Pictures\\xsilogo.jpg";
    var imageclip = CreateImageClip( filename, "XSILogo" );
    // Set up the texture space on texture shader
    var mat = object.Material;
    var textureshader = object.Material.CurrentTexture;
    // GetShaderParameterType returns a SafeArray, so convert it to a JS array
    var vbShaderInfo = textureshader.GetShaderParameterType("tex");
    var shaderInfo = vbShaderInfo.toArray();
    Application.LogMessage( shaderInfo[0] );
    Application.LogMessage( ShaderParameterTypeAsText(shaderInfo[1]) );
    // Expected results:
    // INFO : True
    // INFO : siTextureParameterType
    // Convenience function to get a human-readable string
    function ShaderParameterTypeAsText(type)
    {
            switch (type)
            {
                    case siUnknownParameterType : return "siUnknownParameterType";
                    case siBooleanParameterType : return "siBooleanParameterType";
                    case siColorParameterType : return "siColorParameterType";
                    case siDataParameterType : return "siDataParameterType";
                    case siIntegerParameterType : return "siIntegerParameterType";
                    case siLensParameterType : return "siLensParameterType";
                    case siLightParameterType : return "siLightParameterType";
                    case siMaterialParameterType : return "siMaterialParameterType";
                    case siMatrixParameterType : return "siMatrixParameterType";
                    case siModelParameterType : return "siModelParameterType";
                    case siRealTimeParameterType : return "siRealTimeParameterType";
                    case siReferenceParameterType : return "siReferenceParameterType";
                    case siScalarParameterType : return "siScalarParameterType";
                    case siShaderParameterType : return "siShaderParameterType";
                    case siStringParameterType : return "siStringParameterType";
                    case siStructParameterType : return "siStructParameterType";
                    case siTextureParameterType : return "siTextureParameterType";
                    case siTextureSpaceParameterType : return "siTextureSpaceParameterType";
                    case siVectorParameterType : return "siVectorParameterType";
                    default: return type;
            }
    }

### See Also

Shader.GetShaderParameterTargets Shader.GetShaderParameterType Parameter.HasInstanceValue Parameter.SetInstanceValue Parameter.GetInstanceValue Parameter.ScriptName Shader.OutputType