80 lines · 1.8 KB · C
RawDownload
typedef struct Xconn Xconn;typedef struct Xmem Xmem;typedef struct Xwin Xwin; struct Xconn {	ulong		chan;	XColormap	cmap;	XDisplay		*display;	int			fd;		/* of display */	int			depth;	/* of screen */	XColor		map[256];	XColor		map7[128];	uchar		map7to8[128][2];	int			toplan9[256];	int			tox11[256];	int			usetable;	Rectangle		screenrect;	XScreen		*screen;	XVisual		*vis;	XWindow		root;	XWindow		w;	XGC			gccopy;	XGC			gccopy0;	XGC			gcfill;	ulong		gcfillcolor;	XGC			gcfill0;	ulong		gcfill0color;	XGC			gcreplsrc;	ulong		gcreplsrctile;	XGC			gcreplsrc0;	ulong		gcreplsrc0tile;	XGC			gcsimplesrc;	ulong		gcsimplesrccolor;	ulong		gcsimplesrcpixmap;	XGC			gcsimplesrc0;	ulong		gcsimplesrc0color;	ulong		gcsimplesrc0pixmap;	XGC			gczero;	ulong		gczeropixmap;	XGC			gczero0;	ulong		gczero0pixmap;}; struct Xmem{	int		pixmap;	/* pixmap id */	XImage	*xi;		/* local image */	int		dirty;	/* is the X server ahead of us?  */	Rectangle	dirtyr;	/* which pixels? */	Rectangle	r;		/* size of image */}; struct Xwin {	Atom 		wmdelmsg;	XCursor		cursor;	XDrawable	drawable;	XDrawable	screenpm;	XDrawable	nextscreenpm;}; extern Xconn xconn; Memimage* xallocmemimage(Rectangle, ulong, int);void xfreememimage(Memimage*);int xtoplan9kbd(XEvent*);int xtoplan9mouse(XEvent*, Mouse*);int xcloadmemimage(Memimage*, Rectangle, uchar*, int);void xfillcolor(Memimage*, Rectangle, ulong);XImage* xgetxdata(Memimage*, Rectangle);void xmovewindow(Window*, Rectangle);void xputxdata(Memimage*, Rectangle);void xmemimagedraw(Memimage*, Rectangle, Memimage*, Point,	Memimage*, Point, int);void xinitclipboard(void);void xselect(XEvent*);void xmemfillcolor(Memimage*, ulong);int xloadmemimage(Memimage*, Rectangle, uchar*, int);int xunloadmemimage(Memimage*, Rectangle, uchar*, int);ulong xpixelbits(Memimage*, Point);