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>glDrawElements</title> 8 </head> 9 <body> 10<h1>glDrawElements Function</h1> 11<h2>Syntax</h2> 12 <div class="section"> 13 <pre class="definition"> 14GL_APICALL void GL_APIENTRY glDrawElements( 15 GLenum mode, 16 GLsizei count, 17 GLenum type, 18 const void * indices 19); 20</pre> 21 </div> 22<h2>Parameters</h2> 23 <div class="section"> 24 <table class="arguments"> 25 <thead> 26 <tr> 27 <td width="15" /> 28<th>Name</th> 29<td>Description</td> 30 </tr> 31 </thead> 32 <tr> 33<td>in</td> 34<th>mode</th> 35<td>Primitive mode</td> 36 </tr> 37 <tr> 38<td>in</td> 39<th>count</th> 40<td>Amount of vertex data to render</td> 41 </tr> 42 <tr> 43<td>in</td> 44<th>type</th> 45<td>Data type for the vertex indices</td> 46 </tr> 47 <tr> 48<td>in</td> 49<th>indices</th> 50<td>Pointer to a vertex index, or offset to the region to start using within the vertex indices</td> 51 </tr> </table> 52 </div> 53<h2>Return Values</h2> 54<div class="section">No values are returned. </div> 55<h2>Description</h2> 56 <div class="section"> 57<p>Uses vertex indices to render primitives.</p><P> 58Uses a vertex index array to access an array of vertex data. Set <span class="argument">mode</span> to one of the following values when the geometry shader is not in use. 59<TABLE><TR><TH>GL_TRIANGLES</TH><TD> Triangles</TD></TR><TR><TH>GL_TRIANGLE_STRIP</TH><TD> Triangle strip</TD></TR><TR><TH>GL_TRIANGLE_FAN</TH><TD> Triangle fan </TD></TR></TABLE><!-- source modeにはジオメトリシェーダを使用しない場合、GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FANのいずれかを指定します。 --></P><P> 60Specify a value of <code>GL_GEOMETRY_PRIMITIVE_DMP</code> when the geometry shader is in use. 61 </P><P> 62Set <span class="argument">type</span> to the type of the vertex index array. Specify a value of <code>GL_UNSIGNED_BYTE</code> or <code>GL_UNSIGNED_SHORT</code>. 63 </P><P> 64When vertex buffer objects are not in use, set <span class="argument">indices</span> with a pointer to the vertex indices. When vertex buffer objects are in use, set <span class="argument">indices</span> with the offset to the region to start using within the vertex indices. 65 </P><P> 66This function generates the following errors. 67<TABLE><TR><TH>GL_INVALID_ENUM</TH><TD>The <span class="argument">mode</span> or <span class="argument">type</span> argument was set to an invalid value.</TD></TR><TR><TH>GL_INVALID_FRAMEBUFFER_OPERATION</TH><TD>The framebuffer was configured incorrectly.</TD></TR><TR><TH>GL_INVALID_OPERATION</TH><TD>This function was called without any command-list objects bound.</TD></TR><TR><TH>GL_INVALID_OPERATION</TH><TD><CODE>GL_GEOMETRY_PRIMITIVE_DMP</CODE> is specified for <CODE>mode</CODE> and a geometry shader is not linked to the current program<BR><CODE>GL_GEOMETRY_PRIMITIVE_DMP</CODE> is specified for <CODE>mode</CODE> and a geometry shader is linked to the current program<BR>The specified number of vertex attributes exceeds the maximum allowed (Note 1)<BR>Placement restrictions on vertex data are violated (Note 2)</TD></TR></TABLE></P><P> 68<B>Note 1:</B> Maximum of 16 when not using a vertex buffer, and a maximum of 12 when using a vertex buffer<BR /> <B>Note2: </B>When using a vertex buffer and 12 vertex attributes are used as vertex arrays (when <CODE><a href="../gl/glEnableVertexAttribArray.html">glEnableVertexAttribArray</a></CODE> is called on all vertex attributes) 69 </P><P> 70Also, because this function performs a process for each state corresponding to <CODE>nngxValidateState</CODE>, when using the gl API, an error may occur for reasons not listed above. In this case, it is possible to narrow down the reason for the error by calling the <CODE>nngxValidateState</CODE> function for each state before calling this function. 71 </P></div> 72<h2>Revision History</h2> 73 <div class="section"> 74 <dl class="history"> 75 <dt>2011/12/02</dt> 76<dd>Added information related to vertex attributes as causes of the <CODE>GL_INVALID_OPERATION</CODE> error. 77 </dd> 78 <dt>2011/06/15</dt> 79<dd>Added internal processes and how to check error causes<br /> 80 </dd> 81 <dt>2010/01/07</dt> 82<dd>Initial version.<br /> 83 </dd> 84 </dl> 85 </div> 86 <hr><p>CONFIDENTIAL</p></body> 87</html> 88