Jump to content

GreConvert

From EDM2
Revision as of 16:28, 30 November 2019 by Martini (talk | contribs) (Returns)

GreConvert converts the specified coordinates from one coordinate space to another by using the current values of the transforms.

This function can be hooked by the presentation driver.

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

Syntax

GreConvert(hdc, lSrc, lDst, paptlPoint, cPoints, pInstance, lFunction);

Parameters

hdc (HDC) - input
Device context handle.
lSrc (LONG) - input
Source-coordinate space.
CVTC_WORLD
World-coordinate space
CVTC_MODEL
Model space
CVTC_DEFAULTPAGE
Default page-coordinate space
CVTC_PAGE
Page-coordinate space
CVTC_DEVICE
Device-coordinate space. Screen coordinates are 32-bit signed integers and are used by the presentation driver as screen pel addresses.
lDst (LONG) - input
Target-coordinate space. Defined by the same values as lSrc.
paptlPoint (PPOINTL) - input
Pointer to array of (x, y) coordinates to transform. The result is also returned to this parameter.
cPoints (LONG) - input
Count of coordinate pairs in the array.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreConvert.

Returns

fSuccess (BOOL) - returns
This function returns BOOLEAN (fSuccess).
TRUE
Successful
FALSE
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_HDC_BUSY
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_HDC
  • PMERR_INV_LENGTH_OR_COUNT

Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Sample

#define INCL_GRE_XFORMS
#include <os2.h>

HDC        hdc;         /*  Device context handle. */
LONG       lSrc;        /*  Source-coordinate space. */
LONG       lDst;        /*  Target-coordinate space.  Defined by the same values as lSrc. */
PPOINTL    paptlPoint;
LONG       cPoints;     /*  Count of coordinate pairs in the array. */
PVOID      pInstance;   /*  Pointer to instance data. */
ULONG      lFunction;   /*  High-order WORD=flags; low-order WORD=NGreConvert. */
BOOL       fSuccess;    /*  This function returns BOOLEAN (fSuccess). */

fSuccess = GreConvert(hdc, lSrc, lDst, paptlPoint,
             cPoints, pInstance, lFunction);