> ## Name

> cgUpdateProgramParameters - update the 3D API state for deferred parameters

> ## Synopsis

>     #include <Cg/cg.h>

>     void cgUpdateProgramParameters( CGprogram program );

> ## Parameters

> program
>   The program for which deferred parameters will be sent to the corresponding 3D API parameters.

> ## Return Values

> None.

> ## Description

> cgUpdateProgramParameters performs the appropriate 3D API commands to set the 3D API resources for all of program's parameters that are marked update deferred and clears the update deferred state of these parameters. cgUpdateProgramParameters does nothing when none of program's parameters are marked update deferred.

> cgUpdateProgramParameters assumes the specified program has already been bound using the appropriate 3D API commands. Results are undefined if the program is not actually bound by the 3D API when cgUpdateProgramParameters is called, with the likely result being that the 3D API state for program's parameters will be mis-loaded.

> ## Examples

>     /* assumes cgGetProgramContext(program) == context */

>     if (cgGetParameterSettingMode(context) == CG_DEFERRED_PARAMETER_SETTING) {
>       cgUpdateProgramParameters(program);
>     }

> ## Errors

> CG_INVALID_PROGRAM_HANDLE_ERROR is generated if program is not a valid program handle.

> ## History

> cgUpdateProgramParameters was introduced in Cg 2.0.

> ## See Also

> cgSetParameterSettingMode, cgGetParameterSettingMode, cgUpdatePassParameters, cgSetParameter, cgGLBindProgram, cgD3D9BindProgram