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_MAP_READ, CG_MAP_WRITE, CG_MAP_READ_WRITE, CG_MAP_WRITE_DISCARD or CG_MAP_WRITE_NO_OVERWRITE.
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