|
|
1.1 ! root 1: ! 2: #define PS_RESOLUTION 72L ! 3: #define PS_FIX_MASK 0x0FF ! 4: ! 5: #define LTOPSFX(x) ((x)<<8) ! 6: #define PSFXTOL(x) ((x)>>8) ! 7: #define ETOPSFX(x) ((LONG)((x) * 256.0)) ! 8: #define ETOL(x) ((LONG)((x))) ! 9: //#define LANDSCAPE_270_ROTATE ! 10: ! 11: // a couple of macros which take device coordinates (LONG) and ! 12: // return user coordinates (PS_FIX), or 72 dpi. ! 13: ! 14: #define X72DPI(x) \ ! 15: (LTOPSFX(pdev->CurForm.imagearea.left) + \ ! 16: ((LTOPSFX((x) * PS_RESOLUTION) + \ ! 17: (pdev->psdm.dm.dmPrintQuality / 2)) / \ ! 18: pdev->psdm.dm.dmPrintQuality)) ! 19: ! 20: #define Y72DPI(y) \ ! 21: (LTOPSFX(pdev->CurForm.imagearea.top) - \ ! 22: ((LTOPSFX((y) * PS_RESOLUTION) + \ ! 23: (pdev->psdm.dm.dmPrintQuality / 2)) / \ ! 24: pdev->psdm.dm.dmPrintQuality)) ! 25: ! 26: // a couple of macros which take device coordinates in FLOAT and ! 27: // return PostScript user coordinates in FLOAT, or 72.0f dpi. ! 28: ! 29: #define XE72DPI(x) ((FLOAT) pdev->CurForm.imagearea.left + \ ! 30: (((x) * (FLOAT) PS_RESOLUTION + \ ! 31: (FLOAT) pdev->psdm.dm.dmPrintQuality / 2.0f) / \ ! 32: (FLOAT) pdev->psdm.dm.dmPrintQuality)) ! 33: ! 34: #define YE72DPI(y) \ ! 35: ((FLOAT) pdev->CurForm.imagearea.top - \ ! 36: (((y) * (FLOAT) PS_RESOLUTION + \ ! 37: (FLOAT) pdev->psdm.dm.dmPrintQuality / 2) / \ ! 38: (FLOAT) pdev->psdm.dm.dmPrintQuality)) ! 39: ! 40: // a macro which translates from device coordinates to user coordinates, ! 41: // with no flipping or scaling. ! 42: ! 43: #define DEVICETOUSER(x) (((x) << 4) * PS_RESOLUTION) / pdev->psdm.dm.dmPrintQuality ! 44: ! 45: #define PS_FIX_RESOLUTION LTOPSFX(PS_RESOLUTION) ! 46: #define PSFXONE LTOPSFX(1L) ! 47: #define PSFXONEHALF PSFXONE >> 1 ! 48: #define PS_FIX_INTEGER_MASK 0xFFFFFF00 ! 49: ! 50: #define FIX_ONE 0x00000010 ! 51: #define FIX_ONE_HALF 0x00000008 ! 52: #define FIX_INTEGER_MASK 0xFFFFFFF0 ! 53: ! 54: #define ROUNDPSFX(x) (((x) + PSFXONEHALF) & PS_FIX_INTEGER_MASK) ! 55: #define ROUNDFIX(x) (((x) + FIX_ONE_HALF) & FIX_INTEGER_MASK) ! 56: ! 57: typedef struct ! 58: { ! 59: PS_FIX xLeft; ! 60: PS_FIX yTop; ! 61: PS_FIX xRight; ! 62: PS_FIX yBottom; ! 63: } RECTPSFX, *PRECTPSFX; ! 64: ! 65: typedef struct ! 66: { ! 67: PS_FIX x; ! 68: PS_FIX y; ! 69: } POINTPSFX, *PPOINTPSFX; ! 70: ! 71: // PS_FIX percentages used in color mapping to gray scales. ! 72: ! 73: #define PSFXPERCENT_RED 0x04D // 30.078% ! 74: #define PSFXPERCENT_GREEN 0x097 // 58.984% ! 75: #define PSFXPERCENT_BLUE 0x01C // 10.938% ! 76: ! 77: #define NOT_SOLID_COLOR 0xFFFFFFFF ! 78: ! 79: #define RGB_BLACK 0x00000000 ! 80: #define RGB_BLUE 0x000000FF ! 81: #define RGB_GREEN 0x0000FF00 ! 82: #define RGB_CYAN 0x0000FFFF ! 83: #define RGB_RED 0x00FF0000 ! 84: #define RGB_MAGENTA 0x00FF00FF ! 85: #define RGB_YELLOW 0x00FFFF00 ! 86: #define RGB_WHITE 0x00FFFFFF ! 87: #define RGB_GRAY 0x007F7F7F ! 88: ! 89: // postscript line join defines. ! 90: ! 91: #define PSCRIPT_JOIN_MITER 0 ! 92: #define PSCRIPT_JOIN_ROUND 1 ! 93: #define PSCRIPT_JOIN_BEVEL 2 ! 94: ! 95: // postscript line end cap defines. ! 96: ! 97: #define PSCRIPT_ENDCAP_BUTT 0 ! 98: #define PSCRIPT_ENDCAP_ROUND 1 ! 99: #define PSCRIPT_ENDCAP_SQUARE 2 ! 100: ! 101: typedef struct ! 102: { ! 103: BYTE bgrBlue; ! 104: BYTE bgrGreen; ! 105: BYTE bgrRed; ! 106: BYTE bgrFlags; ! 107: } BGR_PAL_ENTRY, *PBGR_PAL_ENTRY; ! 108: ! 109: #ifdef INDEX_PAL ! 110: VOID ps_setrgbcolor(PDEVDATA, PALETTEENTRY *); ! 111: PS_FIX psfxRGBtoGray(PALETTEENTRY *); ! 112: #else ! 113: VOID ps_setrgbcolor(PDEVDATA, BGR_PAL_ENTRY *); ! 114: PS_FIX psfxRGBtoGray(BGR_PAL_ENTRY *); ! 115: #endif ! 116: VOID ps_newpath(PDEVDATA); ! 117: BOOL ps_save(PDEVDATA, BOOL); ! 118: BOOL ps_restore(PDEVDATA, BOOL); ! 119: VOID ps_clip(PDEVDATA, BOOL); ! 120: VOID ps_box(PDEVDATA, PRECTL); ! 121: VOID ps_moveto(PDEVDATA, PPOINTL); ! 122: VOID ps_showpage(PDEVDATA); ! 123: VOID init_cgs(PDEVDATA); ! 124: BOOL ps_patfill(PDEVDATA, SURFOBJ *, FLONG, BRUSHOBJ *, PPOINTL, MIX, RECTL *, BOOL, BOOL); ! 125: VOID ps_stroke(PDEVDATA, BRUSHOBJ *, PPOINTL); ! 126: VOID ps_lineto(PDEVDATA, PPOINTL); ! 127: VOID ps_curveto(PDEVDATA, PPOINTL, PPOINTL, PPOINTL); ! 128: VOID ps_fill(PDEVDATA, FLONG); ! 129: VOID ps_closepath(PDEVDATA); ! 130: BOOL ps_setlineattrs(PDEVDATA, LINEATTRS *, XFORMOBJ *); ! 131: VOID ps_geolinexform(PDEVDATA, LINEATTRS *, XFORMOBJ *); ! 132: VOID ps_begin_eps(PDEVDATA); ! 133: VOID ps_end_eps(PDEVDATA); ! 134: ! 135: VOID ps_setlinewidth(PDEVDATA, PS_FIX);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.