glBegin.3gl







Name

  glBegin, glEnd - delimit the vertices	of a primitive or a group of like

  primitives





C Specification

  void glBegin(	GLenum mode )





Parameters



  mode	Specifies the primitive	or primitives that will	be created from

	vertices presented between glBegin and the subsequent glEnd.  Ten

	symbolic constants are accepted: GL_POINTS, GL_LINES, GL_LINE_STRIP,

	GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN,

	GL_QUADS, GL_QUAD_STRIP, and GL_POLYGON.



C Specification

  void glEnd( void )





Description

  glBegin and glEnd delimit the	vertices that define a primitive or a group

  of like primitives.  glBegin accepts a single	argument that specifies	which

  of ten ways the vertices are interpreted.  Taking n as an integer count

  starting at one, and N as the	total number of	vertices specified, the

  interpretations are as follows:



  GL_POINTS Treats each	vertex as a single point.  Vertex n defines point n.

	    N points are drawn.



  GL_LINES  Treates each pair of vertices as an	independent line segment.

	    Vertices 2n-1 and 2n define	line n.	 N/2 lines are drawn.



  GL_LINE_STRIP

	    Draws a connected group of line segments from the first vertex to

	    the	last.  Vertices	n and n+1 define line n.  N-1 lines are

	    drawn.



  GL_LINE_LOOP

	    Draws a connected group of line segments from the first vertex to

	    the	last, then back	to the first.  Vertices	n and n+1 define line

	    n.	The last line, however,	is defined by vertices N and 1.	 N

	    lines are drawn.



  GL_TRIANGLES

	    Treates each triplet of vertices as	an independent triangle.

	    Vertices 3n-2, 3n-1, and 3n	define triangle	n.  N/3	triangles are

	    drawn.



  GL_TRIANGLE_STRIP

	    Draws a connected group of triangles.  One triangle	is defined

	    for	each vertex presented after the	first two vertices.  For odd

	    n, vertices	n, n+1,	and n+2	define triangle	n.  For	even n,

	    vertices n+1, n, and n+2 define triangle n.	 N-2 triangles are

	    drawn.



  GL_TRIANGLE_FAN

	    Draws a connected group of triangles.  One triangle	is defined

	    for	each vertex presented after the	first two vertices.  Vertices

	    1, n+1, and	n+2 define triangle n.	N-2 triangles are drawn.



  GL_QUADS  Treats each	group of four vertices as an independent

	    quadrilateral.  Vertices 4n-3, 4n-2, 4n-1, and 4n define

	    quadrilateral n.  N/4 quadrilaterals are drawn.



  GL_QUAD_STRIP

	    Draws a connected group of quadrilaterals.	One quadrilateral is

	    defined for	each pair of vertices presented	after the first	pair.

	    Vertices 2n-1, 2n, 2n+2, and 2n+1 define quadrilateral n.  N/2-1

	    quadrilaterals are drawn.  Note that the order in which vertices

	    are	used to	construct a quadrilateral from strip data is

	    different from that	used with independent data.



  GL_POLYGON

	    Draws a single, convex polygon.  Vertices 1	through	N define this

	    polygon.



  Only a subset	of GL commands can be used between glBegin and glEnd.  The

  commands are glVertex, glColor, glIndex, glNormal, glTexCoord, glEvalCoord,

  glEvalPoint, glMaterial, and glEdgeFlag.  Also, it is	acceptable to use

  glCallList or	glCallLists to execute display lists that include only the

  preceding commands.  If any other GL command is executed between glBegin

  and glEnd, the error flag is set and the command is ignored.



  Regardless of	the value chosen for mode, there is no limit to	the number of

  vertices that	can be defined between glBegin and glEnd.  Lines, triangles,

  quadrilaterals, and polygons that are	incompletely specified are not drawn.

  Incomplete specification results when	either too few vertices	are provided

  to specify even a single primitive or	when an	incorrect multiple of

  vertices is specified. The incomplete	primitive is ignored; the rest are

  drawn.



  The minimum specification of vertices	for each primitive is as follows: 1

  for a	point, 2 for a line, 3 for a triangle, 4 for a quadrilateral, and 3

  for a	polygon.  Modes	that require a certain multiple	of vertices are

  GL_LINES (2),	GL_TRIANGLES (3), GL_QUADS (4),	and GL_QUAD_STRIP (2).



Errors

  GL_INVALID_ENUM is generated if mode is set to an unaccepted value.



  GL_INVALID_OPERATION is generated if a command other than glVertex,

  glColor, glIndex, glNormal, glTexCoord, glEvalCoord, glEvalPoint,

  glMaterial, glEdgeFlag, glCallList, or glCallLists is	executed between

  glBegin and the corresponding	glEnd.



  GL_INVALID_OPERATION is generated if a glBegin is executed between a

  glBegin and the corresponding	execution of glEnd.



  GL_INVALID_OPERATION is generated if glEnd is	executed without being

  preceded by a	glBegin.



See Also

  glCallList, glCallLists, glColor, glEdgeFlag,	glEvalCoord, glEvalPoint,

  glIndex, glMaterial, glNormal, glTexCoord, glVertex








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV