nngxAdd3DCommandNoCacheFlush Function
NNGX_APICALL void NNGX_APIENTRY nngxAdd3DCommandNoCacheFlush(
const GLvoid * bufferaddr,
GLsizei buffersize
);
| Name | Description | |
|---|---|---|
| in | bufferaddr | Pointer to the data region where the 3D commands to add are located. |
| in | buffersize | Size (in bytes) of the 3D commands to add. |
Adds the data (3D commands) in the specified region to the current 3D command buffer.
This function performs the same operations as the nngxAdd3DCommand function when GL_FALSE is specified in copycmd, except that this function does not flush the cache of the region specified by bufferaddr. This function assumes that 1) nngxAdd3DCommand has already been called once for this region, or 2) nngxUpdateBuffer has been explicitly called, or 3) flushing has been made unnecessary in some other way. Operation is not guaranteed if this function is used when this assumption is not true.
A render command request is generated with the region specified by bufferaddr as its execution address and then added to the current command requests. Set buffersize equal to the number of bytes in the 3D command buffer to execute. If unsplit 3D commands have accumulated in the current 3D command buffer, this function calls the nngxSplitDrawCmdlist function and then adds the newly generated render command request. Behavior is not guaranteed if the last command in the specified region is not a split command.
The buffersize argument must be a positive multiple of 16. The bufferaddr argument must be a multiple of 16.
This function generates the following errors.
GL_ERROR_808C_DMP | No command list is currently bound. |
|---|---|
GL_ERROR_808D_DMP | Value specified for buffersize is either 0, or not a multiple of 16. |
GL_ERROR_808E_DMP | The bufferaddr argument is not a multiple of 16. |
GL_ERROR_808F_DMP | The size is insufficient for the current command requests. |
CONFIDENTIAL