gl.Begin(mode)
gl.Begin()
and gl.End() delimit the vertices that define a primitive or a group of like
primitives. gl.Begin()
accepts a single argument that specifies 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
#GL_LINES
#GL_LINE_STRIP
#GL_LINE_LOOP
#GL_TRIANGLES
#GL_TRIANGLE_STRIP
#GL_TRIANGLE_FAN
#GL_QUADS
#GL_QUAD_STRIP
#GL_POLYGON
Only a subset of GL commands can be used between gl.Begin()
and gl.End(). The commands are gl.Vertex(),
gl.Color(), gl.Index(), gl.Normal(), gl.TexCoord(),
and gl.Material(), gl.EvalCoord(), gl.EvalPoint(), gl.EdgeFlag(),
and gl.ArrayElement(). Also, it is acceptable to use gl.CallList() or gl.CallLists() to execute display lists that include
only the preceding commands. If any other GL command is executed between gl.Begin()
and gl.End(), 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 gl.Begin()
and
gl.End(). 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).
Please consult an OpenGL reference manual for more information.
gl.Begin()
and the subsequent gl.End() (see above)#GL_INVALID_ENUM
is generated if mode
is set to an unaccepted value.
#GL_INVALID_OPERATION
is generated if gl.Begin()
is executed between a gl.Begin()
and the corresponding execution of gl.End().
#GL_INVALID_OPERATION
is generated if gl.End() is executed without being preceded by a glBegin.
#GL_INVALID_OPERATION
is generated if an unsupported command is executed between the execution of gl.Begin()
and the corresponding execution gl.End().
See your OpenGL reference manual for commands that can be executed between gl.Begin()
and gl.End().