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
|