Annotation of ntddk/src/print/pscript/pslayer.h, revision 1.1

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);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.