enum linecap { CAP_BUTT = 0 , CAP_ROUND = 1 , CAP_PROJSQUARE = 2 , } ; enum linejoin { JOIN_MITER = 0 , JOIN_ROUND = 1 , JOIN_BEVEL = 2 , } ; struct color { int red ; int green ; int blue ; } ; struct dash { int count ; double offset ; double dash[DASH_LIMIT] ; } ; struct device { struct object proc ; int height ; int width ; double matrix[CTM_SIZE] ; } ; struct screen { double frequency ; double angle ; struct object proc ; int levels; struct Bitmap *bitmap[GRAYLEVELS] ; } ; struct hta { int x ; int y ; double order ; } ; struct graphics { double CTM[CTM_SIZE] ; struct color color ; struct path path ; struct path clippath ; int clipchanged; int iminx, iminy, imaxx, imaxy; struct dict *font ; double linewidth ; enum linecap linecap ; enum linejoin linejoin ; struct screen screen ; struct object transfer ; double graytab[GRAYLEVELS] ; double flat ; double miterlimit ; struct dash dash ; struct device device ; struct pspoint width ; int inshow ; int incharpath; struct pspoint origin; struct save *save ; } ; struct x { double left, right ; int direction ; } ; struct x intercepts(struct element *, struct element *, double); int sxcomp(struct x *, struct x *); struct color hsb2rgb(double, double, double); double currentgray(void); void paint(int, int, int, int); int htcomp(struct hta *, struct hta *); int gcd(int, int); int rem(int, int); # define E(m,p) m.value.v_array.object[p].value.v_real # define I(m,p) m.value.v_array.object[p].value.v_int # define G Graphics.CTM extern struct graphics Graphics ; void mybinit(void); #ifdef HIRES void fwr_bm_g4(int, Bitmap *); #endif #ifdef FAX long fwr_bm_g31(FILE *, Bitmap *); #ifdef AHMDAL void aswab(unsigned char[]); void vswab(unsigned long *); #else void vswab(unsigned long *); void aswab(unsigned char[]); #endif #endif