GreSetCurrentPosition: Difference between revisions
Created page with "GreSetCurrentPosition sets the current (X,Y) position and resets the line type sequence. This function must be supported by all presentation drivers. GreSetCurrentPosition i..." |
mNo edit summary |
||
Line 1: | Line 1: | ||
GreSetCurrentPosition sets the current (X,Y) position and resets the line type sequence. | GreSetCurrentPosition sets the current (X,Y) position and resets the line type sequence. | ||
This function must be supported by all presentation drivers. GreSetCurrentPosition is called by the function GpiSetCurrentPosition. GreSetCurrentPosition might be called in response to any of the Presentation Manager drawing functions, which end their operations by updating the current presentation space position. | This function must be supported by all presentation drivers. GreSetCurrentPosition is called by the function GpiSetCurrentPosition. GreSetCurrentPosition might be called in response to any of the Presentation Manager drawing functions, which end their operations by updating the current presentation space position. | ||
; Simulation support: None. This function is mandatory for all drivers. | ;Simulation support: None. This function is mandatory for all drivers. | ||
== Syntax == | == Syntax == | ||
GreSetCurrentPosition(hdc, pptlPosition, pInstance, lFunction) | GreSetCurrentPosition(hdc, pptlPosition, pInstance, lFunction) | ||
== Parameters == | == Parameters == | ||
; hdc (HDC) - input | ;hdc (HDC) - input: Device context handle. | ||
;pptlPosition (PPOINTL) - input: Pointer to new current position. | |||
; pptlPosition (PPOINTL) - input : Pointer to new current position. | :When COM_TRANSFORM is set, the current position is expressed in world coordinates. Otherwise, this value is passed in device coordinates. The handling routine must transform these values as appropriate. Typically, the presentation driver maintains the current position in both coordinate sets in the DC instance data structure. | ||
;pInstance (PVOID) - input: Pointer to instance data. | |||
: When COM_TRANSFORM is set, the current position is expressed in world coordinates. Otherwise, this value is passed in device coordinates. The handling routine must transform these values as appropriate. Typically, the presentation driver maintains the current position in both coordinate sets in the DC instance data structure. | ;lFunction (ULONG) - input: High-order WORD=flags; low-order WORD=NGreSetCurrentPosition. | ||
; pInstance (PVOID) - input : Pointer to instance data. | |||
; lFunction (ULONG) - input : High-order WORD=flags; low-order WORD=NGreSetCurrentPosition. | |||
== Returns == | == Returns == | ||
; rc (BOOL) - returns : Return code. | ;rc (BOOL) - returns: Return code. | ||
On completion, the handling routine must return a BOOLEAN value to indicate success or an error. | On completion, the handling routine must return a BOOLEAN value to indicate success or an error. | ||
* 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_BASE_ERROR | |||
* PMERR_COORDINATE_OVERFLOW | |||
* PMERR_DEV_FUNC_NOT_INSTALLED | |||
* PMERR_HDC_BUSY | |||
* PMERR_INV_COORD_SPACE | |||
* PMERR_INV_HDC | |||
* PMERR_INV_LENGTH_OR_COUNT | |||
* PMERR_PATH_LIMIT_EXCEEDED | |||
== Remarks == | == Remarks == | ||
Typically, the handling routine also sets a flag in the DC instance data structure to indicate that the first pel of the next line must be drawn. When the COM_AREA or COM_PATH flag is set, this function is part of an area or path definition. In either case, the handling routine usually passes the call back to the graphics engine for processing by the default handling routine. The call would not be passed back to the graphics engine if the presentation driver had hooked all of the area and path functions. | Typically, the handling routine also sets a flag in the DC instance data structure to indicate that the first pel of the next line must be drawn. When the COM_AREA or COM_PATH flag is set, this function is part of an area or path definition. In either case, the handling routine usually passes the call back to the graphics engine for processing by the default handling routine. The call would not be passed back to the graphics engine if the presentation driver had hooked all of the area and path functions. | ||
When the current context is "in area," a figure closure line is generated (if necessary). This can cause a correlation hit to occur on an area boundary. The current position should only be correlated on, merged into the bounds, or both correlated and merged, if it is actually used in a drawing primitive. | When the current context is "in area," a figure closure line is generated (if necessary). This can cause a correlation hit to occur on an area boundary. The current position should only be correlated on, merged into the bounds, or both correlated and merged, if it is actually used in a drawing primitive. | ||
The following is an example: | |||
... | ... | ||
GreSetCurrentPosition (hdc, p1); | GreSetCurrentPosition (hdc, p1); | ||
Line 70: | Line 48: | ||
GrePolyLine (hdc, to p3, n); | GrePolyLine (hdc, to p3, n); | ||
... | ... | ||
Notice that the sequence does not merge p1 into the bounds or correlate on it. | |||
Notice that the sequence does not merge p1 into the bounds or correlate on it. | |||
[[Category:Gre]] | [[Category:Gre]] |
Revision as of 16:10, 29 February 2020
GreSetCurrentPosition sets the current (X,Y) position and resets the line type sequence.
This function must be supported by all presentation drivers. GreSetCurrentPosition is called by the function GpiSetCurrentPosition. GreSetCurrentPosition might be called in response to any of the Presentation Manager drawing functions, which end their operations by updating the current presentation space position.
- Simulation support
- None. This function is mandatory for all drivers.
Syntax
GreSetCurrentPosition(hdc, pptlPosition, pInstance, lFunction)
Parameters
- hdc (HDC) - input
- Device context handle.
- pptlPosition (PPOINTL) - input
- Pointer to new current position.
- When COM_TRANSFORM is set, the current position is expressed in world coordinates. Otherwise, this value is passed in device coordinates. The handling routine must transform these values as appropriate. Typically, the presentation driver maintains the current position in both coordinate sets in the DC instance data structure.
- pInstance (PVOID) - input
- Pointer to instance data.
- lFunction (ULONG) - input
- High-order WORD=flags; low-order WORD=NGreSetCurrentPosition.
Returns
- rc (BOOL) - returns
- Return code.
On completion, the handling routine must return a BOOLEAN value to indicate success or an error.
- 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_BASE_ERROR
- PMERR_COORDINATE_OVERFLOW
- PMERR_DEV_FUNC_NOT_INSTALLED
- PMERR_HDC_BUSY
- PMERR_INV_COORD_SPACE
- PMERR_INV_HDC
- PMERR_INV_LENGTH_OR_COUNT
- PMERR_PATH_LIMIT_EXCEEDED
Remarks
Typically, the handling routine also sets a flag in the DC instance data structure to indicate that the first pel of the next line must be drawn. When the COM_AREA or COM_PATH flag is set, this function is part of an area or path definition. In either case, the handling routine usually passes the call back to the graphics engine for processing by the default handling routine. The call would not be passed back to the graphics engine if the presentation driver had hooked all of the area and path functions.
When the current context is "in area," a figure closure line is generated (if necessary). This can cause a correlation hit to occur on an area boundary. The current position should only be correlated on, merged into the bounds, or both correlated and merged, if it is actually used in a drawing primitive.
The following is an example:
... GreSetCurrentPosition (hdc, p1); ... ... ... GreSetCurrentPosition (hdc, p2); ... ... ... GrePolyLine (hdc, to p3, n); ...
Notice that the sequence does not merge p1 into the bounds or correlate on it.