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