> # NAME

> cgSetProgramBuffer - set a buffer for a program

> # SYNOPSIS

>       #include <Cg/cg.h>

>       void cgSetProgramBuffer( CGprogram program,
>                                int bufferIndex,
>                                CGbuffer buffer );

> # PARAMETERS

> program

>   The program for which the buffer will be set.

> bufferIndex

>   The buffer index of program to which buffer will be bound.

> buffer

>   The buffer to be bound.

> # RETURN VALUES

> None.

> # DESCRIPTION

> cgSetProgramBuffer sets the buffer for a given buffer index of a program. A NULL buffer handle means the given buffer index should not be bound to a buffer.

> bufferIndex must be non-negative and within the program's range of buffer indices. For OpenGL programs, bufferIndex can be 0 to 11. For Direct3D10 programs, bufferIndex can be 0 to 15.

> When the next program bind operation occurs, each buffer index which is set to a valid buffer handle is bound (along with the program) for use by the 3D API. No buffer bind operation occurs for buffer indices bound to a NULL buffer handle.

> # EXAMPLES

> cgSetProgramBuffer( myProgram, 2, myBuffer );

> # ERRORS

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

> CG_INVALID_BUFFER_HANDLE_ERROR is generated if buffer is not a valid buffer.

> CG_BUFFER_INDEX_OUT_OF_RANGE_ERROR is generated if bufferIndex is not within the valid range of buffer indices for program.

> # HISTORY

> cgSetProgramBuffer was introduced in Cg 2.0.

> # SEE ALSO

> cgCreateBuffer, cgGetProgramBuffer, cgGLBindProgram, cgD3D9BindProgram, cgD3D8BindProgram