> ## Name

> cgGetNamedProgramUniformBuffer - get a program uniform buffer parameter by block name

> ## Synopsis

>     #include <Cg/cg.h>

>     CGparameter cgGetNamedProgramUniformBuffer( CGprogram program,
>                                                 const char * blockName );

> ## Parameters

> program
>   The program from which to retrieve the uniform buffer parameter.
> blockName
>   The block name of the uniform buffer parameter to retrieve.

> ## Return Values

> Returns the uniform buffer parameter with the matching block name from the program.

> Returns NULL if the program has no parameter corresponding to blockName or an error occurs.

> ## Description

> The uniform buffer parameters of a program can be retrieved directly by block name using cgGetNamedProgramUniformBuffer. The block names of the uniform buffer parameters in a program can be discovered by iterating through the program's parameters with cgGetFirstParameter and cgGetNextParameter, calling cgGetUniformBufferBlockName for each uniform buffer parameter in turn.

> ## Examples

> If the file buf.cg contains this shader:

>     uniform myBuf {
>       float4 var;
>     } a : BUFFER;

>     float4 vertex() : POSITION
>     {
>       return float4(a.var.r, a.var.g, a.var.b, 1.0);
>     }

> and if program refers to the CGprogram created from buf.cg, then calling:

>       CGparameter p = cgGetNamedProgramUniformBuffer(program, "myBuf");

> results in p containing the CGparameter associated with variable a.

> ## Errors

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

> CG_INVALID_POINTER_ERROR is generated if blockName is NULL.

> ## History

> cgGetNamedProgramUniformBuffer was introduced in Cg 3.1.

> ## See Also

> cgIsParameter, cgGetFirstParameter, cgGetNextParameter, cgGetUniformBufferBlockName