---
name: "glPolygonMode"
section: "3x"
platform: "linux"
package: "xlibmesa-gl-dev"
version: "4.3.0.dfsg.1-14sarge7"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/glPolygonMode"
---

# glPolygonMode(3x)

select a polygon rasterization mode

## NAME

**glPolygonMode** - select a polygon rasterization mode

## C SPECIFICATION

void **glPolygonMode**( GLenum *face*,

```
	GLenum mode )
```

## PARAMETERS

- *face*

  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.

- *mode*

  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.

## DESCRIPTION

**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*:

- **GL\_POINT**

  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.

- **GL\_LINE**

  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.

- **GL\_FILL**

  The interior of the polygon is filled. Polygon attributes such as **GL\_POLYGON\_STIPPLE** and **GL\_POLYGON\_SMOOTH** control the rasterization of the polygon.

## EXAMPLES

To draw a surface with filled back-facing polygons and outlined front-facing polygons, call glPolygonMode(**GL\_FRONT**, **GL\_LINE**);

## NOTES

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**.

## ERRORS

**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**.

## ASSOCIATED GETS

**glGet** with argument **GL\_POLYGON\_MODE**

## SEE ALSO

**glBegin(3G)**, **glEdgeFlag(3G)**, **glLineStipple(3G)**, **glLineWidth(3G)**, **glPointSize(3G)**, **glPolygonStipple(3G)**
