Blame


1 76193d7c 2003-09-30 devnull #include "x11-inc.h"
2 76193d7c 2003-09-30 devnull
3 76193d7c 2003-09-30 devnull #include <u.h>
4 76193d7c 2003-09-30 devnull #include <libc.h>
5 76193d7c 2003-09-30 devnull #include <draw.h>
6 76193d7c 2003-09-30 devnull #include <memdraw.h>
7 76193d7c 2003-09-30 devnull #include "x11-memdraw.h"
8 76193d7c 2003-09-30 devnull
9 76193d7c 2003-09-30 devnull void
10 76193d7c 2003-09-30 devnull memfillcolor(Memimage *m, u32int val)
11 76193d7c 2003-09-30 devnull {
12 76193d7c 2003-09-30 devnull _memfillcolor(m, val);
13 76193d7c 2003-09-30 devnull if(m->X == nil)
14 76193d7c 2003-09-30 devnull return;
15 76193d7c 2003-09-30 devnull if((val & 0xFF) == 0xFF) /* full alpha */
16 76193d7c 2003-09-30 devnull xfillcolor(m, m->r, _rgbatoimg(m, val));
17 76193d7c 2003-09-30 devnull else
18 76193d7c 2003-09-30 devnull xputxdata(m, m->r);
19 76193d7c 2003-09-30 devnull }
20 76193d7c 2003-09-30 devnull
21 76193d7c 2003-09-30 devnull void
22 76193d7c 2003-09-30 devnull xfillcolor(Memimage *m, Rectangle r, u32int v)
23 76193d7c 2003-09-30 devnull {
24 76193d7c 2003-09-30 devnull Point p;
25 76193d7c 2003-09-30 devnull Xmem *xm;
26 76193d7c 2003-09-30 devnull XGC gc;
27 76193d7c 2003-09-30 devnull
28 76193d7c 2003-09-30 devnull xm = m->X;
29 76193d7c 2003-09-30 devnull assert(xm != nil);
30 76193d7c 2003-09-30 devnull
31 76193d7c 2003-09-30 devnull /*
32 76193d7c 2003-09-30 devnull * Set up fill context appropriately.
33 76193d7c 2003-09-30 devnull */
34 76193d7c 2003-09-30 devnull if(m->chan == GREY1){
35 76193d7c 2003-09-30 devnull gc = _x.gcfill0;
36 76193d7c 2003-09-30 devnull if(_x.gcfill0color != v){
37 76193d7c 2003-09-30 devnull XSetForeground(_x.display, gc, v);
38 76193d7c 2003-09-30 devnull _x.gcfill0color = v;
39 76193d7c 2003-09-30 devnull }
40 76193d7c 2003-09-30 devnull }else{
41 76193d7c 2003-09-30 devnull if(m->chan == CMAP8 && _x.usetable)
42 76193d7c 2003-09-30 devnull v = _x.tox11[v];
43 76193d7c 2003-09-30 devnull gc = _x.gcfill;
44 76193d7c 2003-09-30 devnull if(_x.gcfillcolor != v){
45 76193d7c 2003-09-30 devnull XSetForeground(_x.display, gc, v);
46 76193d7c 2003-09-30 devnull _x.gcfillcolor = v;
47 76193d7c 2003-09-30 devnull }
48 76193d7c 2003-09-30 devnull }
49 76193d7c 2003-09-30 devnull
50 76193d7c 2003-09-30 devnull /*
51 76193d7c 2003-09-30 devnull * XFillRectangle takes coordinates relative to image rectangle.
52 76193d7c 2003-09-30 devnull */
53 76193d7c 2003-09-30 devnull p = subpt(r.min, m->r.min);
54 76193d7c 2003-09-30 devnull XFillRectangle(_x.display, xm->pixmap, gc, p.x, p.y, Dx(r), Dy(r));
55 76193d7c 2003-09-30 devnull }
56 76193d7c 2003-09-30 devnull
57 76193d7c 2003-09-30 devnull