glDrawArraysEXT.3gl







Name

  glDrawArraysEXT - render primitives from array data





C Specification

  void glDrawArraysEXT(	GLenum mode,

			GLint first,

			GLsizei	count )





Parameters



  mode	 Specifies what	kind of	primitives to render.  Symbolic	constants

	 GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP,

	 GL_TRIANGLE_FAN, GL_TRIANGLES,	GL_QUAD_STRIP, GL_QUADS, and

	 GL_POLYGON are	accepted.



  first	 Specifies the starting	index in the enabled arrays.



  count	 Specifies the number of indices which should be rendered.



Description

  glDrawArraysEXT makes	it possible to specify multiple	geometric primitives

  with very few	subroutine calls. Instead of calling an	OpenGL procedure to

  pass each individual vertex, normal, or color, separate arrays of vertexes,

  normals, and colors can be prespecified, and used to define a	sequence of

  primitives (all of the same type) with a single call to glDrawArraysEXT.



  When glDrawArraysEXT is called, count	sequential elements from each enabled

  array	are used to construct a	sequence of geometric primitives, beginning

  with element first. mode specifies what kind of primitives are constructed,

  and how the array elements are used to construct these primitives. If

  GL_VERTEX_ARRAY_EXT is not enabled, no geometric primitives are generated.



  Vertex attributes that are modified by glDrawArraysEXT have an unspecified

  value	after glDrawArraysEXT returns.	For example, if	GL_COLOR_ARRAY_EXT is

  enabled, the value of	the current color is undefined after glDrawArraysEXT

  executes.  Attributes	that aren't modified remain well defined.



  Operation of glDrawArraysEXT is atomic with respect to error generation.

  If an	error is generated, no other operations	take place.



Notes

  glDrawArraysEXT may be included in display lists. If glDrawArraysEXT is

  entered into a display list, the necessary array data	(determined by the

  array	pointers and enables) is also entered into the display list.  Because

  the array pointers and enables are client side state,	their values affect

  display lists	when the lists are created, not	when the lists are executed.



  Static array data may	be read	and cached by the implementation at any	time.

  If static array elements are modified	and the	arrays are not respecified,

  the results of any subsequent	calls to glDrawArraysEXT are undefined.



  Although it is not an	error to respecify an array between the	execution of

  glBegin and the corresponding	execution of glEnd, the	result of such

  respecification is undefined.



  glDrawArraysEXT is part of the EXT_vertex_array extension, not

  part of the core GL command set. If "GL_EXT_vertex_array" is

  included in the string returned by glGetString, when called with argument

  GL_EXTENSIONS, extension EXT_vertex_array is supported.



Errors

  GL_INVALID_ENUM is generated if mode is not an accepted value.



  GL_INVALID_VALUE is generated	if count is negative.



  GL_INVALID_OPERATION is generated if glDrawArraysEXT is called between the

  execution of glBegin and the corresponding execution of glEnd.



See Also

  glArrayElementEXT, glColorPointerEXT,	glEdgeFlagPointerEXT,

  glGetPointervEXT, glIndexPointerEXT, glNormalPointerEXT,

  glTexCoordPointerEXT,	glVertexPointerEXT








Introduction | Alphabetic | Specification

Last Edited: Fri Feb 24, 1995

AFV