nngxFilterBlockImage Function
NNGX_APICALL void NNGX_APIENTRY nngxFilterBlockImage(
const GLvoid * srcaddr,
GLvoid * dstaddr,
GLsizei width,
GLsizei height,
GLenum format
);
| Name | Description | |
|---|---|---|
| in | srcaddr | Transfer source block image address. |
| in | dstaddr | Transfer destination address. |
| in | width | Transfer source image width. |
| in | height | Transfer source image height. |
| in | format | Block image pixel format. |
Issues a command request to antialias-filter and transfer a block image.
These antialias-filter and transfer command requests for block images accumulate in the current command list. Block images are either rendered images or PICA native format textures that are in 8-block addressing format. This operation transfers the image from the address specified in srcaddr to the address specified in dstaddr while applying a 2x2 antialias filter. The srcaddr and dstaddr addresses must be 8-byte aligned. For width and height, specify the dimensions of the transfer source image in pixels.
For format, specify one of the following pixel formats.
| GL_RGBA8_OES | RGBA8888, 32-bit |
|---|---|
| GL_RGB8_OES | RGB888, 24-bit |
| GL_RGBA4 | RGBA4444, 16-bit |
| GL_RGB5_A1 | RGBA5551, 16-bit |
| GL_RGB565 | RGB565, 16-bit |
Depending on the format, there are restrictions on the possible settings for width and height. These are shown in the table below.
| format | width | height |
| GL_RGBA8_OES, GL_RGB8_OES | Must be a value of 64 or larger and a multiple of 64 | Must be a value of 64 or larger and a multiple of 8 |
| GL_RGBA4, GL_RGB5_A1, GL_RGB565 | Must be a value of 128 or larger and a multiple of 128 | Must be a value of 128 or larger and a multiple of 8 |
srcaddr and dstaddr must be stored in device memory or in VRAM. If they are not stored in these regions, the Development/Debug builds will stop on an assertion and the Release build will quit without the addition of a transfer command.
If the transfer origin and destination regions overlap, the process will behave normally if srcaddr is equal in size or larger than dstaddr. If srcaddr is smaller than dstaddr, the transfer result might be corrupted.
If the data of either srcaddr or dstaddr is stored in device memory and will be directly referenced and edited by the CPU, then you will need to use the nngxUpdateBuffer function to flush the cache before executing the transfer command.
The following errors occur with this function.
| GL_ERROR_8068_DMP | 0 is bound to the current command list, or the command request queue size is insufficient. |
|---|---|
| GL_ERROR_8069_DMP | srcaddr or dstaddr is not 8-byte aligned. |
| GL_ERROR_806A_DMP | width or height violate the restrictions imposed upon them by the specified format. |
| GL_ERROR_806B_DMP | The format argument is set to an invalid value. |
srcaddr and dstaddr.srcaddr and dstaddr.CONFIDENTIAL