Windows NT 4.0 source code leak
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

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