Annotation of ntddk/src/print/pscript/pslayer.h, revision 1.1.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.