Jump to content

GrePolygonSet: Difference between revisions

From EDM2
Created page with "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..."
 
Ak120 (talk | contribs)
mNo edit summary
 
Line 1: Line 1:
GrePolygonSet draws a set of closed polygons.  
GrePolygonSet draws a set of closed polygons.


This function can be hooked by the presentation driver.  
This function can be hooked by the presentation driver.


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


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


==Parameters==
==Parameters==
;hdc (HDC) - input  
;hdc (HDC) - input:Device context handle.
:Device context handle.  
;flModel (LONG) - input:Model flags.
 
:These flags determine how polygons are drawn:
;flModel (LONG) - input  
::POLYGON_INCL: Default setting. Fill is inclusive of bottom right.
:Model flags.  
::POLYGON_EXCL: Fill is exclusive of bottom right. Aids migration from other graphics models.
 
;flOptions (ULONG) - input:Option flags.
:These flags determine how polygons are drawn:  
:These flags determine how the polygons are filled:
 
::POLYGON_ALTERNATE: Fill is performed by using the alternate mode.
:;POLYGON_INCL  
::POLYGON_WINDING: Fill is performed by using the winding mode.
::Default setting. Fill is inclusive of bottom right.  
::POLYGON_BOUNDARY: Draw boundary lines.
:;POLYGON_EXCL  
::POLYGON_NOBOUNDARY: Do not draw boundary lines.
::Fill is exclusive of bottom right. Aids migration from other graphics models.  
;paPolygon (PPOLYGON) - input:Pointer to an array of POLYGON structures:
 
::ulPoints Number of points in this polygon
;flOptions (ULONG) - input  
::aPointl Array of points defining polygon
;Option flags.  
:If COM_TRANSFORM is not set, the function expects the points to be in screen coordinates.
 
;cPolygons (LONG) - input:Number of POLYGON structures.
;These flags determine how the polygons are filled:  
:When this is passed as 0, no action is taken except to return Successful.
 
;pInstance (PVOID) - input:Pointer to instance data.
:;POLYGON_ALTERNATE  
;lFunction (ULONG) - input:High-order WORD=flags; low-order WORD = NGrePolygonSet.
::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==
==Return Code==
;rc (LONG) - returns  
;rc (LONG) - returns:Return codes.
:Return codes.  
:This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
 
:*GPI_OK Successful
:This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:  
:*GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
 
:*GPI_ERROR Error
:*GPI_OK Successful  
: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:
:*GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)  
:*PMERR_COORDINATE_OVERFLOW
:*GPI_ERROR Error  
:*PMERR_INV_IN_AREA
 
:*PMERR_INV_IN_PATH
: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:  
:Refer to the "Error Explanations" section in the ''Presentation Manager Programming Reference'' for further explanation.
 
:*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==
==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.  
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.  
;Note: GrePolygonSet is not valid when the COM_AREA or COM_PATH flag is set.


==Sample Code==
==Sample Code==
Line 96: Line 63:
       paPolygon, cPolygons, pInstance, lFunction);
       paPolygon, cPolygons, pInstance, lFunction);
</PRE>
</PRE>


[[Category:Gre]]
[[Category:Gre]]

Latest revision as of 23:08, 24 March 2020

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);