mirror of
https://github.com/QB64Official/qb64.git
synced 2024-09-28 11:17:47 +00:00
51 lines
3.2 KiB
Text
51 lines
3.2 KiB
Text
'''_glDrawElements:''' render primitives from array data
|
|
|
|
|
|
{{PageSyntax}}
|
|
|
|
: SUB _glDrawElements (BYVAL mode AS _UNSIGNED LONG, BYVAL count AS LONG, BYVAL type AS _UNSIGNED LONG, indices AS _OFFSET)
|
|
: void '''_glDrawElements'''(GLenum {{Parameter|mode}}, GLsizei {{Parameter|count}}, GLenum {{Parameter|type}}, const GLvoid * {{Parameter|indices}});
|
|
|
|
|
|
; mode
|
|
: Specifies what kind of primitives to render. Symbolic constants {{KW|_GL_POINTS}}, {{KW|_GL_LINE_STRIP}}, {{KW|_GL_LINE_LOOP}}, {{KW|_GL_LINES}}, {{KW|_GL_LINE_STRIP_ADJACENCY}}, {{KW|_GL_LINES_ADJACENCY}}, {{KW|_GL_TRIANGLE_STRIP}}, {{KW|_GL_TRIANGLE_FAN}}, {{KW|_GL_TRIANGLES}}, {{KW|_GL_TRIANGLE_STRIP_ADJACENCY}}, {{KW|_GL_TRIANGLES_ADJACENCY}} and {{KW|_GL_PATCHES}} are accepted.
|
|
; count
|
|
: Specifies the number of elements to be rendered.
|
|
; type
|
|
: Specifies the type of the values in {{Parameter|indices}}. Must be one of {{KW|_GL_UNSIGNED_BYTE}}, {{KW|_GL_UNSIGNED_SHORT}}, or {{KW|_GL_UNSIGNED_INT}}.
|
|
; indices
|
|
: Specifies a pointer to the location where the indices are stored.
|
|
|
|
|
|
{{PageDescription}}
|
|
|
|
'''_glDrawElements''' specifies multiple geometric primitives with very few subroutine calls. Instead of calling a GL function to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and so on, and use them to construct a sequence of primitives with a single call to '''_glDrawElements'''.
|
|
|
|
When '''_glDrawElements''' is called, it uses {{Parameter|count}} sequential elements from an enabled array, starting at {{Parameter|indices}} (interpreted as a byte count) to construct a sequence of geometric primitives. {{Parameter|mode}} 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.
|
|
|
|
Vertex attributes that are modified by '''_glDrawElements''' have an unspecified value after '''_glDrawElements''' returns. Attributes that aren't modified maintain their previous values.
|
|
|
|
|
|
{{PageNotes}}
|
|
|
|
{{KW|_GL_LINE_STRIP_ADJACENCY}}, {{KW|_GL_LINES_ADJACENCY}}, {{KW|_GL_TRIANGLE_STRIP_ADJACENCY}} and {{KW|_GL_TRIANGLES_ADJACENCY}} are available only if the GL version is 3.2 or greater.
|
|
|
|
|
|
{{PageErrors}}
|
|
|
|
{{KW|_GL_INVALID_ENUM}} is generated if {{Parameter|mode}} is not an accepted value.
|
|
|
|
{{KW|_GL_INVALID_VALUE}} is generated if {{Parameter|count}} is negative.
|
|
|
|
{{KW|_GL_INVALID_OPERATION}} is generated if a geometry shader is active and {{Parameter|mode}} is incompatible with the input primitive type of the geometry shader in the currently installed program object.
|
|
|
|
{{KW|_GL_INVALID_OPERATION}} is generated if a non-zero buffer object name is bound to an enabled array or the element array and the buffer object's data store is currently mapped.
|
|
|
|
|
|
{{PageSeeAlso}}
|
|
|
|
[[_GL|SUB _GL]]
|
|
{{KW|_glBindVertexArray}}, {{KW|_glDrawArrays}}, {{KW|_glDrawElementsBaseVertex}}, {{KW|_glDrawElementsIndirect}}, {{KW|_glDrawElementsInstanced}}, {{KW|_glDrawElementsInstancedBaseInstance}}, {{KW|_glDrawElementsInstancedBaseVertex}}, {{KW|_glDrawElementsInstancedBaseVertexBaseInstance}}, {{KW|_glDrawRangeElements}}, {{KW|_glDrawRangeElementsBaseVertex}}, {{KW|_glMultiDrawElements}}, {{KW|_glMultiDrawElementsBaseVertex}}, {{KW|_glMultiDrawElementsIndirect}}
|
|
|
|
|
|
{{PageCopyright}}
|