NAME

cgMapBuffer - map buffer into application's address space

SYNOPSIS

  #include <Cg/cg.h>

  void * cgMapBuffer( CGbuffer buffer,
                      CGbufferaccess access );

PARAMETERS

buffer

The buffer which will be mapped into the application's address space.

access

An enumerant indicating the operations the client may perform on the data store through the pointer while the buffer data is mapped.

The following enumerants are allowed:

CG_MAP_READ

The application can read but not write through the data pointer.

CG_MAP_WRITE

The application can write but not read through the data pointer.

CG_MAP_READ_WRITE

The application can read and write through the data pointer.

CG_MAP_WRITE_DISCARD

Same as CG_MAP_READ_WRITE if using a GL buffer.

CG_MAP_WRITE_NO_OVERWRITE

Same as CG_MAP_READ_WRITE if using a GL buffer.

RETURN VALUES

Returns a pointer through which the application can read or write the buffer's data store.

Returns NULL if an error occurs.

DESCRIPTION

cgMapBuffer maps a buffer into the application's address space for memory-mapped updating of the buffer's data. The application should call cgUnmapBuffer|cgUnmapBuffer when it's done updating or querying the buffer.

EXAMPLES

    unsigned char *bufferPtr = cgMapBuffer( myBuffer, CG_MAP_READ_WRITE );
    memcpy( ptr, bufferPtr, size );
    cgUnmapBuffer( myBuffer );
        

ERRORS

CG_INVALID_BUFFER_HANDLE_ERROR is generated if buffer is not a valid buffer.

CG_INVALID_ENUMERANT_ERROR is generated if access is not CG_READ_ONLY, CG_WRITE_ONLY, or CG_READ_WRITE.

CG_BUFFER_ALREADY_MAPPED_ERROR is generated if buffer is already mapped.

HISTORY

cgMapBuffer was introduced in Cg 2.0.

SEE ALSO

cgUnmapBuffer, cgSetBufferData, cgSetBufferSubData, cgSetParameter