'\" t .\" Title: glDrawRangeElements .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 01/03/2018 .\" Manual: [FIXME: manual] .\" Source: [FIXME: source] .\" Language: English .\" .TH "GLDRAWRANGEELEMENTS" "3G" "01/03/2018" "[FIXME: source]" "[FIXME: manual]" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" glDrawRangeElements \- render primitives from array data .SH "C SPECIFICATION" .HP \w'void\ glDrawRangeElements('u .BI "void glDrawRangeElements(GLenum\ " "mode" ", GLuint\ " "start" ", GLuint\ " "end" ", GLsizei\ " "count" ", GLenum\ " "type" ", const\ GLvoid\ *\ " "indices" ");" .SH "PARAMETERS" .PP \fImode\fR .RS 4 Specifies what kind of primitives to render\&. Symbolic constants \fBGL_POINTS\fR, \fBGL_LINE_STRIP\fR, \fBGL_LINE_LOOP\fR, \fBGL_LINES\fR, \fBGL_LINE_STRIP_ADJACENCY\fR, \fBGL_LINES_ADJACENCY\fR, \fBGL_TRIANGLE_STRIP\fR, \fBGL_TRIANGLE_FAN\fR, \fBGL_TRIANGLES\fR, \fBGL_TRIANGLE_STRIP_ADJACENCY\fR, \fBGL_TRIANGLES_ADJACENCY\fR and \fBGL_PATCHES\fR are accepted\&. .RE .PP \fIstart\fR .RS 4 Specifies the minimum array index contained in \fIindices\fR\&. .RE .PP \fIend\fR .RS 4 Specifies the maximum array index contained in \fIindices\fR\&. .RE .PP \fIcount\fR .RS 4 Specifies the number of elements to be rendered\&. .RE .PP \fItype\fR .RS 4 Specifies the type of the values in \fIindices\fR\&. Must be one of \fBGL_UNSIGNED_BYTE\fR, \fBGL_UNSIGNED_SHORT\fR, or \fBGL_UNSIGNED_INT\fR\&. .RE .PP \fIindices\fR .RS 4 Specifies a pointer to the location where the indices are stored\&. .RE .SH "DESCRIPTION" .PP \fBglDrawRangeElements\fR is a restricted form of \fBglDrawElements\fR()\&. \fImode\fR, \fIstart\fR, \fIend\fR, and \fIcount\fR match the corresponding arguments to \fBglDrawElements\fR(), with the additional constraint that all values in the arrays \fIcount\fR must lie between \fIstart\fR and \fIend\fR, inclusive\&. .PP Implementations denote recommended maximum amounts of vertex and index data, which may be queried by calling \fBglGet\fR() with argument \fBGL_MAX_ELEMENTS_VERTICES\fR and \fBGL_MAX_ELEMENTS_INDICES\fR\&. If end \- start + 1 is greater than the value of \fBGL_MAX_ELEMENTS_VERTICES\fR, or if \fIcount\fR is greater than the value of \fBGL_MAX_ELEMENTS_INDICES\fR, then the call may operate at reduced performance\&. There is no requirement that all vertices in the range start end be referenced\&. However, the implementation may partially process unused vertices, reducing performance from what could be achieved with an optimal index set\&. .PP When \fBglDrawRangeElements\fR is called, it uses \fIcount\fR sequential elements from an enabled array, starting at \fIstart\fR to construct a sequence of geometric primitives\&. \fImode\fR specifies what kind of primitives are constructed, and how the array elements construct these primitives\&. If more than one array is enabled, each is used\&. .PP Vertex attributes that are modified by \fBglDrawRangeElements\fR have an unspecified value after \fBglDrawRangeElements\fR returns\&. Attributes that aren\*(Aqt modified maintain their previous values\&. .SH "NOTES" .PP \fBGL_LINE_STRIP_ADJACENCY\fR, \fBGL_LINES_ADJACENCY\fR, \fBGL_TRIANGLE_STRIP_ADJACENCY\fR and \fBGL_TRIANGLES_ADJACENCY\fR are available only if the GL version is 3\&.2 or greater\&. .SH "ERRORS" .PP It is an error for indices to lie outside the range start end, but implementations may not check for this situation\&. Such indices cause implementation\-dependent behavior\&. .PP \fBGL_INVALID_ENUM\fR is generated if \fImode\fR is not an accepted value\&. .PP \fBGL_INVALID_VALUE\fR is generated if \fIcount\fR is negative\&. .PP \fBGL_INVALID_VALUE\fR is generated if end < start\&. .PP \fBGL_INVALID_OPERATION\fR is generated if a geometry shader is active and \fImode\fR is incompatible with the input primitive type of the geometry shader in the currently installed program object\&. .PP \fBGL_INVALID_OPERATION\fR is generated if a non\-zero buffer object name is bound to an enabled array or the element array and the buffer object\*(Aqs data store is currently mapped\&. .SH "ASSOCIATED GETS" .PP \fBglGet\fR() with argument \fBGL_MAX_ELEMENTS_VERTICES\fR .PP \fBglGet\fR() with argument \fBGL_MAX_ELEMENTS_INDICES\fR .SH "VERSION SUPPORT" .TS allbox tab(:); lB cB s s s s s s s s s s s lB cB cB cB cB cB cB cB cB cB cB cB cB. T{ T}:T{ \fBOpenGL Version\fR T} T{ \fBFunction / Feature Name\fR T}:T{ \fB2\&.0\fR T}:T{ \fB2\&.1\fR T}:T{ \fB3\&.0\fR T}:T{ \fB3\&.1\fR T}:T{ \fB3\&.2\fR T}:T{ \fB3\&.3\fR T}:T{ \fB4\&.0\fR T}:T{ \fB4\&.1\fR T}:T{ \fB4\&.2\fR T}:T{ \fB4\&.3\fR T}:T{ \fB4\&.4\fR T}:T{ \fB4\&.5\fR T} .T& l c c c c c c c c c c c c. T{ \fBglDrawRangeElements\fR T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T} .TE .sp 1 .SH "SEE ALSO" .PP \fBglDrawArrays\fR(), \fBglDrawElements\fR(), \fBglDrawElementsBaseVertex\fR() .SH "COPYRIGHT" .PP Copyright \(co 1991\-2006 Silicon Graphics, Inc\&. Copyright \(co 2010\-2014 Khronos Group\&. This document is licensed under the SGI Free Software B License\&. For details, see \m[blue]\fBhttp://oss\&.sgi\&.com/projects/FreeB/\fR\m[]\&. .SH "COPYRIGHT" .br Copyright \(co 1991-2006 Silicon Graphics, Inc. .br Copyright \(co 2010-2014 Khronos Group .br