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 }