> # NAME

> cgGetParameterOrdinalNumber - get a program parameter's ordinal number

> # SYNOPSIS

>       #include <Cg/cg.h>

>       int cgGetParameterOrdinalNumber( CGparameter param );

> # PARAMETERS

> param

>   The program parameter.

> # RETURN VALUES

> Returns the ordinal number associated with a parameter. If the parameter is a constant (cgGetParameterVariability returns CG_CONSTANT) then 0 is returned and no error is generated.

> When cgGetParameterOrdinalNumber is passed an array, the ordinal number of the first array element is returned. When passed a struct, the ordinal number of first struct data member is returned.

> # DESCRIPTION

> cgGetParameterOrdinalNumber returns an integer that represents the order in which the parameter was declared within the Cg program.

> Ordinal numbering begins at zero, starting with a program's first local leaf parameter. The subsequent local leaf parameters are enumerated in turn, followed by the program's global leaf parameters.

> # EXAMPLES

> The following Cg program:

>        struct MyStruct { float a; sampler2D b; };
>        float globalvar1;
>        float globalvar2
>        float4 main(float2 position : POSITION,
>                    float4 color    : COLOR,
>                    uniform MyStruct mystruct,
>                    float2 texCoord : TEXCOORD0) : COLOR
>        {
>          /* etc ... */
>        }

> Would result in the following parameter ordinal numbering:

>        position    -> 0
>        color       -> 1
>        mystruct.a  -> 2
>        mystruct.b  -> 3
>        texCoord    -> 4
>        globalvar1  -> 5
>        globalvar2  -> 6

> # ERRORS

> CG_INVALID_PARAM_HANDLE_ERROR is generated if param is not a valid parameter.

> # HISTORY

> cgGetParameterOrdinalNumber was introduced in Cg 1.1.

> # SEE ALSO

> cgGetParameterVariability