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    <style type="text/css"><!--
8      span.static_style
9      {
10        font-size			: 8pt;
11        color				: white;
12        font-weight			: bold;
13        background			: #44f;
14        border-left			: solid 1px #aaf;
15        border-top			: solid 1px #aaf;
16        border-right		: solid 1px #00c;
17        border-bottom		: solid 1px #00c;
18        padding-left		: 2px;
19        padding-right		: 2px;
20      }
21
22      span.virtual_style
23      {
24        font-size			 : 8pt;
25        color				 : white;
26        font-weight			: bold;
27        background			: #0a0;
28        border-left			: solid 1px #0f0;
29        border-top			: solid 1px #0f0;
30        border-right		: solid 1px #060;
31        border-bottom		: solid 1px #060;
32        padding-left		: 2px;
33        padding-right		: 2px;
34      }
35
36      span.protected_style
37      {
38        font-size			 : 8pt;
39        color				 : white;
40        font-weight			: bold;
41        background			: #444;
42        border-left			: solid 1px #ccc;
43        border-top			: solid 1px #ccc;
44        border-right		: solid 1px #222;
45        border-bottom		: solid 1px #222;
46        padding-left		: 2px;
47        padding-right		: 2px;
48      }
49        --></style>
50    <title>gx Raw </title>
51  </head>
52  <body>
53    <h1><CODE>gx Raw</CODE> </h1>
54    <h2>Description</h2>
55    <div class="section">
56      <p>This is the directly specified command list version of the DMPGL system API.</p><p>
57            The <CODE>gx Raw</CODE> API is a group of functions that enable the command list-related controls of the <CODE>gx</CODE> API to be processed in the form of directly specified command list objects.
58            </p><p>
59            With the existing <CODE>gx</CODE> API, command list processing adheres to OpenGL style rules: you specify the IDs for objects allocated in the library and use them in a bound form. The code for the use of command lists looks something like this:
60            </p><code><pre>
61// For saving the command list ID
62GLuint s_MyCmdListId;
63
64{
65    // Prepare a new command list
66    nngxGenCmdlists(1, &s_MyCmdListId);
67
68    nngxBindCmdlist(s_MyCmdListId);
69    nngxCmdlistStorage(MY_CMDLIST_BUFFER_SIZE, MY_CMDLIST_NUM_REQUESTS);
70    nngxClearCmdlist();
71}
72
73{
74    // Run the command list
75    nngxBindCmdlist(s_MyCmdListId);
76    nngxRunCmdlist();
77}
78
79{
80    // Destroy the command list
81    nngxDeleteCmdlists(1, &s_MyCmdListId);
82}
83            </pre></code><p>
84            In contrast, with this <CODE>gx Raw</CODE> function group, the definition of the <CODE>nngxCommandList</CODE> structure that maintains command list management information is provided, and the various functions are called with a pointer to an object of this type given as the first argument. In this case, the code for performing the same kind of process as above looks something like this:
85            </p><code><pre>
86// Allocate command list object
87nngxCommandList s_MyCmdListObj;
88
89{
90    // Prepare a new command list
91    GLsizei reqSize;
92    GLvoid* pCmdBuffer;
93    GLvoid* pReqBuffer;
94
95    // The application allocates the required buffer region
96    reqSize = nngxGetCommandRequestSizeRaw(MY_CMDLIST_NUM_REQUESTS);
97    pCmdBuffer = MyAlloc(MY_CMDLIST_BUFFER_SIZE);
98    pReqBuffer = MyAlloc(reqSize);
99
100    nngxCmdlistStorageRaw(&s_MyCmdListObj, pCmdBuffer, MY_CMDLIST_BUFFER_SIZE, pReqBuffer, reqSize);
101    nngxClearCmdlistRaw(&s_MyCmdListObj);
102}
103
104{
105    // Run the command list
106    nngxRunCmdlistRaw(&s_MyCmdListObj);
107}
108
109// No need to explicitly destroy the command list
110            </pre></code><p>
111            Although this requires that the application take complete responsibility for managing the allocating and deallocating of objects and buffer regions, it gives you more freedom to build a framework that is not dependent on the state inside the library.
112            </p><p>
113            The provided APIs are named like the existing functions but with &quot;Raw&quot; appended to the end of the name, and with the added parameter of the pointer to <CODE>nngxCommandList</CODE>. As long as there are no special descriptions, you can read details about behavior and errors by reading the references for the existing functions. (Wherever the reference says &quot;the current command list,&quot; replace it with &quot;the command list specified by <CODE>nngxCommandList</CODE>.&quot;))
114            </p><h4><B>Note:</B> </h4><ul><li>Because the <CODE>gl</CODE> and <CODE>gd</CODE> APIs operate on the presumption that the command list is bound inside the library,  you cannot use those functions in combination with the <CODE>gx Raw</CODE> API. It is assumed the <CODE>gx Raw</CODE> API will be used mainly in combination with the <CODE>gr</CODE> API.</li><li>For the sake of internal implementation, you cannot use copies of <CODE>nngxCommandList</CODE> objects.</li><li>Behavior is not guaranteed if you use normal <CODE>gx</CODE> command list processing functions in combination with <CODE>gx Raw</CODE> functions. However, the following functions are exceptions in that they can be used at the same time as the <CODE>gx Raw</CODE> functions.</li><ul><li><a href="../nn_gx/nngxWaitCmdlistDone.html"><CODE>nngxWaitCmdlistDone</CODE></a></li><li><a href="../nn_gx/nngxSetTimeout.html"><CODE>nngxSetTimeout</CODE></a></li><li><a href="../nn_gx/nngxGetIsRunning.html"><CODE>nngxGetIsRunning</CODE></a></li></ul></ul></div>
115    <a name="struct" id="struct">
116      <h2>Structures</h2>
117      <div class="section">
118        <table class="members">
119          <tr>
120            <th>
121              <a href="../nngxCommandList/Overview.html"><CODE>nngxCommandList</CODE> </a>
122            </th>
123            <td>The structure that maintains command list information.</td>
124          </tr> </table>
125      </div>
126    </a> <a name="function" id="function">
127      <h2>Functions</h2>
128      <div class="section">
129        <table class="members">
130          <tr>
131            <th class="category" colspan="3">Command List Execution Control</th>
132          </tr>
133          <tr>
134            <td width="100">  </td>
135            <th>
136              <a href="../nn_gx_raw/nngxCmdlistStorageRaw.html"><CODE>nngxCmdlistStorageRaw</CODE> </a>
137            </th>
138            <td>Allocates the data region for the specified command list.</td>
139          </tr>
140          <tr>
141            <td width="100">  </td>
142            <th>
143              <a href="../nn_gx_raw/nngxGetCommandRequestSizeRaw.html"><CODE>nngxGetCommandRequestSizeRaw</CODE> </a>
144            </th>
145            <td>Calculates and returns the size of the buffer needed for storing the command list queue data.</td>
146          </tr>
147          <tr>
148            <td width="100">  </td>
149            <th>
150              <a href="../nn_gx_raw/nngxSplitDrawCmdlistRaw.html"><CODE>nngxSplitDrawCmdlistRaw</CODE> </a>
151            </th>
152            <td>Splits the 3D command buffer for the specified command list.</td>
153          </tr>
154          <tr>
155            <td width="100">  </td>
156            <th>
157              <a href="../nn_gx_raw/nngxEnableCmdlistCallbackRaw.html"><CODE>nngxEnableCmdlistCallbackRaw</CODE> </a>
158            </th>
159            <td>Enables an exit callback for the specified command list.</td>
160          </tr>
161          <tr>
162            <td width="100">  </td>
163            <th>
164              <a href="../nn_gx_raw/nngxDisableCmdlistCallbackRaw.html"><CODE>nngxDisableCmdlistCallbackRaw</CODE> </a>
165            </th>
166            <td>Disables an exit callback for the specified command list.</td>
167          </tr>
168          <tr>
169            <td width="100">  </td>
170            <th>
171              <a href="../nn_gx_raw/nngxSetCmdlistCallbackRaw.html"><CODE>nngxSetCmdlistCallbackRaw</CODE> </a>
172            </th>
173            <td>Sets the exit callback function for the specified command list.</td>
174          </tr>
175          <tr>
176            <td width="100">  </td>
177            <th>
178              <a href="../nn_gx_raw/nngxRunCmdlistRaw.html"><CODE>nngxRunCmdlistRaw</CODE> </a>
179            </th>
180            <td>Runs the specified command list.</td>
181          </tr>
182          <tr>
183            <td width="100">  </td>
184            <th>
185              <a href="../nn_gx_raw/nngxReserveStopCmdlistRaw.html"><CODE>nngxReserveStopCmdlistRaw</CODE> </a>
186            </th>
187            <td>Presets the specified command list to stop.</td>
188          </tr>
189          <tr>
190            <td width="100">  </td>
191            <th>
192              <a href="../nn_gx_raw/nngxClearCmdlistRaw.html"><CODE>nngxClearCmdlistRaw</CODE> </a>
193            </th>
194            <td>Clears commands accumulated in the specified command list.</td>
195          </tr>
196          <tr>
197            <td width="100">  </td>
198            <th>
199              <a href="../nn_gx_raw/nngxClearFillCmdlistRaw.html"><CODE>nngxClearFillCmdlistRaw</CODE> </a>
200            </th>
201            <td>Uses the specified value to clear commands accumulated in the specified command list.</td>
202          </tr>
203          <tr>
204            <td width="100">  </td>
205            <th>
206              <a href="../nn_gx_raw/nngxSetGasAutoAccumulationUpdateRaw.html"><CODE>nngxSetGasAutoAccumulationUpdateRaw</CODE> </a>
207            </th>
208            <td>Updates the additive blend result from rendering gas density information for the specified command request handler of the specified command list.</td>
209          </tr>
210          <tr>
211            <td width="100">  </td>
212            <th>
213              <a href="../nn_gx_raw/nngxSetGasUpdateRaw.html"><CODE>nngxSetGasUpdateRaw</CODE> </a>
214            </th>
215            <td>Specifies whether to update the additive blend result from rendering gas density information for the specified command list.</td>
216          </tr>
217          <tr>
218            <td width="100">  </td>
219            <th>
220              <a href="../nn_gx_raw/nngxGetIsRunningRaw.html"><CODE>nngxGetIsRunningRaw</CODE> </a>
221            </th>
222            <td>Checks whether the specified command list is running.</td>
223          </tr>
224          <tr>
225            <td width="100">  </td>
226            <th>
227              <a href="../nn_gx_raw/nngxGetUsedBufferSizeRaw.html"><CODE>nngxGetUsedBufferSizeRaw</CODE> </a>
228            </th>
229            <td>Returns the size of the 3D command buffer accumulated in the specified command list.</td>
230          </tr>
231          <tr>
232            <td width="100">  </td>
233            <th>
234              <a href="../nn_gx_raw/nngxGetUsedRequestCountRaw.html"><CODE>nngxGetUsedRequestCountRaw</CODE> </a>
235            </th>
236            <td>Returns the number of command requests accumulated in the specified command list.</td>
237          </tr>
238          <tr>
239            <td width="100">  </td>
240            <th>
241              <a href="../nn_gx_raw/nngxGetMaxBufferSizeRaw.html"><CODE>nngxGetMaxBufferSizeRaw</CODE> </a>
242            </th>
243            <td>Returns the maximum size of the 3D command buffer that can be accumulated in the specified command list.</td>
244          </tr>
245          <tr>
246            <td width="100">  </td>
247            <th>
248              <a href="../nn_gx_raw/nngxGetMaxRequestCountRaw.html"><CODE>nngxGetMaxRequestCountRaw</CODE> </a>
249            </th>
250            <td>Returns the maximum number of command requests that can be accumulated in the specified command list.</td>
251          </tr>
252          <tr>
253            <td width="100">  </td>
254            <th>
255              <a href="../nn_gx_raw/nngxGetTopBufferAddrRaw.html"><CODE>nngxGetTopBufferAddrRaw</CODE> </a>
256            </th>
257            <td>Returns the starting address of the 3D command buffer that has been set in the specified command list.</td>
258          </tr>
259          <tr>
260            <td width="100">  </td>
261            <th>
262              <a href="../nn_gx_raw/nngxGetRunBufferSizeRaw.html"><CODE>nngxGetRunBufferSizeRaw</CODE> </a>
263            </th>
264            <td>Returns the size of the 3D command buffer that has been executed in the specified command list.</td>
265          </tr>
266          <tr>
267            <td width="100">  </td>
268            <th>
269              <a href="../nn_gx_raw/nngxGetRunRequestCountRaw.html"><CODE>nngxGetRunRequestCountRaw</CODE> </a>
270            </th>
271            <td>Returns the number of command requests that have been executed in the specified command list.</td>
272          </tr>
273          <tr>
274            <td width="100">  </td>
275            <th>
276              <a href="../nn_gx_raw/nngxGetTopRequestAddrRaw.html"><CODE>nngxGetTopRequestAddrRaw</CODE> </a>
277            </th>
278            <td>Returns the starting address of the buffer for storing command request queue data that has been set in the specified command list.</td>
279          </tr>
280          <tr>
281            <td width="100">  </td>
282            <th>
283              <a href="../nn_gx_raw/nngxGetNextRequestTypeRaw.html"><CODE>nngxGetNextRequestTypeRaw</CODE> </a>
284            </th>
285            <td>Returns the type of the next command request that will be executed among those command requests that have accumulated in the specified command list.</td>
286          </tr>
287          <tr>
288            <td width="100">  </td>
289            <th>
290              <a href="../nn_gx_raw/nngxGetNextBufferAddrRaw.html"><CODE>nngxGetNextBufferAddrRaw</CODE> </a>
291            </th>
292            <td>Returns the next buffer address that will be executed in the 3D command buffer accumulated in the specified command list.</td>
293          </tr>
294          <tr>
295            <td width="100">  </td>
296            <th>
297              <a href="../nn_gx_raw/nngxGetNextBufferSizeRaw.html"><CODE>nngxGetNextBufferSizeRaw</CODE> </a>
298            </th>
299            <td>Returns the size of the next buffer region that will be executed in the 3D command buffer accumulated in the specified command list.</td>
300          </tr>
301          <tr>
302            <td width="100">  </td>
303            <th>
304              <a href="../nn_gx_raw/nngxGetCurrentBufferAddrRaw.html"><CODE>nngxGetCurrentBufferAddrRaw</CODE> </a>
305            </th>
306            <td>For the specified command list, returns the 3D command buffer address where the next 3D command will be accumulated.</td>
307          </tr>
308          <tr>
309            <td width="100">  </td>
310            <th>
311              <a href="../nn_gx_raw/nngxGetHWStateRaw.html"><CODE>nngxGetHWStateRaw</CODE> </a>
312            </th>
313            <td>Gets 32 bits of data indicating the hardware state.</td>
314          </tr>
315          <tr>
316            <th class="category" colspan="3">Command Cache Operations</th>
317          </tr>
318          <tr>
319            <td width="100">  </td>
320            <th>
321              <a href="../nn_gx_raw/nngxAdd3DCommandNoCacheFlushRaw.html"><CODE>nngxAdd3DCommandNoCacheFlushRaw</CODE> </a>
322            </th>
323            <td>For the specified command list, adds the data of the specified region (a 3D command) to the 3D command buffer.</td>
324          </tr>
325          <tr>
326            <th class="category" colspan="3">Issuance of Low-Level Command Requests</th>
327          </tr>
328          <tr>
329            <td width="100">  </td>
330            <th>
331              <a href="../nn_gx_raw/nngxFlush3DCommandNoCacheFlushRaw.html"><CODE>nngxFlush3DCommandNoCacheFlushRaw</CODE> </a>
332            </th>
333            <td>Issues a render command request and flushes the accumulated 3D command buffer in the specified command list.</td>
334          </tr>
335          <tr>
336            <td width="100">  </td>
337            <th>
338              <a href="../nn_gx_raw/nngxFlush3DCommandPartiallyRaw.html"><CODE>nngxFlush3DCommandPartiallyRaw</CODE> </a>
339            </th>
340            <td>Issues a render command request and flushes the accumulated 3D command buffer in the specified command list. However, 3D commands are only executed for the specified size.</td>
341          </tr>
342          <tr>
343            <td width="100">  </td>
344            <th>
345              <a href="../nn_gx_raw/nngxMoveCommandbufferPointerRaw.html"><CODE>nngxMoveCommandbufferPointerRaw</CODE> </a>
346            </th>
347            <td>Moves the current output-destination pointer of the 3D command buffer in the specified command list.</td>
348          </tr>
349          <tr>
350            <td width="100">  </td>
351            <th>
352              <a href="../nn_gx_raw/nngxAddB2LTransferCommandRaw.html"><CODE>nngxAddB2LTransferCommandRaw</CODE> </a>
353            </th>
354            <td>Adds a command to the specified command list to convert a block image to a linear image and then transfer it.</td>
355          </tr>
356          <tr>
357            <td width="100">  </td>
358            <th>
359              <a href="../nn_gx_raw/nngxAddBlockImageCopyCommandRaw.html"><CODE>nngxAddBlockImageCopyCommandRaw</CODE> </a>
360            </th>
361            <td>Adds a command to the specified command list to transfer a block image.</td>
362          </tr>
363          <tr>
364            <td width="100">  </td>
365            <th>
366              <a href="../nn_gx_raw/nngxAddL2BTransferCommandRaw.html"><CODE>nngxAddL2BTransferCommandRaw</CODE> </a>
367            </th>
368            <td>Adds a command to the specified command list to convert a linear image to a block image and then transfer it.</td>
369          </tr>
370          <tr>
371            <td width="100">  </td>
372            <th>
373              <a href="../nn_gx_raw/nngxAddMemoryFillCommandRaw.html"><CODE>nngxAddMemoryFillCommandRaw</CODE> </a>
374            </th>
375            <td>Adds a memory-fill command to the specified command list.</td>
376          </tr>
377          <tr>
378            <td width="100">  </td>
379            <th>
380              <a href="../nn_gx_raw/nngxAddVramDmaCommandNoCacheFlushRaw.html"><CODE>nngxAddVramDmaCommandNoCacheFlushRaw</CODE> </a>
381            </th>
382            <td>Adds a DMA transfer command to the specified command list.</td>
383          </tr>
384          <tr>
385            <td width="100">  </td>
386            <th>
387              <a href="../nn_gx_raw/nngxFilterBlockImageRaw.html"><CODE>nngxFilterBlockImageRaw</CODE> </a>
388            </th>
389            <td>Adds a command to the specified command list to transfer a block image anti-aliasing filter.</td>
390          </tr> </table>
391      </div>
392    </a>
393    <h2>Revision History</h2>
394    <div class="section">
395      <dl class="history">
396        <dt>2012/06/14</dt>
397<dd>Added a list of the <CODE>gx</CODE> command list processing functions that can be used at the same time as the <CODE>gx Raw</CODE> functions.<br />
398        </dd>
399        <dt>2012/05/09</dt>
400        <dd>Initial version. <br />
401        </dd>
402      </dl>
403    </div>
404  <hr><p>CONFIDENTIAL</p></body>
405</html>