mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.8 KiB
107 lines
2.8 KiB
|
|
#define PS_FIX_MASK 0x0FF
|
|
|
|
#define LTOPSFX(x) ((x)<<8)
|
|
#define PSFXTOL(x) ((x)>>8)
|
|
#define FXTOPSFX(x) ((x)<<4)
|
|
#define PSFXTOFX(x) ((x)>>4)
|
|
|
|
LONG ETOPSFX(FLOAT x);
|
|
|
|
//#define LANDSCAPE_270_ROTATE
|
|
|
|
// a couple of macros which take device coordinates (LONG) and
|
|
// return user coordinates (PS_FIX), or 72 dpi.
|
|
|
|
#define WIN31_XFORM
|
|
|
|
// a macro which translates from device coordinates to user coordinates,
|
|
// with no flipping or scaling.
|
|
|
|
#define DEVICETOUSER(x) (((x) << 4) * PS_RESOLUTION) / pdev->psdm.dm.dmPrintQuality
|
|
|
|
#define PS_FIX_RESOLUTION LTOPSFX(PS_RESOLUTION)
|
|
#define PSFXONE LTOPSFX(1L)
|
|
#define PSFXONEHALF PSFXONE >> 1
|
|
#define PS_FIX_INTEGER_MASK 0xFFFFFF00
|
|
|
|
#define FIX_ONE 0x00000010
|
|
#define FIX_ONE_HALF 0x00000008
|
|
#define FIX_INTEGER_MASK 0xFFFFFFF0
|
|
|
|
#define ROUNDPSFX(x) (((x) + PSFXONEHALF) & PS_FIX_INTEGER_MASK)
|
|
#define ROUNDFIX(x) (((x) + FIX_ONE_HALF) & FIX_INTEGER_MASK)
|
|
|
|
typedef struct
|
|
{
|
|
PS_FIX xLeft;
|
|
PS_FIX yTop;
|
|
PS_FIX xRight;
|
|
PS_FIX yBottom;
|
|
} RECTPSFX, *PRECTPSFX;
|
|
|
|
typedef struct
|
|
{
|
|
PS_FIX x;
|
|
PS_FIX y;
|
|
} POINTPSFX, *PPOINTPSFX;
|
|
|
|
#define NOT_SOLID_COLOR 0xFFFFFFFF
|
|
|
|
#define RGB_BLACK 0x00000000
|
|
#define RGB_BLUE 0x000000FF
|
|
#define RGB_GREEN 0x0000FF00
|
|
#define RGB_CYAN 0x0000FFFF
|
|
#define RGB_RED 0x00FF0000
|
|
#define RGB_MAGENTA 0x00FF00FF
|
|
#define RGB_YELLOW 0x00FFFF00
|
|
#define RGB_WHITE 0x00FFFFFF
|
|
#define RGB_GRAY 0x007F7F7F
|
|
|
|
// postscript line join defines.
|
|
|
|
#define PSCRIPT_JOIN_MITER 0
|
|
#define PSCRIPT_JOIN_ROUND 1
|
|
#define PSCRIPT_JOIN_BEVEL 2
|
|
|
|
// postscript line end cap defines.
|
|
|
|
#define PSCRIPT_ENDCAP_BUTT 0
|
|
#define PSCRIPT_ENDCAP_ROUND 1
|
|
#define PSCRIPT_ENDCAP_SQUARE 2
|
|
|
|
typedef struct
|
|
{
|
|
BYTE red;
|
|
BYTE green;
|
|
BYTE blue;
|
|
BYTE flags;
|
|
} PSRGB, *PPSRGB;
|
|
|
|
// Convert RGB to grayscale using NTSC formula
|
|
// Y = 0.289689R + 0.605634G + 0.104676B
|
|
|
|
#define RgbToGray(r,g,b) (((r)*74L + (g)*155L + (b)*27L) >> 8)
|
|
|
|
VOID ps_setrgbcolor(PDEVDATA, PSRGB *);
|
|
VOID ps_newpath(PDEVDATA);
|
|
BOOL ps_save(PDEVDATA, BOOL, BOOL);
|
|
BOOL ps_restore(PDEVDATA, BOOL, BOOL);
|
|
VOID ps_clip(PDEVDATA, BOOL);
|
|
VOID ps_box(PDEVDATA, PRECTL,BOOL);
|
|
VOID ps_moveto(PDEVDATA, PPOINTL);
|
|
VOID ps_moveshow(PDEVDATA, PPOINTL);
|
|
VOID ps_showpage(PDEVDATA);
|
|
VOID init_cgs(PDEVDATA);
|
|
BOOL ps_patfill(PDEVDATA, SURFOBJ *, FLONG, BRUSHOBJ *, PPOINTL, ROP4, RECTL *, BOOL, BOOL);
|
|
VOID ps_stroke(PDEVDATA);
|
|
VOID ps_lineto(PDEVDATA, PPOINTL);
|
|
VOID ps_curveto(PDEVDATA, PPOINTL, PPOINTL, PPOINTL);
|
|
VOID ps_fill(PDEVDATA, FLONG);
|
|
VOID ps_closepath(PDEVDATA);
|
|
BOOL ps_setlineattrs(PDEVDATA, LINEATTRS *, XFORMOBJ *);
|
|
VOID ps_geolinexform(PDEVDATA, LINEATTRS *, XFORMOBJ *);
|
|
VOID ps_begin_eps(PDEVDATA);
|
|
VOID ps_end_eps(PDEVDATA);
|
|
VOID ps_setlinewidth(PDEVDATA, PS_FIX);
|
|
ROP4 MixToRop4(MIX);
|