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

# gluTessBeginPolygon(3x)

delimit a polygon description

## NAME

**gluTessBeginPolygon** - delimit a polygon description

## C SPECIFICATION

void **gluTessBeginPolygon**( GLUtesselator\* *tess*,

```
	GLvoid* data )
```

delim $$

## PARAMETERS

- *tess*

  Specifies the tessellation object (created with **gluNewTess**).

- *data*

  Specifies a pointer to user polygon data.

## DESCRIPTION

**gluTessBeginPolygon** and **gluTessEndPolygon** delimit the definition of a convex, concave or self-intersecting polygon. Within each **gluTessBeginPolygon**/**gluTessEndPolygon** pair, there must be one or more calls to **gluTessBeginContour**/**gluTessEndContour**.  Within each contour, there are zero or more calls to **gluTessVertex**. The vertices  specify a closed contour (the last vertex of each contour is automatically linked  to the first). See the **gluTessVertex**, **gluTessBeginContour**, and  **gluTessEndContour** reference pages for more details.

*data* is a pointer to a user-defined data structure. If the appropriate callback(s)  are specified (see **gluTessCallback**), then this pointer is returned to the  callback function(s). Thus, it is a convenient way to store per-polygon information.

Once **gluTessEndPolygon** is called, the polygon is tessellated, and the resulting triangles are described through callbacks. See **gluTessCallback** for descriptions of the callback functions.

## EXAMPLE

A quadrilateral with a triangular hole in it can be described as follows:

gluTessBeginPolygon(tobj, NULL);\
  gluTessBeginContour(tobj);\
    gluTessVertex(tobj, v1, v1);\
    gluTessVertex(tobj, v2, v2);\
    gluTessVertex(tobj, v3, v3);\
    gluTessVertex(tobj, v4, v4);\
  gluTessEndContour(tobj);\
  gluTessBeginContour(tobj);\
    gluTessVertex(tobj, v5, v5);\
    gluTessVertex(tobj, v6, v6);\
    gluTessVertex(tobj, v7, v7);\
  gluTessEndContour(tobj); gluTessEndPolygon(tobj);

## SEE ALSO

**gluNewTess(3G)**, **gluTessBeginContour(3G)**, **gluTessVertex(3G)**,  **gluTessCallback(3G)**, **gluTessProperty(3G)**, **gluTessNormal(3G)**, **gluTessEndPolygon(3G)**
