Blob


1 /*
2 * Structure pointed to by X field of Memimage
3 */
5 typedef struct Xmem Xmem;
6 typedef struct Xprivate Xprivate;
8 enum
9 {
10 PMundef = ~0
11 };
13 struct Xmem
14 {
15 int pixmap; /* pixmap id */
16 XImage *xi; /* local image */
17 int dirty; /* is the X server ahead of us? */
18 Rectangle dirtyr; /* which pixels? */
19 Rectangle r; /* size of image */
20 };
22 struct Xprivate {
23 u32int black;
24 u32int chan;
25 XColormap cmap;
26 XCursor cursor;
27 XDisplay *display;
28 int depth; /* of screen */
29 XDrawable drawable;
30 XColor map[256];
31 XColor map7[128];
32 uchar map7to8[128][2];
33 XGC gccopy;
34 XGC gccopy0;
35 XGC gcfill;
36 u32int gcfillcolor;
37 XGC gcfill0;
38 u32int gcfill0color;
39 XGC gcreplsrc;
40 u32int gcreplsrctile;
41 XGC gcreplsrc0;
42 u32int gcreplsrc0tile;
43 XGC gcsimplesrc;
44 u32int gcsimplesrccolor;
45 u32int gcsimplesrcpixmap;
46 XGC gcsimplesrc0;
47 u32int gcsimplesrc0color;
48 u32int gcsimplesrc0pixmap;
49 XGC gczero;
50 u32int gczeropixmap;
51 XGC gczero0;
52 u32int gczero0pixmap;
53 XDisplay *kbdcon;
54 XDisplay *mousecon;
55 Memimage* screenimage;
56 XDrawable screenpm;
57 Rectangle screenr;
58 XDisplay *snarfcon;
59 int toplan9[256];
60 int tox11[256];
61 int usetable;
62 XVisual *vis;
63 u32int white;
64 };
66 extern Xprivate _x;
68 extern Memimage *xallocmemimage(Rectangle, u32int, int);
69 extern XImage *xallocxdata(Memimage*, Rectangle);
70 extern void xdirtyxdata(Memimage*, Rectangle);
71 extern void xfillcolor(Memimage*, Rectangle, u32int);
72 extern void xfreexdata(Memimage*);
73 extern XImage *xgetxdata(Memimage*, Rectangle);
74 extern void xputxdata(Memimage*, Rectangle);
76 struct Mouse;
77 extern int xtoplan9mouse(XEvent*, struct Mouse*);
78 extern int xtoplan9kbd(XEvent*);
79 extern void xexpose(XEvent*, XDisplay*);
80 extern int xconfigure(XEvent*, XDisplay*);
81 extern void flushmemscreen(Rectangle);
82 extern void xmoveto(Point);
83 struct Cursor;
84 extern void xsetcursor(struct Cursor*);
86 #define MouseMask (\
87 ButtonPressMask|\
88 ButtonReleaseMask|\
89 PointerMotionMask|\
90 Button1MotionMask|\
91 Button2MotionMask|\
92 Button3MotionMask)