> # 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