This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

# PgDrawEllipse(), PgDrawEllipseCx()

Draw an ellipse

## Synopsis:

```int PgDrawEllipse( PhPoint_t const *center,
unsigned int flags );

int PgDrawEllipseCx( void *dc,
PhPoint_t const *center,
unsigned int flags );```

## Arguments:

dc
PgDrawEllipseCx() only. A void pointer to any type of draw context. Examples of draw contexts are:
center
Defines the ellipse's center.
Defines the ellipse's x and y radii.
flags
Must be one of the following:
• Pg_DRAW_STROKE — draw as a line.
• Pg_DRAW_FILL — fill the ellipse.
• Pg_DRAW_FILL_STROKE — fill the ellipse, then stroke it.

To have the function interpret the center and radii arguments as the upper-left and lower-right coordinates respectively, OR flags with Pg_EXTENT_BASED.

ph

## Description:

These functions build a command in the draw buffer to draw an ellipse. PgDrawEllipse() works on the current draw context, while you can specify the draw context for PgDrawEllipseCx().

## Returns:

0
Success.
-1
The draw buffer is too small to hold the current draw state and the draw command.

## Examples:

The following example:

```DrawStrokeElli() {
PhPoint_t   c = { 80, 60 };
PhPoint_t   r = { 72, 52 };

PgSetStrokeColor( Pg_WHITE );
PgDrawEllipse( &c, &r, Pg_DRAW_STROKE );
}```

will draw:

The following example:

```DrawFillElli() {
PhPoint_t   c = { 80, 60 };
PhPoint_t   r = { 72, 52 };

PgSetFillColor( Pg_PURPLE );
PgDrawEllipse( &c, &r, Pg_DRAW_FILL );
}```

will draw:

The following example:

```DrawFillStrokeElli() {
PhPoint_t   c = { 80, 60 };
PhPoint_t   r = { 72, 52 };

PgSetFillColor( Pg_PURPLE );
PgSetStrokeColor( Pg_WHITE );

PgDrawEllipse( &c, &r, Pg_DRAW_FILL_STROKE );
}```

will draw:

## Classification:

Photon

Safety:
Interrupt handler No
Signal handler No