⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pmgpi.mh

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 MH
📖 第 1 页 / 共 2 页
字号:
/*
 *  pmgpi.h     OS/2 Presentation Manager Graphics Programming Interface
 *              include file for 16-bit development.
 *
:include crwatcnt.sp
 */

:include readonly.sp
:include cpluspro.sp

#ifdef INCL_GPI
    #define INCL_GPICONTROL
    #define INCL_GPICORRELATION
    #define INCL_GPIBITMAPS
    #define INCL_GPIDEFAULTS
    #define INCL_GPILCIDS
    #define INCL_GPILOGCOLORTABLE
    #define INCL_GPIMETAFILES
    #define INCL_GPIPATHS
    #define INCL_GPIPRIMITIVES
    #define INCL_GPIREGIONS
    #define INCL_GPISEGMENTS
    #define INCL_GPISEGEDITING
    #define INCL_GPITRANSFORMS
#endif

#ifdef INCL_ERRORS
    #define INCL_GPIERRORS
#endif

#define GPI_ERROR      0L
#define GPI_OK         1L
#define GPI_ALTERROR (-1L)
#define CLR_NOINDEX (-254L)

#define MAKEFIXED(intpart,fractpart) MAKELONG(fractpart,intpart)
#define FIXEDFRAC(fx)                (LOUSHORT(fx))
#define FIXEDINT(fx)                 ((SHORT)HIUSHORT(fx))


typedef  LONG FIXED, FAR *PFIXED;
typedef  USHORT FIXED88;
typedef  USHORT FIXED114;

typedef struct _SIZEL {
    LONG cx;
    LONG cy;
} SIZEL, FAR *PSIZEL;

#if defined(INCL_GPICONTROL) || !defined(INCL_NOCOMMON)

#define PU_ARBITRARY 0x0004L
#define PU_PELS      0x0008L
#define PU_LOMETRIC  0x000CL
#define PU_HIMETRIC  0x0010L
#define PU_LOENGLISH 0x0014L
#define PU_HIENGLISH 0x0018L
#define PU_TWIPS     0x001CL

#define GPIF_DEFAULT      0L
#define GPIF_SHORT   0x0100L
#define GPIF_LONG    0x0200L

#define GPIT_NORMAL       0L
#define GPIT_MICRO   0x1000L

#define GPIA_NOASSOC      0L
#define GPIA_ASSOC   0x4000L

#define HDC_ERROR ((HDC)-1L)

BOOL APIENTRY GpiAssociate(HPS,HDC);
HPS  APIENTRY GpiCreatePS(HAB,HDC,PSIZEL,ULONG);
BOOL APIENTRY GpiDestroyPS(HPS);
BOOL APIENTRY GpiErase(HPS);
HDC  APIENTRY GpiQueryDevice(HPS);
BOOL APIENTRY GpiRestorePS(HPS,LONG);
LONG APIENTRY GpiSavePS(HPS);

#endif

#ifdef INCL_GPICONTROL

#define GRES_ATTRS    0x0001L
#define GRES_SEGMENTS 0x0002L
#define GRES_ALL      0x0004L

#define PS_UNITS     0x00FCL
#define PS_FORMAT    0x0F00L
#define PS_TYPE      0x1000L
#define PS_MODE      0x2000L
#define PS_ASSOCIATE 0x4000L
#define PS_NORESET   0x8000L

#define GPIE_SEGMENT 0L
#define GPIE_ELEMENT 1L
#define GPIE_DATA    2L

#define DCTL_ERASE     1L
#define DCTL_DISPLAY   2L
#define DCTL_BOUNDARY  3L
#define DCTL_DYNAMIC   4L
#define DCTL_CORRELATE 5L

#define DCTL_ERROR (-1L)
#define DCTL_OFF     0L
#define DCTL_ON      1L

#define SDW_ERROR (-1L)
#define SDW_OFF     0L
#define SDW_ON      1L

#define DM_ERROR         0L
#define DM_DRAW          1L
#define DM_RETAIN        2L
#define DM_DRAWANDRETAIN 3L

LONG  APIENTRY GpiErrorSegmentData(HPS,PLONG,PLONG);
LONG  APIENTRY GpiQueryDrawControl(HPS,LONG);
LONG  APIENTRY GpiQueryDrawingMode(HPS);
ULONG APIENTRY GpiQueryPS(HPS,PSIZEL);
LONG  APIENTRY GpiQueryStopDraw(HPS);
BOOL  APIENTRY GpiResetPS(HPS,ULONG);
BOOL  APIENTRY GpiSetDrawControl(HPS,LONG,LONG);
BOOL  APIENTRY GpiSetDrawingMode(HPS,LONG);
BOOL  APIENTRY GpiSetPS(HPS,PSIZEL,ULONG);
BOOL  APIENTRY GpiSetStopDraw(HPS,LONG);

#endif

#ifdef INCL_GPICORRELATION

#define PICKAP_DEFAULT 0L
#define PICKAP_REC     2L

#define PICKSEL_VISIBLE 0L
#define PICKSEL_ALL     1L

#define GPI_HITS 2L

LONG  APIENTRY GpiCorrelateChain(HPS,LONG,PPOINTL,LONG,LONG,PLONG);
LONG  APIENTRY GpiCorrelateFrom(HPS,LONG,LONG,LONG,PPOINTL,LONG,LONG,PLONG);
LONG  APIENTRY GpiCorrelateSegment(HPS,LONG,LONG,PPOINTL,LONG,LONG,PLONG);
BOOL  APIENTRY GpiQueryBoundaryData(HPS,PRECTL);
BOOL  APIENTRY GpiQueryPickAperturePosition(HPS,PPOINTL);
BOOL  APIENTRY GpiQueryPickApertureSize(HPS,PSIZEL);
BOOL  APIENTRY GpiQueryTag(HPS,PLONG);
BOOL  APIENTRY GpiResetBoundaryData(HPS);
BOOL  APIENTRY GpiSetPickAperturePosition(HPS,PPOINTL);
BOOL  APIENTRY GpiSetPickApertureSize(HPS,LONG,PSIZEL);
BOOL  APIENTRY GpiSetTag(HPS,LONG);

#endif

#ifdef INCL_GPISEGMENTS

#define DFORM_NOCONV    0L
#define DFORM_S370SHORT 1L
#define DFORM_PCSHORT   2L
#define DFORM_PCLONG    4L

#define ATTR_ERROR          (-1L)
#define ATTR_DETECTABLE       1L
#define ATTR_VISIBLE          2L
#define ATTR_CHAINED          6L
#define ATTR_DYNAMIC          8L
#define ATTR_FASTCHAIN        9L
#define ATTR_PROP_DETECTABLE 10L
#define ATTR_PROP_VISIBLE    11L
#define ATTR_OFF              0L
#define ATTR_ON               1L

#define LOWER_PRI (-1L)
#define HIGHER_PRI  1L

BOOL APIENTRY GpiCloseSegment(HPS);
BOOL APIENTRY GpiDeleteSegment(HPS,LONG);
BOOL APIENTRY GpiDeleteSegments(HPS,LONG,LONG);
BOOL APIENTRY GpiDrawChain(HPS);
BOOL APIENTRY GpiDrawDynamics(HPS);
BOOL APIENTRY GpiDrawFrom(HPS,LONG,LONG);
BOOL APIENTRY GpiDrawSegment(HPS,LONG);
LONG APIENTRY GpiGetData(HPS,LONG,PLONG,LONG,LONG,PBYTE);
BOOL APIENTRY GpiOpenSegment(HPS,LONG);
LONG APIENTRY GpiPutData(HPS,LONG,PLONG,PBYTE);
LONG APIENTRY GpiQueryInitialSegmentAttrs(HPS,LONG);
LONG APIENTRY GpiQuerySegmentAttrs(HPS,LONG,LONG);
LONG APIENTRY GpiQuerySegmentNames(HPS,LONG,LONG,LONG,PLONG);
LONG APIENTRY GpiQuerySegmentPriority(HPS,LONG,LONG);
BOOL APIENTRY GpiRemoveDynamics(HPS,LONG,LONG);
BOOL APIENTRY GpiSetInitialSegmentAttrs(HPS,LONG,LONG);
BOOL APIENTRY GpiSetSegmentAttrs(HPS,LONG,LONG,LONG);
BOOL APIENTRY GpiSetSegmentPriority(HPS,LONG,LONG,LONG);

#endif

#ifdef INCL_GPISEGEDITING

#define SEGEM_ERROR   0L
#define SEGEM_INSERT  1L
#define SEGEM_REPLACE 2L

BOOL  APIENTRY GpiBeginElement(HPS,LONG,PSZ);
BOOL  APIENTRY GpiDeleteElement(HPS);
BOOL  APIENTRY GpiDeleteElementRange(HPS,LONG,LONG);
BOOL  APIENTRY GpiDeleteElementsBetweenLabels(HPS,LONG,LONG);
BOOL  APIENTRY GpiEndElement(HPS);
LONG  APIENTRY GpiElement(HPS,LONG,PSZ,LONG,PBYTE);
BOOL  APIENTRY GpiLabel(HPS,LONG);
BOOL  APIENTRY GpiOffsetElementPointer(HPS,LONG);
LONG  APIENTRY GpiQueryEditMode(HPS);
LONG  APIENTRY GpiQueryElement(HPS,LONG,LONG,PBYTE);
LONG  APIENTRY GpiQueryElementPointer(HPS);
LONG  APIENTRY GpiQueryElementType(HPS,PLONG,LONG,PSZ);
BOOL  APIENTRY GpiSetEditMode(HPS,LONG);
BOOL  APIENTRY GpiSetElementPointer(HPS,LONG);
BOOL  APIENTRY GpiSetElementPointerAtLabel(HPS,LONG);

#endif

#ifdef INCL_GPITRANSFORMS

#define CVTC_WORLD       1L
#define CVTC_MODEL       2L
#define CVTC_DEFAULTPAGE 3L
#define CVTC_PAGE        4L
#define CVTC_DEVICE      5L

#define TRANSFORM_REPLACE 0L
#define TRANSFORM_ADD     1L
#define TRANSFORM_PREEMPT 2L

typedef struct _MATRIXLF {
    FIXED fxM11;
    FIXED fxM12;
    LONG  lM13;
    FIXED fxM21;
    FIXED fxM22;
    LONG  lM23;
    LONG  lM31;
    LONG  lM32;
    LONG  lM33;
} MATRIXLF, FAR *PMATRIXLF;

BOOL APIENTRY GpiConvert(HPS,LONG,LONG,LONG,PPOINTL);
LONG APIENTRY GpiCallSegmentMatrix(HPS,LONG,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiQueryDefaultViewMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryGraphicsField(HPS,PRECTL);
BOOL APIENTRY GpiQueryModelTransformMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryPageViewport(HPS,PRECTL);
BOOL APIENTRY GpiQuerySegmentTransformMatrix(HPS,LONG,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryViewingTransformMatrix(HPS,LONG,PMATRIXLF);
BOOL APIENTRY GpiQueryViewingLimits(HPS,PRECTL);
BOOL APIENTRY GpiRotate(HPS,PMATRIXLF,LONG,FIXED,PPOINTL);
BOOL APIENTRY GpiScale(HPS,PMATRIXLF,LONG,PFIXED,PPOINTL);
BOOL APIENTRY GpiSetDefaultViewMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetGraphicsField(HPS,PRECTL);
BOOL APIENTRY GpiSetModelTransformMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetPageViewport(HPS,PRECTL);
BOOL APIENTRY GpiSetSegmentTransformMatrix(HPS,LONG,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiSetViewingLimits(HPS,PRECTL);
BOOL APIENTRY GpiSetViewingTransformMatrix(HPS,LONG,PMATRIXLF,LONG);
BOOL APIENTRY GpiTranslate(HPS,PMATRIXLF,LONG,PPOINTL);

#endif

#ifdef INCL_GPIPATHS

#define FPATH_ALTERNATE 0L
#define FPATH_WINDING   2L

#define MPATH_STROKE 6L

#define SCP_ALTERNATE 0L
#define SCP_WINDING   2L
#define SCP_AND       4L
#define SCP_RESET     0L

BOOL APIENTRY GpiBeginPath(HPS,LONG);
BOOL APIENTRY GpiCloseFigure(HPS);
BOOL APIENTRY GpiEndPath(HPS);
LONG APIENTRY GpiFillPath(HPS,LONG,LONG);
BOOL APIENTRY GpiModifyPath(HPS,LONG,LONG);
LONG APIENTRY GpiOutlinePath(HPS,LONG,LONG);
BOOL APIENTRY GpiSetClipPath(HPS,LONG,LONG);
LONG APIENTRY GpiStrokePath(HPS,LONG,ULONG);

#endif

#ifdef INCL_GPILOGCOLORTABLE

#define LCOL_RESET      0x0001L
#define LCOL_REALIZABLE 0x0002L
#define LCOL_PURECOLOR  0x0004L

#define LCOLF_DEFAULT   0L
#define LCOLF_INDRGB    1L
#define LCOLF_CONSECRGB 2L
#define LCOLF_RGB       3L

#define LCOLOPT_REALIZED 1L
#define LCOLOPT_INDEX    2L

#define QLCT_ERROR     (-1L)
#define QLCT_RGB       (-2L)
#define QLCT_NOTLOADED (-1L)

#define QCD_LCT_FORMAT  0L
#define QCD_LCT_LOINDEX 1L
#define QCD_LCT_HIINDEX 2L

BOOL  APIENTRY GpiCreateLogColorTable(HPS,ULONG,LONG,LONG,LONG,PLONG);
BOOL  APIENTRY GpiQueryColorData(HPS,LONG,PLONG);
LONG  APIENTRY GpiQueryColorIndex(HPS,ULONG,LONG);
LONG  APIENTRY GpiQueryLogColorTable(HPS,ULONG,LONG,LONG,PLONG);
LONG  APIENTRY GpiQueryNearestColor(HPS,ULONG,LONG);
LONG  APIENTRY GpiQueryRealColors(HPS,ULONG,LONG,LONG,PLONG);
LONG  APIENTRY GpiQueryRGBColor(HPS,ULONG,LONG);
BOOL  APIENTRY GpiRealizeColorTable(HPS);
BOOL  APIENTRY GpiUnrealizeColorTable(HPS);

#endif

#if defined(INCL_GPIPRIMITIVES) || !defined(INCL_NOCOMMON)

#define CLR_FALSE       (-5L)
#define CLR_TRUE        (-4L)
#define CLR_ERROR     (-255L)
#define CLR_DEFAULT     (-3L)
#define CLR_WHITE       (-2L)
#define CLR_BLACK       (-1L)
#define CLR_BACKGROUND    0L
#define CLR_BLUE          1L
#define CLR_RED           2L
#define CLR_PINK          3L
#define CLR_GREEN         4L
#define CLR_CYAN          5L
#define CLR_YELLOW        6L
#define CLR_NEUTRAL       7L
#define CLR_DARKGRAY      8L
#define CLR_DARKBLUE      9L
#define CLR_DARKRED      10L
#define CLR_DARKPINK     11L
#define CLR_DARKGREEN    12L
#define CLR_DARKCYAN     13L
#define CLR_BROWN        14L
#define CLR_PALEGRAY     15L

#define RGB_ERROR       (-255L)
#define RGB_BLACK  0x00000000L
#define RGB_BLUE   0x000000FFL
#define RGB_GREEN  0x0000FF00L
#define RGB_CYAN   0x0000FFFFL
#define RGB_RED    0x00FF0000L
#define RGB_PINK   0x00FF00FFL
#define RGB_YELLOW 0x00FFFF00L
#define RGB_WHITE  0x00FFFFFFL

#define BA_NOBOUNDARY 0L
#define BA_BOUNDARY   1L
#define BA_ALTERNATE  0L
#define BA_WINDING    2L

#define DRO_FILL        1L
#define DRO_OUTLINE     2L
#define DRO_OUTLINEFILL 3L

#define PATSYM_ERROR   (-1L)
#define PATSYM_DEFAULT   0L
#define PATSYM_DENSE1    1L
#define PATSYM_DENSE2    2L
#define PATSYM_DENSE3    3L
#define PATSYM_DENSE4    4L
#define PATSYM_DENSE5    5L
#define PATSYM_DENSE6    6L
#define PATSYM_DENSE7    7L
#define PATSYM_DENSE8    8L
#define PATSYM_VERT      9L
#define PATSYM_HORIZ    10L
#define PATSYM_DIAG1    11L
#define PATSYM_DIAG2    12L
#define PATSYM_DIAG3    13L
#define PATSYM_DIAG4    14L
#define PATSYM_NOSHADE  15L
#define PATSYM_SOLID    16L
#define PATSYM_HALFTONE 17L
#define PATSYM_BLANK    64L

#define LCID_ERROR   (-1L)
#define LCID_DEFAULT   0L

BOOL  APIENTRY GpiBeginArea(HPS,ULONG);
LONG  APIENTRY GpiBox(HPS,LONG,PPOINTL,LONG,LONG);
LONG  APIENTRY GpiCharString(HPS,LONG,PCH);
LONG  APIENTRY GpiCharStringAt(HPS,PPOINTL,LONG,PCH);
LONG  APIENTRY GpiEndArea(HPS);
LONG  APIENTRY GpiLine(HPS,PPOINTL);
BOOL  APIENTRY GpiMove(HPS,PPOINTL);
LONG  APIENTRY GpiPolyLine(HPS,LONG,PPOINTL);
LONG  APIENTRY GpiQueryColor(HPS);
LONG  APIENTRY GpiQueryPattern(HPS);
BOOL  APIENTRY GpiSetColor(HPS,LONG);
BOOL  APIENTRY GpiSetPattern(HPS,LONG);

#endif

#ifdef INCL_GPIPRIMITIVES

#define AM_ERROR      (-1L)
#define AM_PRESERVE     0L
#define AM_NOPRESERVE   1L

#define FM_ERROR      (-1L)
#define FM_DEFAULT      0L
#define FM_OR           1L
#define FM_OVERPAINT    2L
#define FM_XOR          4L
#define FM_LEAVEALONE   5L
#define FM_AND          6L
#define FM_SUBTRACT     7L
#define FM_MASKSRCNOT   8L
#define FM_ZERO         9L
#define FM_NOTMERGESRC 10L
#define FM_NOTXORSRC   11L
#define FM_INVERT      12L
#define FM_MERGESRCNOT 13L
#define FM_NOTCOPYSRC  14L
#define FM_MERGENOTSRC 15L
#define FM_NOTMASKSRC  16L
#define FM_ONE         17L

#define BM_ERROR      (-1L)
#define BM_DEFAULT      0L
#define BM_OR           1L
#define BM_OVERPAINT    2L
#define BM_XOR          4L
#define BM_LEAVEALONE   5L

#define LINETYPE_ERROR         (-1L)
#define LINETYPE_DEFAULT         0L
#define LINETYPE_DOT             1L
#define LINETYPE_SHORTDASH       2L
#define LINETYPE_DASHDOT         3L
#define LINETYPE_DOUBLEDOT       4L
#define LINETYPE_LONGDASH        5L
#define LINETYPE_DASHDOUBLEDOT   6L
#define LINETYPE_SOLID           7L
#define LINETYPE_INVISIBLE       8L
#define LINETYPE_ALTERNATE       9L

#define LINEWIDTH_ERROR          (-1L)
#define LINEWIDTH_DEFAULT          0L
#define LINEWIDTH_NORMAL  0x00010000L

#define LINEWIDTHGEOM_ERROR (-1L)

#define LINEEND_ERROR   (-1L)
#define LINEEND_DEFAULT   0L
#define LINEEND_FLAT      1L
#define LINEEND_SQUARE    2L
#define LINEEND_ROUND     3L

#define LINEJOIN_ERROR   (-1L)
#define LINEJOIN_DEFAULT   0L
#define LINEJOIN_BEVEL     1L
#define LINEJOIN_ROUND     2L
#define LINEJOIN_MITRE     3L

#define CHDIRN_ERROR     (-1L)
#define CHDIRN_DEFAULT     0L
#define CHDIRN_LEFTRIGHT   1L

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -