cgD3D9SetUniform
Keywords: cgD3D9SetUniform, NVIDIA, NVIDIA Cg Toolkit, Cg Toolkit, Shader, Shader Programming, GPU Shader Programming, GPU Program

> ## Name

> cgD3D9SetUniform - set the value of a uniform parameter

> ## Synopsis

>     #include <Cg/cgD3D9.h>

>     HRESULT cgD3D9SetUniform( CGparameter param,
>                               const void * values );

> ## Parameters

> param
>   The parameter whose values are to be set. param must be a uniform parameter that is not a sampler.
> values
>   The values to which to set param. The amount of data required depends on the type of parameter, but is always specified as an array of one or more floating point values. The type is void* so a compatible user-defined structure can be passed in without type-casting. Use cgD3D9TypeToSize to determine how many values are required for a particular type.

> ## Return Values

> Returns D3D_OK if the function succeeds.

> Returns the D3D failure code if the function fails due to a D3D call.

> ## Description

> cgD3D9SetUniform sets the value for a uniform parameter. All values should be of type float. There is assumed to be enough values to set all elements of the parameter.

> ## Examples

>     // param is a CGparameter handle of type float3
>     // matrixParam is a CGparameter handle of type float2x3
>     // arrayParam is a CGparameter handle of type float2x2[3]
>     ...
>     // intialize the data for each parameter
>     D3DXVECTOR3 paramData(1,2,3);
>     float matrixData[2][3] =
>     {
>         0,1,2,
>         3,4,5
>     };
>     float arrayData[3][2][2] =
>     {
>         0,1,
>         2,3,
>         4,5,
>         6,7,
>         8,9,
>         0,1
>     };
>     ...
>     // set the parameters
>     cgD3D9SetUniform(param, paramData);
>     cgD3D9SetUniform(matrixParam, matrixData);
>     // you can use arrays, but you must set the entire array
>     cgD3D9SetUniform(arrayParam, arrayData);

> ## Errors

> cgD3D9Failed is generated if a D3D function returns an error.

> CGD3D9ERR_NODEVICE is returned if a required D3D device is NULL. This usually occurs when an expanded interface routine is called but a D3D device has not been set with cgD3D9SetDevice.

> CGD3D9ERR_NOTLOADED is returned if program was not loaded with the cgD3D9LoadProgram.

> CGD3D9ERR_NOTUNIFORM is returned if param is not a uniform parameter.

> CGD3D9ERR_INVALIDPARAM is returned if the parameter fails to set for any other reason.

> ## History

> cgD3D9SetUniform was introduced in Cg 1.1.

> ## See Also

> cgD3D9SetUniformArray, cgD3D9SetUniformMatrix, cgD3D9SetUniformMatrixArray, cgD3D9TypeToSize