Jump to content

GPIGuide - Graphics Functions

From EDM2
Revision as of 23:11, 28 June 2023 by Ak120 (talk | contribs)

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

GPI Guide and Reference
  1. How to Use the GPI Guide and Reference
  2. Graphics Functions
  3. Data Types
  4. Graphics Orders
  5. Graphics Orders Data Types
  6. Errors
  7. Area and Polygon Primitives
  8. Bit Maps
  9. Creating and Drawing Retained Graphics
  10. Character String Primitives
  11. Clipping and Boundary Determination
  12. Color and Mix Attributes
  13. Correlation
  14. Coordinate Spaces and Transformations
  15. Editing Retained Graphics and Graphics Segments
  16. Fonts
  17. Graphics Attributes
  18. Line and Arc Primitives
  19. Marker Primitives
  20. Matrix Multiplication
  21. Metafiles
  22. Print Job Submission and Manipulation
  23. Presentation Spaces and Device Contexts
  24. Paths
  25. Regions
  26. Notices
  27. Glossary

Coordinates

GPI coordinate values that are in world or model space are passed in variables of data type LONG. For a presentation space of format GPIF_LONG (see GpiCreatePS), the signed value must be contained within the low-order 28 bits.

For a presentation space with a format of GPIF_SHORT, the signed value must be contained within the low-order 16 bits. Coordinates that exceed this limit are truncated without error, when stored in a segment. As a consequence, a large positive number may appear as a negative number.

In both instances, after transformation to media space (that is, device space, possibly including a translation for the window origin), coordinate values must be in the range -32 768 through +32 767.

The PMERR_COORDINATE_OVERFLOW error condition occurs if a coordinate is too large to be handled.

Region coordinates must be within the range -32 767 through +32 765.

Matrix Parameter Values

These GPI functions define transforms:

GpiSetSegmentTransformMatrix
GpiSetModelTransformMatrix
GpiCallSegmentMatrix
GpiSetViewingTransformMatrix
GpiSetDefaultViewMatrix
GpiCreatePS
GpiSetPageViewport.
Note
The last two functions define the device transform; the page viewport may be defaulted.

Concatenation of transform matrixes can occur as the transform is specified, for example, if TRANSFORM_ADD is specified. Concatenation also occurs during drawing, between the various transforms in the viewing pipeline.

During the process of concatenation, it is possible for the matrix parameter overflow error, PMERR_INV_MATRIX_ELEMENT, to occur. This error is raised if either of the following conditions occurs for any intermediate value during the concatenation arithmetic (see, for example, GpiSetSegmentTransformMatrix for an explanation of matrix element numbers):

  • Any of the matrix elements 1, 2, 4, or 5 is greater than 32 767 or less than -32 768 (ñ1 for a GPIF_SHORT format presentation space), or
  • Either of elements 7 or 8 is greater than 134 217 727 (2 -1) or less than -134 217 728 (-2) (greater than 32 767 or less than -32 768 for a GPIF_SHORT format presentation space).

Rounding Errors

In general for graphics coordinates, when non-unity transforms (apart from simple translation) are involved, rounding errors occur. For example, adding the coordinates of one point to a delta value, to produce the coordinates of a second point (all in world coordinates) does not always map to the same device pel as if the computation had been done in device coordinates. Such errors can be avoided if calculations are done in device coordinates, or if there are no scaling (or rotational, or shear) elements in the transforms. Alternatively, the problems can be reduced, though not eliminated, by defining very fine world coordinates.

Drawing Process Check Errors

Some GPI functions involve processing buffers of graphics orders or retained graphics segments (the data for which consists of graphics orders). These functions can give rise to Drawing Process Check (DPC) errors if an order is found that either is not valid in its context or that contains invalid data. If this happens, processing of the function stops and the error is recorded. Note that orders up to the one found to be in error are processed by the function, and output occurs if drawing is being performed.

Each function that can return these errors has Drawing Process Check errors in its error condition list. The full list of DPC errors is:

PMERR_INV_IN_AREA PMERR_INV_IN_PATH
PMERR_INV_IN_ELEMENT
PMERR_ALREADY_IN_ELEMENT
PMERR_STOP_DRAW_OCCURRED (warning)
PMERR_PATH_INCOMPLETE
PMERR_AREA_INCOMPLETE
PMERR_IMAGE_INCOMPLETE
PMERR_INV_ORDER_LENGTH
PMERR_NOT_IN_IMAGE
PMERR_NOT_IN_AREA
PMERR_NOT_IN_ELEMENT
PMERR_NOT_IN_PATH
PMERR_INSUFFICIENT_MEMORY
PMERR_SEG_CALL_STACK_EMPTY
PMERR_SEG_CALL_STACK_FULL
PMERR_TRUNCATED_ORDER
PMERR_CALLED_SEG_NOT_FOUND
PMERR_DYNAMIC_SEG_SEQ_ERROR
PMERR_PROLOG_ERROR
PMERR_INV_IN_VECTOR_SYMBOL

Functions

The GPI Functions are listed here

GPI Function Context

A number of the GPI error conditions indicate that a function has been used in the wrong context. This appendix lists every function and shows, for each one, whether it can be used:

  • In a micro presentation space
  • While there is an open segment bracket
  • While there is an open area bracket
  • While there is an open element bracket
  • While there is an open path bracket.

A yes (Yes) means that a function can be used; a no (No) means that it cannot. There are some additional qualifiers in the form of superscript numbers. These generally indicate some further restriction on the context in which a function can be called, and are explained at the end of this appendix.

Where GPI Functions Can Be Called

Gpi Function                    ³Micro PS³Segment³Area   ³Element³Path
                                ³        ³Bracket³Bracket³Bracket³Bracket

GpiAnimatePalette               ³Yes(8,9)³Yes    ³No     ³Yes    ³No
GpiAssociate                    ³No      ³Yes    ³No(7)  ³Yes(6) ³No(7)
GpiBeginArea                    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiBeginElement                 ³No      ³Yes    ³Yes    ³No     ³Yes
GpiBeginPath                    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiBitBlt                       ³Yes     ³Yes    ³No     ³Yes    ³No
GpiBox                          ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiCallSegmentMatrix            ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiCharString                   ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiCharStringAt                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiCharStringPos                ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiCharStringPosAt              ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiCloseFigure                  ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiCloseSegment                 ³No      ³Yes    ³No(7)  ³Yes    ³No(7)
GpiCombineRegion                ³Yes     ³Yes    ³No     ³Yes    ³No
GpiComment                      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiConvert                      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiConvertWithMatrix            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiCopyMetaFile                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiCorrelateChain               ³No      ³Yes    ³No     ³No     ³No
GpiCorrelateFrom                ³No      ³Yes    ³No     ³No     ³No
GpiCorrelateSegment             ³No      ³Yes    ³No     ³No     ³No
GpiCreateBitmap                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiCreateLogColorTable          ³Yes     ³Yes    ³No     ³Yes    ³No
GpiCreateLogFont                ³Yes     ³Yes    ³No     ³No     ³Yes
GpiCreatePalette                ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiCreatePS                     ³-       ³-      ³-      ³-      ³-
GpiCreateRegion                 ³Yes     ³Yes    ³No     ³Yes    ³No
GpiDeleteBitmap                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiDeleteElement                ³No      ³Yes(3) ³Yes(3) ³No     ³Yes(3)
GpiDeleteElementRange           ³No      ³Yes(3) ³Yes(3) ³No     ³Yes(3)
GpiDeleteElementsBetweenLabels  ³No      ³Yes(3) ³Yes(3) ³No     ³Yes(3)
GpiDeleteMetaFile               ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiDeletePalette                ³Yes(9)  ³Yes    ³Yes    ³Yes    ³Yes
GpiDeleteSegment                ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiDeleteSegments               ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiDeleteSetId                  ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiDestroyPS                    ³Yes(1)  ³Yes    ³Yes    ³Yes    ³Yes
GpiDestroyRegion                ³Yes     ³Yes    ³No     ³Yes    ³No
GpiDrawBits                     ³Yes(10) ³Yes    ³Yes    ³Yes    ³Yes
GpiDrawChain                    ³No      ³Yes    ³No     ³No     ³No
GpiDrawDynamics                 ³No      ³Yes    ³No     ³No     ³No
GpiDrawFrom                     ³No      ³Yes    ³No     ³No     ³No
GpiDrawSegment                  ³No      ³Yes    ³No     ³No     ³No
GpiElement                      ³No      ³Yes    ³Yes    ³No     ³Yes
GpiEndArea                      ³Yes     ³Yes    ³Yes    ³Yes    ³No
GpiEndElement                   ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiEndPath                      ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiEqualRegion                  ³Yes     ³Yes    ³No     ³Yes    ³No
GpiErase                        ³Yes     ³Yes    ³No     ³Yes    ³No
GpiErrorSegmentData             ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiExcludeClipRectangle         ³Yes     ³Yes    ³No     ³Yes    ³No
GpiFillPath                     ³Yes     ³Yes    ³No     ³Yes    ³No
GpiFullArc                      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiGetData                      ³No      ³Yes(5) ³Yes    ³Yes    ³Yes
GpiImage                        ³Yes     ³Yes    ³No     ³Yes    ³No
GpiIntersectClipRectangle       ³Yes     ³Yes    ³No     ³Yes    ³No
GpiLabel                        ³No      ³Yes    ³Yes    ³No     ³Yes
GpiLine                         ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiLoadBitmap                   ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiLoadFonts                    ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiLoadMetaFile                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiLoadPublicFonts              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiMarker                       ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiModifyPath                   ³Yes     ³Yes    ³No     ³Yes    ³No
GpiMove                         ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiOffsetClipRegion             ³Yes     ³Yes    ³No     ³Yes    ³No
GpiOffsetElementPointer         ³No      ³Yes(3) ³Yes(3) ³No     ³Yes(3)
GpiOffsetRegion                 ³Yes     ³Yes    ³No     ³Yes    ³No
GpiOpenSegment                  ³No      ³No     ³No(7)  ³Yes(6) ³No(7)
GpiOutlinePath                  ³Yes     ³Yes    ³No     ³Yes    ³No
GpiPaintRegion                  ³Yes     ³Yes    ³No     ³Yes    ³No
GpiPartialArc                   ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPathToRegion                 ³Yes     ³Yes    ³Yes    ³Yes    ³No
GpiPlayMetaFile                 ³Yes     ³No     ³No     ³No     ³No
GpiPointArc                     ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPolyFillet                   ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPolyFilletSharp              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPolygons                     ³Yes     ³Yes    ³No     ³Yes    ³No
GpiPolyLine                     ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPolyLineDisjoint             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPolyMarker                   ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiPolySpline                   ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiPop                          ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiPtInRegion                   ³Yes     ³Yes    ³No     ³Yes    ³No
GpiPtVisible                    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiPutData                      ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryArcParams               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryAttrMode                ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryAttrs                   ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryBackColor               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryBackMix                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryBitmapBits              ³Yes     ³Yes(4) ³No     ³Yes    ³No
GpiQueryBitmapDimension         ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryBitmapHandle            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryBitmapInfoHeader        ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryBitmapParameters        ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryBoundaryData            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryCharAngle               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharBox                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharBreakExtra          ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharDirection           ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiQueryCharExtra               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharMode                ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharSet                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharShear               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharStringPos           ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryCharStringPosAt         ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryClipBox                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryClipRegion              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryColor                   ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryColorData               ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryColorIndex              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryCp                      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryCurrentPosition         ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryDefArcParams            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDefAttrs                ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDefaultViewMatrix       ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDefCharBox              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDefTag                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDefViewingLimits        ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDevice                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDeviceBitmapFormats     ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDrawControl             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryDrawingMode             ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryEditMode                ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryElement                 ³No      ³Yes(3) ³Yes(3) ³Yes(3) ³Yes(3)
GpiQueryElementPointer          ³No      ³Yes(3) ³Yes(3) ³Yes(3) ³Yes(3)
GpiQueryElementType             ³No      ³Yes(3) ³Yes(3) ³Yes(3) ³Yes(3)
GpiQueryFaceString              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryFontAction              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryFontMetrics             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryFonts                   ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryFullFontFileDescs       ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryGraphicsField           ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryInitialSegmentAttrs     ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryKerningPairs            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryLineEnd                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryLineJoin                ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryLineType                ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryLineWidth               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryLineWidthGeom           ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryLogColorTable           ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryLogicalFont             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryMarker                  ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryMarkerSet               ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryMetaFileBits            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryMetaFileLength          ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryMix                     ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryModelTransformMatrix    ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryNearestColor            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryNumberSetIds            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPageViewport            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPalette                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPaletteInfo             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPattern                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryPatternRefPoint         ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryPatternSet              ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryPel                     ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPickAperturePosition    ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPickApertureSize        ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryPS                      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryRealColors              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryRegionBox               ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryRegionRects             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryRGBColor                ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQuerySegmentAttrs            ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQuerySegmentNames            ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQuerySegmentPriority         ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQuerySegmentTransformMatrix  ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQuerySetIds                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryStopDraw                ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryTag                     ³No      ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryTextAlignment           ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryTextBox                 ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryViewingLimits           ³Yes     ³Yes(2) ³Yes(2) ³Yes(2) ³Yes(2)
GpiQueryViewingTransformMatrix  ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiQueryWidthTable              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiRectInRegion                 ³Yes     ³Yes    ³No     ³Yes    ³No
GpiRectVisible                  ³Yes     ³Yes    ³No     ³Yes    ³No
GpiRemoveDynamics               ³No      ³Yes    ³No     ³No     ³No
GpiResetBoundaryData            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiResetPS                      ³Yes     ³Yes    ³Yes(6) ³Yes(6) ³Yes(6)
GpiRestorePS                    ³Yes     ³Yes(4) ³No     ³Yes(4) ³No
GpiRotate                       ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSaveMetaFile                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSavePS                       ³Yes     ³Yes(4) ³No     ³Yes(4) ³No
GpiScale                        ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSelectPalette                ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetArcParams                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetAttrMode                  ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiSetAttrs                     ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetBackColor                 ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetBackMix                   ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetBitmap                    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetBitmapBits                ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetBitmapDimension           ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetBitmapId                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetCharAngle                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCharBox                   ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCharBreakExtra            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetCharDirection             ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCharExtra                 ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetCharMode                  ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCharSet                   ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCharShear                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetClipPath                  ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetClipRegion                ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetColor                     ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCp                        ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetCurrentPosition           ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetDefArcParams              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetDefAttrs                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetDefaultViewMatrix         ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetDefTag                    ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetDefViewingLimits          ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetDrawControl               ³Yes     ³No     ³No     ³No     ³No
GpiSetDrawingMode               ³No      ³No     ³No     ³No     ³No
GpiSetEditMode                  ³No      ³Yes    ³Yes    ³No     ³Yes
GpiSetElementPointer            ³No      ³Yes(2) ³Yes(2) ³No     ³Yes(2)
GpiSetElementPointerAtLabel     ³No      ³Yes(2) ³Yes(2) ³No     ³Yes(2)
GpiSetGraphicsField             ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetInitialSegmentAttrs       ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiSetLineEnd                   ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetLineJoin                  ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetLineType                  ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetLineWidth                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetLineWidthGeom             ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetMarker                    ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetMarkerBox                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetMarkerSet                 ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetMetaFileBits              ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetMix                       ³Yes     ³Yes    ³No     ³Yes    ³Yes
GpiSetModelTransformMatrix      ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetPageViewport              ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPaletteEntries            ³Yes(8)  ³Yes    ³No     ³Yes    ³Yes
GpiSetPattern                   ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPatternRefPoint           ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPatternSet                ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPickAperturePosition      ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPickApertureSize          ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetPS                        ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetRegion                    ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetSegmentAttrs              ³Yes     ³Yes    ³No     ³Yes    ³No
GpiSetSegmentPriority           ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiSetSegmentTransformMatrix    ³No      ³No(5)  ³Yes    ³No     ³Yes
GpiSetStopDraw                  ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiSetTag                       ³No      ³Yes    ³Yes    ³Yes    ³Yes
GpiSetTextAlignment             ³No      ³Yes    ³No     ³Yes    ³Yes
GpiSetViewingLimits             ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiSetViewingTransformMatrix    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiStrokePath                   ³No      ³No     ³No     ³Yes    ³No
GpiTranslate                    ³Yes     ³Yes    ³No     ³Yes    ³No
GpiUnloadFonts                  ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiUnloadPublicFonts            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiUnloadPublicFonts            ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
GpiWCBitBlt                     ³Yes     ³Yes    ³Yes    ³Yes    ³Yes
Notes
  1. Not valid to a cached micro presentation space.
  2. Valid only when the actual drawing mode is draw or draw-and-retain. The actual drawing mode is determined as shown in the following table:
The Current Drawing Mode
 GpiSetDrawingMode parameter ³               ³Context

                             ³Chained Segment³Unchained Segment³Outside Segment

 DM_DRAWANDRETAIN            ³draw-and-retain³retain           ³draw
 DM_RETAIN                   ³retain         ³retain           ³draw
 DM_DRAW                     ³draw           ³retain           ³draw

For example, if the current drawing mode parameter is DM_RETAIN, and primitives are being drawn outside a segment, then the actual drawing mode is draw.

  1. Valid only when the actual drawing mode (see note 2) is retain.
  2. Valid only when the actual drawing mode (see note 2) is draw.
  3. Not valid if the specified segment is the current open segment.
  4. Bracket (path, element, or area) is ended without error.
  5. Severity is Warning.
  6. If associated with a metafile, only the final values are recorded in the metafile.
  7. Palette must not be current.
  8. Device context must be able to support bit map operations.