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>nngxAddJumpCommand</title> 8 </head> 9 <body> 10<h1><CODE>nngxAddJumpCommand</CODE> Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14NNGX_APICALL void NNGX_APIENTRY nngxAddJumpCommand( 15 const GLvoid * bufferaddr, 16 GLsizei buffersize 17); 18</pre> 19 </div> 20<h2>Arguments</h2> 21 <div class="section"> 22 <table class="arguments"> 23 <thead> 24 <tr> 25 <td width="15" /> 26<th>Name</th> 27<td>Description</td> 28 </tr> 29 </thead> 30 <tr> 31<td>in</td> 32<th><CODE>bufferaddr</CODE></th> 33<td>Address of the region storing the command buffer.</td> 34 </tr> 35 <tr> 36<td>in</td> 37<th><CODE>buffersize</CODE></th> 38<td>Size of the command buffer stored at <CODE>bufferaddr</CODE> in bytes.</td> 39 </tr> </table> 40 </div> 41<h2>Return Values</h2> 42<div class="section">No values are returned. </div> 43<h2>Description</h2> 44 <div class="section"> 45<p>Adds a command to the current command buffer for jumping to the executable address in the specified command buffer. </p><p> 46When this function is called, Channel <CODE>0</CODE> of the command buffer execution interface is used to add a command to the current command buffer starting from the address given by <CODE>bufferaddr</CODE> up to the buffer size given by <CODE>buffersize</CODE>, and to generate a render command request. Commands generated by this function overwrite the contents of registers <CODE>0x238</CODE> and <CODE>0x23A</CODE>. 47 </p><p> 48Once the current command buffer is executed, commands that have accumulated up to the point this function is called will execute first and then subsequent execution will start from the address specified by <CODE>bufferadderss</CODE> without allowing any interrupts. 49 </p><p> 50A command that generates an interrupt must be stored at the end of the command buffer specified by <CODE>bufferaddr</CODE>. Instead of a command that generates an interrupt, you can store a kick command in the next command buffer, but you need to store an interrupt-generating command at the end of the command buffer that is ultimately kicked. The kick command for the next command buffer and location of the final command that generates an interrupt must be handled by the application. 51 </p><p> 52The command buffer given by <CODE>bufferaddr</CODE> is directly executed from the specified address without being copied to the current command buffer. Applications must guarantee that the buffer given by <CODE>bufferaddr</CODE> is flushed. Furthermore, <CODE>bufferaddr</CODE> must be a multiple of 16. 53 </p><p> 54<CODE>buffersize</CODE> must be a positive multiple of 16. 55 </p><p> 56If this function is called immediately after the current command buffer has been flushed, by using <a href="../nn_gx/nngxFlush3DCommand.html">nngxFlush3DCommand</a> for example, the function has no effect and an error occurs. Immediately after flushing the current command buffer, add a command using <a href="../nn_gx/nngxAdd3DCommand.html">nngxAdd3DCommand</a>. 57 </p><p> 58This function generates the following errors. 59<TABLE><TR><TH>GL_ERROR_8096_DMP</TH><TD><CODE>0</CODE> is bound to the current command list.</TD></TR><TR><TH>GL_ERROR_8097_DMP</TH><TD><SPAN class="argument">buffersize</SPAN> is less than or equal to <CODE>0</CODE>.</TD></TR><TR><TH>GL_ERROR_8098_DMP</TH><TD><SPAN class="argument">bufferaddr</SPAN> is not a multiple of 16.</TD></TR><TR><TH>GL_ERROR_8099_DMP</TH><TD><SPAN class="argument">bufferaddr</SPAN> is not a multiple of 16.</TD></TR><TR><TH>GL_ERROR_809A_DMP</TH><TD>The function was called immediately after the current command buffer was flushed.</TD></TR><TR><TH>GL_ERROR_809B_DMP</TH><TD>The maximum size the current command request can store was exceeded when a command was added by this function.</TD></TR><TR><TH>GL_ERROR_809C_DMP</TH><TD>The maximum size the current command buffer can store was exceeded when a command was added using this function.</TD></TR></TABLE></p></div> 60<h2>See Also</h2> 61 <div class="section"> 62<p class="reference"><a href="../nn_gx/nngxAddSubroutineCommand.html"><CODE>nngxAddSubroutineCommand</CODE></a><br /> </p> 63 </div> 64<h2>Revision History</h2> 65 <div class="section"> 66 <dl class="history"> 67 <dt>2011/10/04</dt> 68<dd>Added <B>See Also</B> section.<br /> 69 </dd> 70 <dt>2011/07/28</dt> 71<dd>Initial version.<br /> 72 </dd> 73 </dl> 74 </div> 75 <hr><p>CONFIDENTIAL</p></body> 76</html>