Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
GLBEGIN()							     GLBEGIN()

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

       void glBegin( GLenum mode )

       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,

       void glEnd( void	)

       glBegin and glEnd delimit the vertices that define  a  primitive	 or  a
       group of	like primitives.  glBegin accepts a single argument that spec-
       ifies in	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		    Treats  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  de-
			    fine 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	    Treats  each triplet of vertices as	an independent
			    triangle.  Vertices	3n-2, 3n-1, and	3n define tri-
			    angle n.  N/3 triangles are	drawn.

       GL_TRIANGLE_STRIP    Draws  a connected group of	triangles.  One	trian-
			    gle	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	trian-
			    gle	is defined for each vertex presented after the
			    first two vertices.	 Vertices 1, n+1, and n+2  de-
			    fine triangle n.  N-2 triangles are	drawn.

       GL_QUADS		    Treats  each group of four vertices	as an indepen-
			    dent 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 quadrilat-
			    eral 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, glE-
       valCoord,  glEvalPoint,	glArrayElement,	 glMaterial,  and  glEdgeFlag.
       Also, it	is acceptable to use glCallList	or glCallLists to execute dis-
       play 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  num-
       ber  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 in-
       correct	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

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

       GL_INVALID_OPERATION is generated if  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.

       GL_INVALID_OPERATION is generated if a command other than glVertex, gl-
       Color,  glIndex,	 glNormal, glTexCoord, glEvalCoord, glEvalPoint, glAr-
       rayElement, glMaterial, glEdgeFlag, glCallList, or glCallLists is  exe-
       cuted  between the execution of glBegin and the corresponding execution

       Execution  of  glEnableClientState,  glDisableClientState,  glEdgeFlag-
       Pointer,	 glTexCoordPointer,  glColorPointer, glIndexPointer, glNormal-
       glVertexPointer,	glInterleavedArrays, or	glPixelStore  is  not  allowed
       after a call to glBegin and before the corresponding call to glEnd, but
       an error	may or may not be generated.

       glArrayElement, glCallList, glCallLists,	glColor, glEdgeFlag, glEvalCo-
       glEvalPoint, glIndex, glMaterial, glNormal, glTexCoord, glVertex



Want to link to this manual page? Use this URL:

home | help