GrePolygonSet
From EDM2
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);