Blame


1 76193d7c 2003-09-30 devnull #include <u.h>
2 76193d7c 2003-09-30 devnull #include <libc.h>
3 76193d7c 2003-09-30 devnull #include <draw.h>
4 76193d7c 2003-09-30 devnull
5 76193d7c 2003-09-30 devnull static
6 76193d7c 2003-09-30 devnull int
7 76193d7c 2003-09-30 devnull unitsperline(Rectangle r, int d, int bitsperunit)
8 76193d7c 2003-09-30 devnull {
9 76193d7c 2003-09-30 devnull ulong l, t;
10 76193d7c 2003-09-30 devnull
11 76193d7c 2003-09-30 devnull if(d <= 0 || d > 32) /* being called wrong. d is image depth. */
12 76193d7c 2003-09-30 devnull abort();
13 76193d7c 2003-09-30 devnull
14 76193d7c 2003-09-30 devnull if(r.min.x >= 0){
15 76193d7c 2003-09-30 devnull l = (r.max.x*d+bitsperunit-1)/bitsperunit;
16 76193d7c 2003-09-30 devnull l -= (r.min.x*d)/bitsperunit;
17 76193d7c 2003-09-30 devnull }else{ /* make positive before divide */
18 76193d7c 2003-09-30 devnull t = (-r.min.x*d+bitsperunit-1)/bitsperunit;
19 76193d7c 2003-09-30 devnull l = t+(r.max.x*d+bitsperunit-1)/bitsperunit;
20 76193d7c 2003-09-30 devnull }
21 76193d7c 2003-09-30 devnull return l;
22 76193d7c 2003-09-30 devnull }
23 76193d7c 2003-09-30 devnull
24 76193d7c 2003-09-30 devnull int
25 76193d7c 2003-09-30 devnull wordsperline(Rectangle r, int d)
26 76193d7c 2003-09-30 devnull {
27 2634795b 2005-01-14 devnull return unitsperline(r, d, 8*sizeof(u32int));
28 76193d7c 2003-09-30 devnull }
29 76193d7c 2003-09-30 devnull
30 76193d7c 2003-09-30 devnull int
31 76193d7c 2003-09-30 devnull bytesperline(Rectangle r, int d)
32 76193d7c 2003-09-30 devnull {
33 76193d7c 2003-09-30 devnull return unitsperline(r, d, 8);
34 76193d7c 2003-09-30 devnull }