# FreeBSD Manual Pages

GLBEGIN() GLBEGIN()NAMEglBegin,glEnd- delimit the vertices of a primitive or a group of like primitivesC SPECIFICATIONvoidglBegin( GLenummode)PARAMETERSmodeSpecifies the primitive or primitives that will be created from vertices presented betweenglBeginand the subsequentglEnd. 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, andGL_POLYGON.C SPECIFICATIONvoidglEnd( void )DESCRIPTIONglBeginandglEnddelimit the vertices that define a primitive or a group of like primitives.glBeginaccepts a single argument that spec- ifies in which of ten ways the vertices are interpreted. Takingnas an integer count starting at one, andNas the total number of vertices specified, the interpretations are as follows:GL_POINTSTreats each vertex as a single point. Vertexndefines pointn.Npoints are drawn.GL_LINESTreats each pair of vertices as an independent line segment. Vertices2n-1and2ndefine linen.N/2lines are drawn.GL_LINE_STRIPDraws a connected group of line segments from the first vertex to the last. Verticesnandn+1de- fine linen.N-1lines are drawn.GL_LINE_LOOPDraws a connected group of line segments from the first vertex to the last, then back to the first. Verticesnandn+1define linen. The last line, however, is defined by verticesNand1.Nlines are drawn.GL_TRIANGLESTreats each triplet of vertices as an independent triangle. Vertices3n-2,3n-1, and3ndefine tri- anglen.N/3triangles are drawn.GL_TRIANGLE_STRIPDraws a connected group of triangles. One trian- gle is defined for each vertex presented after the first two vertices. For oddn, verticesn,n+1, andn+2define trianglen. For evenn, verticesn+1,n, andn+2define trianglen.N-2triangles are drawn.GL_TRIANGLE_FANDraws a connected group of triangles. One trian- gle is defined for each vertex presented after the first two vertices. Vertices1,n+1, andn+2de- fine trianglen.N-2triangles are drawn.GL_QUADSTreats each group of four vertices as an indepen- dent quadrilateral. Vertices4n-3,4n-2,4n-1, and4ndefine quadrilateraln.N/4quadrilaterals are drawn.GL_QUAD_STRIPDraws a connected group of quadrilaterals. One quadrilateral is defined for each pair of vertices presented after the first pair. Vertices2n-1,2n,2n+2, and2n+1define quadrilateraln.N/2-1quadrilaterals 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_POLYGONDraws a single, convex polygon. Vertices1throughNdefine this polygon. Only a subset of GL commands can be used betweenglBeginandglEnd. The commands areglVertex,glColor,glIndex,glNormal,glTexCoord,glE-valCoord,glEvalPoint,glArrayElement,glMaterial, andglEdgeFlag. Also, it is acceptable to useglCallListorglCallListsto execute dis- play lists that include only the preceding commands. If any other GL command is executed betweenglBeginandglEnd, the error flag is set and the command is ignored. Regardless of the value chosen formode, there is no limit to the num- ber of vertices that can be defined betweenglBeginandglEnd. 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 areGL_LINES(2),GL_TRIANGLES(3),GL_QUADS(4), andGL_QUAD_STRIP(2).ERRORSGL_INVALID_ENUMis generated ifmodeis set to an unaccepted value.GL_INVALID_OPERATIONis generated ifglBeginis executed between aglBeginand the corresponding execution ofglEnd.GL_INVALID_OPERATIONis generated ifglEndis executed without being preceded by aglBegin.GL_INVALID_OPERATIONis generated if a command other thanglVertex,gl-Color,glIndex,glNormal,glTexCoord,glEvalCoord,glEvalPoint,glAr-rayElement,glMaterial,glEdgeFlag,glCallList, orglCallListsis exe- cuted between the execution ofglBeginand the corresponding executionglEnd. Execution ofglEnableClientState,glDisableClientState,glEdgeFlag-Pointer,glTexCoordPointer,glColorPointer,glIndexPointer,glNormal-Pointer,glVertexPointer,glInterleavedArrays, orglPixelStoreis not allowed after a call toglBeginand before the corresponding call toglEnd, but an error may or may not be generated.SEE ALSOglArrayElement,glCallList,glCallLists,glColor,glEdgeFlag,glEvalCo-ord,glEvalPoint,glIndex,glMaterial,glNormal,glTexCoord,glVertexGLBEGIN()

NAME | C SPECIFICATION | PARAMETERS | C SPECIFICATION | DESCRIPTION | ERRORS | SEE ALSO

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

<https://man.freebsd.org/cgi/man.cgi?query=glBegin&sektion=3&manpath=FreeBSD+13.1-RELEASE+and+Ports>