ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLBEGIN(3G)                                                                                      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 in which of ten ways the vertices are interpreted.
       Taking  as an integer count starting at one, and  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 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           Treats 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 tri-angle triangle
                              angle n.  n-2 triangles are drawn.

       GL_QUADS               Treats each group of four vertices as an independent quadrilateral.   Vertices
                              4n-3,  4n-2,  4n-3,  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 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, glArrayElement, 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 incom-pletely incompletely
       pletely 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 glBegin is executed between a glBegin and the corresponding exe-cution execution
       cution 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, glColor, glIndex, glNormal,
       glTexCoord,  glEvalCoord,  glEvalPoint,  glArrayElement,  glMaterial,  glEdgeFlag,   glCallList,   or
       glCallLists is executed between the execution of glBegin and the corresponding execution glEnd.

       Execution   of   glEnableClientState,   glDisableClientState,  glEdgeFlagPointer,  glTexCoordPointer,
       glColorPointer, glIndexPointer, glNormalPointer,
       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.

SEE ALSO
       glArrayElement(3G), glCallList(3G), glCallLists(3G), glColor(3G), glEdgeFlag(3G), glEvalCoord(3G),
       glEvalPoint(3G), glIndex(3G), glMaterial(3G), glNormal(3G), glTexCoord(3G), glVertex(3G)






                                                                                                 GLBEGIN(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.