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 Rectangle newscreenr;
56 Memimage* screenimage;
57 QLock screenlock;
58 XDrawable screenpm;
59 XDrawable nextscreenpm;
60 Rectangle screenr;
61 XDisplay *snarfcon;
62 int toplan9[256];
63 int tox11[256];
64 int usetable;
65 XVisual *vis;
66 u32int white;
67 };
69 extern Xprivate _x;
71 extern Memimage *xallocmemimage(Rectangle, u32int, int);
72 extern XImage *xallocxdata(Memimage*, Rectangle);
73 extern void xdirtyxdata(Memimage*, Rectangle);
74 extern void xfillcolor(Memimage*, Rectangle, u32int);
75 extern void xfreexdata(Memimage*);
76 extern XImage *xgetxdata(Memimage*, Rectangle);
77 extern void xputxdata(Memimage*, Rectangle);
78 extern void _initdisplaymemimage(Display*, Memimage*);
80 struct Mouse;
81 extern int xtoplan9mouse(XEvent*, struct Mouse*);
82 extern int xtoplan9kbd(XEvent*);
83 extern void xexpose(XEvent*, XDisplay*);
84 extern int xselect(XEvent*, XDisplay*);
85 extern int xconfigure(XEvent*, XDisplay*);
86 extern void flushmemscreen(Rectangle);
87 extern void xmoveto(Point);
88 struct Cursor;
89 extern void xsetcursor(struct Cursor*);
91 #define MouseMask (\
92 ButtonPressMask|\
93 ButtonReleaseMask|\
94 PointerMotionMask|\
95 Button1MotionMask|\
96 Button2MotionMask|\
97 Button3MotionMask)