texture.c - sam - An updated version of the sam text editor. | |
git clone git://vernunftzentrum.de/sam.git | |
Log | |
Files | |
Refs | |
LICENSE | |
--- | |
texture.c (1188B) | |
--- | |
1 /* Copyright (c) 1998 Lucent Technologies - All rights reserved. */ | |
2 #include <u.h> | |
3 #include <libg.h> | |
4 #include "libgint.h" | |
5 | |
6 void | |
7 texture(Bitmap *d, Rectangle r, Bitmap *s, Fcode f) | |
8 { | |
9 int x, y, w, h, bfunc; | |
10 GC g; | |
11 | |
12 x = r.min.x; | |
13 y = r.min.y; | |
14 if(d->flag&SHIFT){ | |
15 x -= d->r.min.x; | |
16 y -= d->r.min.y; | |
17 } | |
18 g = _getcopygc(f, d, s, &bfunc); | |
19 if(d->flag&SHIFT){ | |
20 XSetTSOrigin(_dpy, g, -d->r.min.x, -d->r.min.y); | |
21 }else | |
22 XSetTSOrigin(_dpy, g, 0, 0); | |
23 w = Dx(r); | |
24 h = Dy(r); | |
25 if(bfunc == UseFillRectangle){ | |
26 /* source isn't involved at all */ | |
27 XFillRectangle(_dpy, (Drawable)d->id, g, x, y, w, h); | |
28 }else if(bfunc == UseCopyArea){ | |
29 XSetTile(_dpy, g, (Drawable)s->id); | |
30 XSetFillStyle(_dpy, g, FillTiled); | |
31 XFillRectangle(_dpy, (Drawable)d->id, g, x, y, w, h); | |
32 XSetFillStyle(_dpy, g, FillSolid); | |
33 }else{ | |
34 if(s->ldepth != 0) | |
35 berror("unsupported texture"); | |
36 XSetStipple(_dpy, g, (Drawable)s->id); | |
37 XSetFillStyle(_dpy, g, FillOpaqueStippled); | |
38 XFillRectangle(_dpy, (Drawable)d->id, g, x, y, w, h); | |
39 XSetFillStyle(_dpy, g, FillSolid); | |
40 } | |
41 } |