These functions build a command in the draw buffer to draw a
polygon from an array of points, pointed to by ptr, with
num entries.

The array of points must fit in the draw buffer for all these functions.

PgDrawPolygon() and PgDrawPolygonv() work on the current
draw context, while you can specify the draw context dc for
PgDrawPolygonCx() and PgDrawPolygonCxv().

The flags argument must be one of
the following:

Pg_DRAW_STROKE

Draw a stroked polygon.

Pg_DRAW_FILL

Draw a filled polygon.

Pg_DRAW_FILL_STROKE

Draw a filled polygon, then stroke it.

You can OR flags with
any combination of the following:

Pg_CLOSED

Connect the last point to the first.

Pg_RELATIVE

Use relative coordinates to draw the polygon.
Each point is relative to the previous point.

For absolute coordinates, pos is
added to each point pointed to by
ptr. For relative coordinates, the
first coordinate is the sum of pos
and the first point of the array; any subsequent coordinate
is the sum of the previous point and the next point of the
array.

If you call the “v” forms of this function, the data isn't
physically copied into the draw buffer. Instead, a pointer
to the array is stored until the draw buffer is flushed.
Make sure you call PgFlush() or PgFlushCx()
before you modify the point array.