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>nngxAddBlockImageCopyCommand</title>
8  </head>
9  <body>
10<h1><CODE>nngxAddBlockImageCopyCommand</CODE> Function</h1>
11<h2>Syntax</h2>
12    <div class="section">
13      <pre class="definition">
14NNGX_APICALL void NNGX_APIENTRY nngxAddBlockImageCopyCommand(
15     const GLvoid * srcaddr,
16     GLsizei srcunit,
17     GLsizei srcinterval,
18     GLvoid * dstaddr,
19     GLsizei dstunit,
20     GLsizei dstinterval,
21     GLsizei totalsize
22);
23</pre>
24    </div>
25<h2>Arguments</h2>
26    <div class="section">
27      <table class="arguments">
28        <thead>
29          <tr>
30            <td width="15" />
31<th>Name</th>
32<td>Description</td>
33          </tr>
34        </thead>
35        <tr>
36<td>in</td>
37<th>srcaddr</th>
38<td>Transfer source start address.</td>
39        </tr>
40        <tr>
41<td>in</td>
42<th>srcunit</th>
43<td>Transfer source read unit size (in bytes)</td>
44        </tr>
45        <tr>
46<td>in</td>
47<th>srcinterval</th>
48<td>Transfer source skip size (in bytes)</td>
49        </tr>
50        <tr>
51<td>out</td>
52<th>dstaddr</th>
53<td>Transfer destination start address.</td>
54        </tr>
55        <tr>
56<td>in</td>
57<th>dstunit</th>
58<td>Transfer destination write unit size (in bytes)</td>
59        </tr>
60        <tr>
61<td>in</td>
62<th>dstinterval</th>
63<td>Transfer destination skip size (in bytes)</td>
64        </tr>
65        <tr>
66<td>in</td>
67<th>totalsize</th>
68<td>Total transfer size in bytes (multiple of 16)</td>
69        </tr> </table>
70    </div>
71<h2>Return Values</h2>
72<div class="section">There is no return value. </div>
73<h2>Description</h2>
74    <div class="section">
75<p>Adds a block image transfer command.</p><P>
76This function can copy images between the rendering buffer and a texture buffer. This function’s distinguishing feature is its ability to transfer a specified amount of data with a specified skip size. This allows you to cut a region out of the original image or fit an image into a partial region of the target image.
77            </P><P>
78The <SPAN class="argument">srcaddr</SPAN> argument specifies the start address of the transfer source. The <SPAN class="argument">dstaddr</SPAN> argument specifies the start address of the transfer destination. Both <SPAN class="argument">srcaddr</SPAN> and <SPAN class="argument">dstaddr</SPAN> must be 16-byte aligned.
79            </P><P>
80The total number of bytes to transfer is specified by <SPAN class="argument">totalsize</SPAN>. The <SPAN class="argument">totalsize</SPAN> argument must be a multiple of 16.
81            </P><P>
82The <SPAN class="argument">srcunit</SPAN> and <SPAN class="argument">srcinterval</SPAN> arguments specify the transfer source read unit size and skip size in bytes. The function first reads and transfers the number of bytes specified in <SPAN class="argument">srcunit</SPAN>. It then skips the number of bytes specified in <SPAN class="argument">srcinterval</SPAN>, which moves the read address forward and omits that many bytes from the transfer. The function repeats this process. The function completes after transfering the number of bytes specified in <SPAN class="argument">totalsize</SPAN>. If <SPAN class="argument">srcinterval</SPAN> is <CODE>0</CODE>, this function reads and transfers a continuous region of <SPAN class="argument">totalsize</SPAN> bytes. For any other <SPAN class="argument">srcinterval</SPAN> value, data is alternatively read and skipped. This allows you to transfer partial regions from the original image.
83            </P><P>
84The transferred data is written <SPAN class="argument">dstunit</SPAN> bytes at a time with a skip size of <SPAN class="argument">dstinterval</SPAN> bytes. The function writes the number of bytes of transferred data specified in <SPAN class="argument">dstunit</SPAN>. It then skips the write address forward by the number of bytes specified in <SPAN class="argument">dstinterval</SPAN>. The function repeats this process. The function completes after the number of transferred bytes reaches the value specified in <SPAN class="argument">totalsize</SPAN>. If <SPAN class="argument">dstinterval</SPAN> is <CODE>0</CODE>, this function writes a continuous region of <SPAN class="argument">totalsize</SPAN> bytes. For any other <SPAN class="argument">dstinterval</SPAN> value, data is alternatively written and skipped. This allows you to paste an image into a partial region of the target image.
85            </P><P>
86The <SPAN class="argument">srcunit</SPAN>, <SPAN class="argument">srcinterval</SPAN>, <SPAN class="argument">dstunit</SPAN>, and <SPAN class="argument">dstinterval</SPAN> arguments must be a multiple of 16. You cannot specify values of <CODE>0x100000</CODE> or higher. In addition, you cannot specify negative values.
87            </P><P>
88The following errors occur with this function.
89<TABLE><TR><TH><CODE>GL_ERROR_8074_DMP</CODE></TH><TD>0 is bound to the current command list or the command request queue is full.</TD></TR><TR><TH><CODE>GL_ERROR_8075_DMP</CODE></TH><TD><SPAN class="argument">srcaddr</SPAN> or <SPAN class="argument">dstaddr</SPAN> is not 16-byte aligned.</TD></TR><TR><TH><CODE>GL_ERROR_8076_DMP</CODE></TH><TD>The <SPAN class="argument">totalsize</SPAN> argument is not a multiple of 16.</TD></TR><TR><TH><CODE>GL_ERROR_8077_DMP</CODE></TH><TD>The <SPAN class="argument">srcunit</SPAN>, <SPAN class="argument">srcinterval</SPAN>, <SPAN class="argument">dstunit</SPAN>, or <SPAN class="argument">dstinterval</SPAN> argument values are invalid.</TD></TR></TABLE></P><P>
90When you set this function’s arguments to transfer a block image from a rendering buffer: 1) the image’s starting address is at its upper-left corner, and 2) when the block size is 8 the data is placed in 8x8 pixel blocks. For more details about block formats, see the section on the native PICA format in the DMPGL 2.0 Specifications.
91            </P></div>
92<h2>Revision History</h2>
93    <div class="section">
94      <dl class="history">
95        <dt>2010/09/15</dt>
96<dd>Initial version.<br />
97        </dd>
98      </dl>
99    </div>
100  <hr><p>CONFIDENTIAL</p></body>
101</html>