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>nngxUseSavedCmdlist</title> 8 </head> 9 <body> 10<h1><CODE>nngxUseSavedCmdlist</CODE> Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14NNGX_APICALL void NNGX_APIENTRY nngxUseSavedCmdlist( 15 GLuint cmdlist, 16 GLuint bufferoffset, 17 GLsizei buffersize, 18 GLuint requestid, 19 GLsizei requestsize, 20 GLbitfield statemask, 21 GLboolean copycmd 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>cmdlist</th> 38<td>Saved command list</td> 39 </tr> 40 <tr> 41<td>in</td> 42<th>bufferoffset</th> 43<td>Save information that was obtained using the <CODE>nngxStopCmdlistSave</CODE> function</td> 44 </tr> 45 <tr> 46<td>in</td> 47<th>buffersize</th> 48<td>Save information that was obtained using the <CODE>nngxStopCmdlistSave</CODE> function</td> 49 </tr> 50 <tr> 51<td>in</td> 52<th>requestid</th> 53<td>Save information that was obtained using the <CODE>nngxStopCmdlistSave</CODE> function</td> 54 </tr> 55 <tr> 56<td>in</td> 57<th>requestsize</th> 58<td>Save information that was obtained using the <CODE>nngxStopCmdlistSave</CODE> function</td> 59 </tr> 60 <tr> 61<td>in</td> 62<th>statemask</th> 63<td>Specifies a bitwise OR of state flags for which to generate complete commands</td> 64 </tr> 65 <tr> 66<td>in</td> 67<th>copycmd</th> 68<td>Specifies how the 3D command buffer is reused (either copied or referenced)</td> 69 </tr> </table> 70 </div> 71<h2>Return Values</h2> 72<div class="section">No values are returned. </div> 73<h2>Description</h2> 74 <div class="section"> 75<p>Adds saved commands to the current command request.</p><P> 76Adds saved commands to the current command list. Set <SPAN class="argument">cmdlist</SPAN> to a saved command list. Set <SPAN class="argument">bufferoffset</SPAN>, <SPAN class="argument">buffersize</SPAN>, <SPAN class="argument">requestid</SPAN>, and <SPAN class="argument">requestsize</SPAN> to the save information obtained by <CODE>nngxStopCmdlistSave</CODE>. These are the offset (in bytes) from the starting address for saving the 3D command buffer, the number of bytes saved, the starting ID for saving command requests, and the number of command requests saved, respectively. Always use the same set of values that you obtained from <CODE>nngxStopCmdlistSave</CODE>. The save information specified to this function is not checked for errors (whether it matches the value obtained when saving ended), so behavior is undefined if you specify invalid values. 77 </P><P> 78Set <SPAN class="argument">statemask</SPAN> to a bitwise OR of state flags for which to generate complete commands. The DMPGL state and the actual PICA register settings will be in conflict after you call this function. To resolve this, you must generate all commands and reset the PICA registers. It is sometimes redundant to generate all commands, however, so complete commands are generated only if they correspond to state flags specified by <SPAN class="argument">statemask</SPAN>. 79 </P><P> 80If you set <SPAN class="argument">copycmd</SPAN> equal to <CODE>GL_TRUE</CODE>, the 3D command buffer is copied when commands are applied. If you set <SPAN class="argument">copycmd</SPAN> equal to <CODE>GL_FALSE</CODE>, the 3D command buffer is not copied when commands are applied. If the 3D command buffer is not copied, only sections that have split commands properly configured are executed. Without a split command, execution would not otherwise return from the external 3D command buffer to the current command list. The 3D command buffer is ignored where it is not included in 3D execution command requests. If you are using a command list without copying the 3D command buffer, you must call <CODE>nngxSplitDrawCmdlist</CODE> to add a split command before you stop saving. 81 </P><P> 82If the 3D command buffer is not copied when commands are applied, the execution address will move from the 3D command buffer that is currently accumulating commands to an external 3D command buffer. The driver therefore calls <CODE>nngxSplitDrawCmdlist</CODE> to add a split command to the current 3D command buffer before it copies the command requests. The <CODE>nngxSplitDrawCmdlist</CODE> function is not called immediately after the current 3D command buffer is split. 83 </P><P> 84If the 3D command buffer is copied, <SPAN class="argument">requestsize</SPAN> is nonzero, and the first command of the saved command requests is not a 3D execution command, the driver calls <CODE>nngxSplitDrawCmdlist</CODE> to add a split command to the current 3D command buffer before it copies the command list. The <CODE>nngxSplitDrawCmdlist</CODE> function is not called immediately after the current 3D command buffer is split. 85 </P><P> 86This function generates the following errors. 87<TABLE><TR><TH>GL_ERROR_8037_DMP</TH><TD>0 is bound to the current command list.</TD></TR><TR><TH>GL_ERROR_8038_DMP</TH><TD>Invalid value specified for <SPAN class="argument">cmdlist</SPAN>.</TD></TR><TR><TH>GL_ERROR_8039_DMP</TH><TD>The <span>cmdlist</span> argument specifies the current command list.</TD></TR><TR><TH>GL_ERROR_803A_DMP</TH><TD>This function has added saved commands past the maximum size of the current command list’s 3D command buffer and command requests.</TD></TR></TABLE></P></div> 88<h2>Revision History</h2> 89 <div class="section"> 90 <dl class="history"> 91 <dt>2010/03/12</dt> 92<dd>Initial version.<br /> 93 </dd> 94 </dl> 95 </div> 96 <hr><p>CONFIDENTIAL</p></body> 97</html>