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 any 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

