NAME
    cgCreateBuffer - create a buffer object managed by the runtime

SYNOPSIS
      #include <Cg/cg.h>

      CGbuffer cgCreateBuffer( CGcontext context,
                               int size,
                               const void *data,
                               CGbufferusage bufferUsage );

PARAMETERS
    context The context to which the new buffer will be added.

    size    The length in bytes of the buffer to create.

    data    Pointer to inital buffer data. NULL will fill the buffer with
            zero.

    bufferUsage
            Indicates the intended usage method of the buffer.

            Can be one of the following types:

            * CG_BUFFER_USAGE_STREAM_DRAW
            * CG_BUFFER_USAGE_STREAM_READ
            * CG_BUFFER_USAGE_STREAM_COPY
            * CG_BUFFER_USAGE_STATIC_DRAW
            * CG_BUFFER_USAGE_STATIC_READ
            * CG_BUFFER_USAGE_STATIC_COPY
            * CG_BUFFER_USAGE_DYNAMIC_DRAW
            * CG_BUFFER_USAGE_DYNAMIC_READ
            * CG_BUFFER_USAGE_DYNAMIC_COPY
RETURN VALUES
    Returns a CGbuffer handle on success.

    Returns NULL if an error occurs.

DESCRIPTION
    cgCreateBuffer creates a runtime managed Cg buffer object.

    There is no way to query the 3D API-specific resource for a managed
    buffer. cgGLCreateBuffer should be used if the application wishes to
    later query the 3D API-specific resource for the buffer.

EXAMPLES
      CGbuffer myBuffer = cgCreateBuffer( myCgContext, sizeof( float ) * 16,
                                          initalData, CG_BUFFER_USAGE_STATIC_DRAW );
        
ERRORS
    CG_INVALID_CONTEXT_HANDLE_ERROR is generated if context is not a valid
    context.

HISTORY
    cgCreateBuffer was introduced in Cg 2.0.

SEE ALSO
    cgGLCreateBuffer, cgDestroyBuffer

