Provided by: allegro5-doc_5.2.6.0-1_all

NAME

```       al_draw_filled_polygon_with_holes - Allegro 5 API

```

SYNOPSIS

```              #include <allegro5/allegro_primitives.h>

void al_draw_filled_polygon_with_holes(const float *vertices,
const int *vertex_counts, ALLEGRO_COLOR color)

```

DESCRIPTION

```       Draws a filled simple polygon with zero or more other simple polygons subtracted from it -
the holes.  The holes cannot touch or intersect with the outline of the filled polygon.

· vertices - Interleaved array of (x, y) vertex coordinates  for  each  of  the  polygons,
including holes.

· vertex_counts  -  Number  of  vertices  for each polygon.  The number of vertices in the
filled polygon is given by vertex_counts[0] and must  be  at  least  three.   Subsequent
elements  indicate  the  number  of vertices in each hole.  The array must be terminated
with an element with value zero.

· color - Color of the filled polygon

All hole vertices must use the opposite order (clockwise  with  y  down)  of  the  polygon
vertices.   All  hole vertices must be inside the main polygon and no hole may overlap the
main polygon.

For example:

float vertices[] = {
0,   0, // filled polygon, upper left corner
0, 100, // filled polygon, lower left corner
100, 100, // filled polygon, lower right corner
100,   0, // filled polygon, upper right corner
10,  10, // hole, upper left
90,  10, // hole, upper right
90,  90  // hole, lower right
};
int vertex_counts[] = {
4, // number of vertices for filled polygon
3, // number of vertices for hole
0  // terminator
};

There are 7 vertices: four for an outer square from (0, 0) to (100, 100) in anti-clockwise
order,  and  three  more for an inner triangle in clockwise order.  The outer main polygon
uses vertices 0 to 3 (inclusive) and the hole uses vertices 4 to 6 (inclusive).

```

SINCE

```       5.1.0

```

SEEALSO

```       al_draw_filled_polygon(3alleg5),               al_draw_filled_polygon_with_holes(3alleg5),
al_triangulate_polygon(3alleg5)
```