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

> ## Name

> cgGetUniformBufferBlockName - get block name from a uniform buffer parameter

> ## Synopsis

>     #include <Cg/cg.h>

>     const char * cgGetUniformBufferBlockName( CGparameter param );

> ## Parameters

> param
>   The uniform buffer parameter.

> ## Return Values

> Returns the null-terminated block name string for the uniform buffer parameter.

> Returns NULL if an error occurs.

> ## Description

> cgGetUniformBufferBlockName allows the application to retrieve the block name of a uniform buffer parameter in a Cg program. This name can be used later to retrieve the parameter from the program or effect using cgGetNamedProgramUniformBuffer or cgGetNamedEffectUniformBuffer.

> Declarations of uniform buffers have the form:

>     uniform mustHaveBlockName {
>     ...  content
>     } optionalParameterName  : BUFFER;

> The block name is required while the parameter name is optional. This means that for anonymous uniform buffers (i.e., those without a parameter name) the app cannot retrieve the parameter handle using cgGetNamedParameter. Since the block name is required, however, cgGetUniformBufferBlockName can always be used to retrieve the parameter handle for the uniform block.

> ## 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 the call sequence:

>     CGparameter param = cgGetNamedParameter(program, "a");
>     const char * BlockName = cgGetUniformBufferBlockName(param);

> results in BlockName pointing at the character string "myBuf"

> ## Errors

> CG_INVALID_PARAM_HANDLE_ERROR is generated if param is not a valid parameter.

> CG_INVALID_PARAMETER_TYPE_ERROR is generated if param is not a uniform buffer parameter.

> ## History

> cgGetUniformBufferBlockName was introduced in Cg 3.1.

> ## See Also

> cgGetNamedParameter, cgGetNamedProgramUniformBuffer, cgGetNamedEffectUniformBuffer