NAME
    cgSetParameterSettingMode - set the parameter setting mode for a context

SYNOPSIS
      #include <Cg/cg.h>

      void cgSetParameterSettingMode( CGcontext context,
                                      CGenum parameterSettingMode );

PARAMETERS
    context The context in which to set the parameter setting mode.

    parameterSettingMode
            The mode to which context will be set. Must be one of the
            following :

            * CG_IMMEDIATE_PARAMETER_SETTING
            * CG_DEFERRED_PARAMETER_SETTING
RETURN VALUES
    None.

DESCRIPTION
    cgSetParameterSettingMode controls the behavior of the context when
    setting parameters. With deferred parameter setting, the corresponding
    3D API parameter is not immediately updated by cgSetParameter commands.
    If the application does not need to access these 3D API parameter
    values, then this mode allows improved performance by avoiding
    unnecessary 3D API calls.

    When the parameter setting mode is CG_DEFERRED_PARAMETER_SETTING,
    non-erroneous cgSetParameter commands record the updated parameter value
    but do not immediately update the corresponding 3D API parameter.
    Instead the parameter is marked internally as *update deferred*. The 3D
    API commands required to update any program parameters marked *update
    deferred* are performed as part of the next program bind (see
    cgGLBindProgram, cgD3D9BindProgram, or cgD3D8BindProgram).

    If a context's parameter setting mode was CG_DEFERRED_PARAMETER_SETTING
    and one or more parameters are marked *update deferred*, changing the
    parameter setting mode to CG_IMMEDIATE_PARAMETER_SETTING does not cause
    parameters marked *update deferred* to be updated. The application can
    use cgUpdateProgramParameters to force the updating of parameters marked
    *update deferred*.

    parameterSettingMode must be one of the following enumerants :

    * CG_IMMEDIATE_PARAMETER_SETTING
        Non-erroneous cgSetParameter commands immediately update the
        corresponding 3D API parameter. This is the default mode.

    * CG_DEFERRED_PARAMETER_SETTING
        Non-erroneous cgSetParameter commands record the updated parameter
        value but do not immediately update the corresponding 3D API
        parameter. These updates will happen during the next program bind.
        The updates can be explicitly forced to occur by using
        cgUpdateProgramParameters.

EXAMPLES
    *to-be-written*

ERRORS
    CG_INVALID_CONTEXT_HANDLE_ERROR is generated if context is not a valid
    context.

    CG_INVALID_ENUMERANT_ERROR is generated if parameterSettingMode is not
    CG_IMMEDIATE_PARAMETER_SETTING or CG_DEFERRED_PARAMETER_SETTING.

HISTORY
    cgSetParameterSettingMode was introduced in Cg 2.0.

SEE ALSO
    cgGetParameterSettingMode, cgUpdateProgramParameters, cgSetParameter,
    cgGLBindProgram, cgD3D9BindProgram, cgD3D8BindProgram

