GrePolygonSet

From EDM2
Jump to: navigation, search

GrePolygonSet draws a set of closed polygons.

This function can be hooked by the presentation driver.

Simulation support
This function is simulated by a handling routine in the graphics engine.

Syntax

GrePolygonSet(hdc, flModel, flOptions, paPolygon, cPolygons, pInstance, lFunction)

Parameters

hdc (HDC) - input
Device context handle.
flModel (LONG) - input
Model flags.
These flags determine how polygons are drawn:
POLYGON_INCL: Default setting. Fill is inclusive of bottom right.
POLYGON_EXCL: Fill is exclusive of bottom right. Aids migration from other graphics models.
flOptions (ULONG) - input
Option flags.
These flags determine how the polygons are filled:
POLYGON_ALTERNATE: Fill is performed by using the alternate mode.
POLYGON_WINDING: Fill is performed by using the winding mode.
POLYGON_BOUNDARY: Draw boundary lines.
POLYGON_NOBOUNDARY: Do not draw boundary lines.
paPolygon (PPOLYGON) - input
Pointer to an array of POLYGON structures:
ulPoints Number of points in this polygon
aPointl Array of points defining polygon
If COM_TRANSFORM is not set, the function expects the points to be in screen coordinates.
cPolygons (LONG) - input
Number of POLYGON structures.
When this is passed as 0, no action is taken except to return Successful.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD = NGrePolygonSet.

Return Code

rc (LONG) - returns
Return codes.
This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
  • GPI_OK Successful
  • GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
  • GPI_ERROR Error
Possible Errors Detected: When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Remarks

The polygons are filled using the current AREABUNDLE structure values. For the first polygon, the current position is the first point. For all subsequent polygons, all points that define the polygon are given explicitly. The polygons are automatically closed, if necessary, by drawing a line from the last vertex to the first. Notice that polygons can overlap, if needed.

Note
GrePolygonSet is not valid when the COM_AREA or COM_PATH flag is set.

Sample Code

#define INCL_GRE_LINE
#include <os2.h>

HDC         hdc;        /*  Device context handle. */
LONG        flModel;    /*  Model flags. */
ULONG       flOptions;  /*  Option flags. */
PPOLYGON    paPolygon;  /*  Pointer to an array of POLYGON structures: */
LONG        cPolygons;  /*  Number of POLYGON structures. */
PVOID       pInstance;  /*  Pointer to instance data. */
ULONG       lFunction;  /*  High-order WORD=flags; low-order WORD = NGrePolygonSet. */
LONG        rc;         /*  Return codes. */

rc = GrePolygonSet(hdc, flModel, flOptions,
       paPolygon, cPolygons, pInstance, lFunction);