1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xml:lang="en-US" lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
3  <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5    <meta http-equiv="Content-Style-Type" content="text/css" />
6    <link rel="stylesheet" href="../css/manpage.css" type="text/css" />
7<title>nngxFilterBlockImage</title>
8  </head>
9  <body>
10<h1><CODE>nngxFilterBlockImage</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14NNGX_APICALL void NNGX_APIENTRY nngxFilterBlockImage(
15     const GLvoid * srcaddr,
16     GLvoid * dstaddr,
17     GLsizei width,
18     GLsizei height,
19     GLenum format
20);
21</pre>
22    </div>
23<h2>Arguments</h2>
24    <div class="section">
25      <table class="arguments">
26        <thead>
27          <tr>
28            <td width="15" />
29<th>Name</th>
30<td>Description</td>
31          </tr>
32        </thead>
33        <tr>
34<td>in</td>
35<th>srcaddr</th>
36<td>Transfer source block image address.</td>
37        </tr>
38        <tr>
39<td>in</td>
40<th>dstaddr</th>
41<td>Transfer destination address.</td>
42        </tr>
43        <tr>
44<td>in</td>
45<th>width</th>
46<td>Transfer source image width.</td>
47        </tr>
48        <tr>
49<td>in</td>
50<th>height</th>
51<td>Transfer source image height.</td>
52        </tr>
53        <tr>
54<td>in</td>
55<th>format</th>
56<td>Block image pixel format.</td>
57        </tr> </table>
58    </div>
59<h2>Return Values</h2>
60<div class="section">There is no return value. </div>
61<h2>Description</h2>
62    <div class="section">
63<p>Issues a command request to antialias-filter and transfer a block image.</p><P>
64These antialias-filter and transfer command requests for block images accumulate in the current command list. <I>Block images</I> 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 <SPAN class="argument">srcaddr</SPAN> to the address specified in <SPAN class="argument">dstaddr</SPAN> while applying a 2x2 antialias filter. The <SPAN class="argument">srcaddr</SPAN> and <SPAN class="argument">dstaddr</SPAN> addresses must be 8-byte aligned. For <SPAN class="argument">width</SPAN> and <SPAN class="argument">height</SPAN>, specify the dimensions of the transfer source image in pixels.
65            </P><P>
66For <SPAN class="argument">format</SPAN>, specify one of the following pixel formats.
67<TABLE><TR><TH>GL_RGBA8_OES</TH><TD>RGBA8888, 32-bit</TD></TR><TR><TH>GL_RGB8_OES</TH><TD>RGB888, 24-bit</TD></TR><TR><TH>GL_RGBA4</TH><TD>RGBA4444, 16-bit</TD></TR><TR><TH>GL_RGB5_A1</TH><TD>RGBA5551, 16-bit</TD></TR><TR><TH>GL_RGB565</TH><TD>RGB565, 16-bit</TD></TR></TABLE></P><P>
68Depending on the <SPAN class="argument">format</SPAN>, there are restrictions on the possible settings for <SPAN class="argument">width</SPAN> and <SPAN class="argument">height</SPAN>. These are shown in the table below.
69<TABLE><TR><TD><B>format</B></TD><TD><B>width</B></TD><TD><B>height</B></TD></TR><TR><TD>GL_RGBA8_OES, GL_RGB8_OES</TD><TD>Must be a value of 64 or larger and a multiple of 64</TD><TD>Must be a value of 64 or larger and a multiple of 16</TD></TR><TR><TD>GL_RGBA4, GL_RGB5_A1, GL_RGB565</TD><TD>Must be a value of 128 or larger and a multiple of 128</TD><TD>Must be a value of 128 or larger and a multiple of 16</TD></TR></TABLE></P><P>
70<CODE>srcaddr</CODE> and <CODE>dstaddr</CODE> 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.
71            </P><P>
72If the transfer origin and destination regions overlap, the process will behave normally if <CODE>srcaddr</CODE> is equal in size or larger than <CODE>dstaddr</CODE>. If <CODE>srcaddr</CODE> is smaller than <CODE>dstaddr</CODE>, the transfer result might be corrupted.<br />If the data of either <CODE>srcaddr</CODE> or <CODE>dstaddr</CODE> is stored in device memory and will be directly referenced and edited by the CPU, then you will need to use the <CODE>nngxUpdateBuffer</CODE> function to flush the cache before executing the transfer command.
73            </P><P>
74The following errors occur with this function.
75<TABLE><TR><TH>GL_ERROR_8068_DMP</TH><TD>0 is bound to the current command list, or the command request queue size is insufficient.</TD></TR><TR><TH>GL_ERROR_8069_DMP</TH><TD><SPAN class="argument">srcaddr</SPAN> or <SPAN class="argument">dstaddr</SPAN> is not 8-byte aligned.</TD></TR><TR><TH>GL_ERROR_806A_DMP</TH><TD><SPAN class="argument">width</SPAN> or <SPAN class="argument">height</SPAN> violate the restrictions imposed upon them by the specified <SPAN class="argument">format</SPAN>.</TD></TR><TR><TH>GL_ERROR_806B_DMP</TH><TD>The <SPAN class="argument">format</SPAN> argument is set to an invalid value.</TD></TR></TABLE></P></div>
76<h2>Revision History</h2>
77    <div class="section">
78      <dl class="history">
79        <dt>2011/12/08</dt>
80<dd>Corrected a mistake regarding the restriction on values that can be set for <CODE>height</CODE> (changed &quot;multiple of 8&quot; to &quot;multiple of 16&quot;).
81        </dd>
82        <dt>2011/06/21</dt>
83<dd>Added mention of restrictions on the values for <CODE>srcaddr</CODE> and <CODE>dstaddr</CODE>.<br />
84        </dd>
85        <dt>2011/06/17</dt>
86<dd>Added text about the impact of the relationship between the values for <CODE>srcaddr</CODE> and <CODE>dstaddr</CODE>.<br />
87        </dd>
88        <dt>2010/06/09</dt>
89<dd>Initial version.<br />
90        </dd>
91      </dl>
92    </div>
93  <hr><p>CONFIDENTIAL</p></body>
94</html>
95