glbegin - Man Page






glBegin(3G)		       OpenGL Reference			   glBegin(3G)



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



									Page 1






glBegin(3G)		       OpenGL Reference			   glBegin(3G)



	       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 called
     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.






									Page 2






glBegin(3G)		       OpenGL Reference			   glBegin(3G)



     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
     the execution of glBegin and the corresponding execution of glEnd.

     GL_INVALID_OPERATION is generated if glEnd	is executed before the
     corresponding glBegin is executed,	or if glBegin is executed within a
     glBegin/glEnd sequence.


SEE ALSO
     glCallList, glCallLists, glColor, glEdgeFlag, glEvalCoord,	glEvalPoint,
     glIndex, glMaterial, glNormal, glTexCoord,	glVertex










































									Page 3