Blame


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