17dd7cddfSDavid du Colombier typedef struct Document Document; 27dd7cddfSDavid du Colombier 37dd7cddfSDavid du Colombier struct Document { 47dd7cddfSDavid du Colombier char *docname; 57dd7cddfSDavid du Colombier int npage; 67dd7cddfSDavid du Colombier int fwdonly; 77dd7cddfSDavid du Colombier char* (*pagename)(Document*, int); 87dd7cddfSDavid du Colombier Image* (*drawpage)(Document*, int); 97dd7cddfSDavid du Colombier int (*addpage)(Document*, char*); 107dd7cddfSDavid du Colombier int (*rmpage)(Document*, int); 117dd7cddfSDavid du Colombier Biobuf *b; 127dd7cddfSDavid du Colombier void *extra; 137dd7cddfSDavid du Colombier }; 147dd7cddfSDavid du Colombier 157dd7cddfSDavid du Colombier void *emalloc(int); 167dd7cddfSDavid du Colombier void *erealloc(void*, int); 177dd7cddfSDavid du Colombier char *estrdup(char*); 187dd7cddfSDavid du Colombier int spawncmd(char*, char **, int, int, int); 197dd7cddfSDavid du Colombier 207dd7cddfSDavid du Colombier int spooltodisk(uchar*, int, char**); 217dd7cddfSDavid du Colombier int stdinpipe(uchar*, int); 227dd7cddfSDavid du Colombier Document *initps(Biobuf*, int, char**, uchar*, int); 237dd7cddfSDavid du Colombier Document *initpdf(Biobuf*, int, char**, uchar*, int); 247dd7cddfSDavid du Colombier Document *initgfx(Biobuf*, int, char**, uchar*, int); 257dd7cddfSDavid du Colombier Document *inittroff(Biobuf*, int, char**, uchar*, int); 267dd7cddfSDavid du Colombier Document *initdvi(Biobuf*, int, char**, uchar*, int); 27f5736e95SDavid du Colombier Document *initmsdoc(Biobuf*, int, char**, uchar*, int); 28*ad6ca847SDavid du Colombier void setlabel(char *); 297dd7cddfSDavid du Colombier 307dd7cddfSDavid du Colombier void viewer(Document*); 317dd7cddfSDavid du Colombier extern Cursor reading; 327dd7cddfSDavid du Colombier extern int chatty; 337dd7cddfSDavid du Colombier extern int goodps; 347dd7cddfSDavid du Colombier extern int textbits, gfxbits; 357dd7cddfSDavid du Colombier extern int reverse; 367dd7cddfSDavid du Colombier extern int clean; 377dd7cddfSDavid du Colombier extern int ppi; 387dd7cddfSDavid du Colombier extern int teegs; 397dd7cddfSDavid du Colombier extern int truetoboundingbox; 407dd7cddfSDavid du Colombier extern int wctlfd; 417dd7cddfSDavid du Colombier extern int resizing; 42d9306527SDavid du Colombier extern int mknewwindow; 437dd7cddfSDavid du Colombier 447dd7cddfSDavid du Colombier void rot180(Image*); 4508fd2d13SDavid du Colombier Image *rot90(Image*); 46a7529a1dSDavid du Colombier Image *rot270(Image*); 4708fd2d13SDavid du Colombier Image *resample(Image*, Image*); 487dd7cddfSDavid du Colombier 497dd7cddfSDavid du Colombier /* ghostscript interface shared by ps, pdf */ 507dd7cddfSDavid du Colombier typedef struct GSInfo GSInfo; 517dd7cddfSDavid du Colombier struct GSInfo { 527dd7cddfSDavid du Colombier int gsfd; 537dd7cddfSDavid du Colombier Biobuf gsrd; 547dd7cddfSDavid du Colombier int gspid; 557dd7cddfSDavid du Colombier int gsdfd; 567dd7cddfSDavid du Colombier int ppi; 577dd7cddfSDavid du Colombier }; 587dd7cddfSDavid du Colombier void waitgs(GSInfo*); 597dd7cddfSDavid du Colombier int gscmd(GSInfo*, char*, ...); 60593dc095SDavid du Colombier int spawngs(GSInfo*, char*); 61d9306527SDavid du Colombier void setdim(GSInfo*, Rectangle, int, int); 627dd7cddfSDavid du Colombier int spawnwriter(GSInfo*, Biobuf*); 637dd7cddfSDavid du Colombier Rectangle screenrect(void); 647dd7cddfSDavid du Colombier void newwin(void); 657def40e1SDavid du Colombier void zerox(void); 667dd7cddfSDavid du Colombier Rectangle winrect(void); 677dd7cddfSDavid du Colombier void resize(int, int); 687dd7cddfSDavid du Colombier int max(int, int); 697dd7cddfSDavid du Colombier int min(int, int); 707dd7cddfSDavid du Colombier void wexits(char*); 717dd7cddfSDavid du Colombier Image* xallocimage(Display*, Rectangle, ulong, int, ulong); 727dd7cddfSDavid du Colombier int bell(void*, char*); 737dd7cddfSDavid du Colombier int opentemp(char *template); 74493edcedSDavid du Colombier Image* cachedpage(Document*, int, int); 75493edcedSDavid du Colombier void cacheflush(void); 767dd7cddfSDavid du Colombier 777dd7cddfSDavid du Colombier extern int stdinfd; 787dd7cddfSDavid du Colombier extern int truecolor; 7934e04225SDavid du Colombier 8034e04225SDavid du Colombier /* BUG BUG BUG BUG BUG: cannot use new draw operations in drawterm, 8134e04225SDavid du Colombier * or in vncs, and there is a bug in the kernel for copying images 8234e04225SDavid du Colombier * from cpu memory -> video memory (memmove is not being used). 8334e04225SDavid du Colombier * until all that is settled, ignore the draw operators. 8434e04225SDavid du Colombier */ 8534e04225SDavid du Colombier #define drawop(a,b,c,d,e,f) draw(a,b,c,d,e) 8634e04225SDavid du Colombier #define gendrawop(a,b,c,d,e,f,g) gendraw(a,b,c,d,e,f) 87