glPolygonMode — select a polygon rasterization mode
void glPolygonMode (GLenum face, GLenum mode);
Specifies the polygons that mode applies to. Must be GL_FRONT
for front-facing polygons, GL_BACK
for back-facing polygons, or GL_FRONT_AND_BACK
for front- and back-facing polygons.
Specifies how polygons will be rasterized. Accepted values are GL_POINT
, GL_LINE
, and GL_FILL
.
The initial value is GL_FILL
for both front- and back-facing polygons.
glPolygonMode controls the interpretation of polygons for rasterization. face describes which polygons mode
applies to: front-facing polygons (GL_FRONT
), back-facing polygons (GL_BACK
), or both
(GL_FRONT_AND_BACK
). The polygon mode affects only the final rasterization of polygons. In particular, a polygon's vertices
are lit and the polygon is clipped and possibly culled before these modes are applied.
Three modes are defined and can be specified in mode:
Polygon vertices that are marked as the start of a boundary edge are drawn as points. Point attributes such as
GL_POINT_SIZE
and GL_POINT_SMOOTH
control the rasterization of the points. Polygon rasterization attributes other
than GL_POLYGON_MODE
have no effect.
Boundary edges of the polygon are drawn as line segments. They are treated as connected line segments for line stippling; the line
stipple counter and pattern are not reset between segments (see glLineStipple). Line attributes such as
GL_LINE_WIDTH
and GL_LINE_SMOOTH
control the rasterization of the lines. Polygon rasterization attributes other
than GL_POLYGON_MODE
have no effect.
The interior of the polygon is filled. Polygon attributes such as GL_POLYGON_STIPPLE
and GL_POLYGON_SMOOTH
control the rasterization of the polygon.
To draw a surface with filled back-facing polygons and outlined front-facing polygons, call
glPolygonMode (GL_FRONT, GL_LINE);
Vertices are marked as boundary or nonboundary with an edge flag. Edge flags are generated internally by the GL when it decomposes polygons; they can be set explicitly using glEdgeFlag.
GL_INVALID_ENUM
is generated if either face or mode is not an accepted value.
GL_INVALID_OPERATION
is generated if glPolygonMode is executed between the execution of glBegin and the
corresponding execution of glEnd.
glGet with argument GL_POLYGON_MODE
glBegin, glEdgeFlag, glLineStipple, glLineWidth, glPointSize, glPolygonStipple