new draw server
This commit is contained in:
parent
f97f537440
commit
c66b52501b
23 changed files with 5538 additions and 0 deletions
113
src/cmd/devdraw/x11-memdraw.h
Normal file
113
src/cmd/devdraw/x11-memdraw.h
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
/*
|
||||
* 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 chan;
|
||||
XColormap cmap;
|
||||
XCursor cursor;
|
||||
XDisplay *display;
|
||||
int fd; /* of 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;
|
||||
Rectangle newscreenr;
|
||||
Memimage* screenimage;
|
||||
QLock screenlock;
|
||||
XDrawable screenpm;
|
||||
XDrawable nextscreenpm;
|
||||
Rectangle screenr;
|
||||
int toplan9[256];
|
||||
int tox11[256];
|
||||
int usetable;
|
||||
XVisual *vis;
|
||||
Atom clipboard;
|
||||
Atom utf8string;
|
||||
Atom targets;
|
||||
Atom text;
|
||||
Atom compoundtext;
|
||||
Atom takefocus;
|
||||
Atom losefocus;
|
||||
Atom wmprotos;
|
||||
uint putsnarf;
|
||||
uint assertsnarf;
|
||||
int destroyed;
|
||||
};
|
||||
|
||||
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*);
|
||||
extern int _xselect(XEvent*);
|
||||
extern int _xconfigure(XEvent*);
|
||||
extern int _xdestroy(XEvent*);
|
||||
extern void _flushmemscreen(Rectangle);
|
||||
extern void _xmoveto(Point);
|
||||
struct Cursor;
|
||||
extern void _xsetcursor(struct Cursor*);
|
||||
extern void _xbouncemouse(Mouse*);
|
||||
extern int _xsetlabel(char*);
|
||||
extern Memimage* _xattach(char*, char*);
|
||||
extern char* _xgetsnarf(void);
|
||||
extern void _xputsnarf(char *data);
|
||||
extern void _xtopwindow(void);
|
||||
extern void _xresizewindow(Rectangle);
|
||||
extern int _xreplacescreenimage(void);
|
||||
|
||||
#define MouseMask (\
|
||||
ButtonPressMask|\
|
||||
ButtonReleaseMask|\
|
||||
PointerMotionMask|\
|
||||
Button1MotionMask|\
|
||||
Button2MotionMask|\
|
||||
Button3MotionMask)
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue