diff options
Diffstat (limited to 'src/libdraw/x11-memdraw.h')
-rw-r--r-- | src/libdraw/x11-memdraw.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/src/libdraw/x11-memdraw.h b/src/libdraw/x11-memdraw.h new file mode 100644 index 00000000..c8234b20 --- /dev/null +++ b/src/libdraw/x11-memdraw.h @@ -0,0 +1,93 @@ +/* + * Structure pointed to by X field of Memimage + */ + +typedef struct Xmem Xmem; +typedef struct Xprivate Xprivate; + +enum +{ + PMundef = ~0 +}; + +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 Xprivate { + u32int black; + u32int chan; + XColormap cmap; + XCursor cursor; + XDisplay *display; + int depth; /* of screen */ + XDrawable drawable; + XColor map[256]; + XColor map7[128]; + uchar map7to8[128][2]; + XGC gccopy; + XGC gccopy0; + XGC gcfill; + u32int gcfillcolor; + XGC gcfill0; + u32int gcfill0color; + XGC gcreplsrc; + u32int gcreplsrctile; + XGC gcreplsrc0; + u32int gcreplsrc0tile; + XGC gcsimplesrc; + u32int gcsimplesrccolor; + u32int gcsimplesrcpixmap; + XGC gcsimplesrc0; + u32int gcsimplesrc0color; + u32int gcsimplesrc0pixmap; + XGC gczero; + u32int gczeropixmap; + XGC gczero0; + u32int gczero0pixmap; + XDisplay *kbdcon; + XDisplay *mousecon; + Memimage* screenimage; + XDrawable screenpm; + Rectangle screenr; + XDisplay *snarfcon; + int toplan9[256]; + int tox11[256]; + int usetable; + XVisual *vis; + u32int white; +}; + +extern Xprivate _x; + +extern Memimage *xallocmemimage(Rectangle, u32int, int); +extern XImage *xallocxdata(Memimage*, Rectangle); +extern void xdirtyxdata(Memimage*, Rectangle); +extern void xfillcolor(Memimage*, Rectangle, u32int); +extern void xfreexdata(Memimage*); +extern XImage *xgetxdata(Memimage*, Rectangle); +extern void xputxdata(Memimage*, Rectangle); + +struct Mouse; +extern int xtoplan9mouse(XEvent*, struct Mouse*); +extern int xtoplan9kbd(XEvent*); +extern void xexpose(XEvent*, XDisplay*); +extern int xconfigure(XEvent*, XDisplay*); +extern void flushmemscreen(Rectangle); +extern void xmoveto(Point); +struct Cursor; +extern void xsetcursor(struct Cursor*); + +#define MouseMask (\ + ButtonPressMask|\ + ButtonReleaseMask|\ + PointerMotionMask|\ + Button1MotionMask|\ + Button2MotionMask|\ + Button3MotionMask) + |