balloc.c - sam - An updated version of the sam text editor.
(HTM) git clone git://vernunftzentrum.de/sam.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
balloc.c (1133B)
---
1 /* Copyright (c) 1998 Lucent Technologies - All rights reserved. */
2 #include <u.h>
3 #include <libg.h>
4 #include "libgint.h"
5
6 Bitmap*
7 balloc(Rectangle r, int ldepth)
8 {
9 Bitmap *b;
10
11 b = _balloc(r, ldepth);
12 bitblt(b, r.min, b, r, Zero);
13 return b;
14 }
15
16 Bitmap*
17 _balloc(Rectangle r, int ldepth)
18 {
19 int id;
20 Bitmap *b;
21 int ld;
22 Rectangle rx;
23
24 b = (Bitmap *)calloc(1, sizeof(Bitmap));
25 if(b == 0)
26 berror("balloc malloc");
27 if (ldepth == 0)
28 ld = 0;
29 else
30 ld = screen.ldepth;
31 rx = r;
32 if (Dx(rx) == 0)
33 rx.max.x++;
34 if (Dy(rx) == 0)
35 rx.max.y++;
36 id = (int) XCreatePixmap(_dpy, (Drawable)screen.id,
37 Dx(rx), Dy(rx), _ld2d[ld]);
38 b->ldepth = ldepth;
39 b->r = r;
40 b->clipr = r;
41 b->id = id;
42 b->cache = 0;
43 if(ldepth == 0)
44 b->flag = DP1|BL1;
45 else
46 b->flag = screen.flag&BL1;
47 if(r.min.x==0 && r.min.y ==0)
48 b->flag |= ZORG;
49 else
50 b->flag |= SHIFT;
51 return b;
52 }
53
54 void
55 bfree(Bitmap *b)
56 {
57 if (b->fd)
58 XftDrawDestroy(b->fd);
59 XFreePixmap(_dpy, (Pixmap)b->id);
60 free(b);
61 }