bytesperline.c - vx32 - Local 9vx git repository for patches.
 (HTM) git clone git://r-36.net/vx32
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       bytesperline.c (617B)
       ---
            1 #include "u.h"
            2 #include "lib.h"
            3 #include "draw.h"
            4 
            5 static
            6 int
            7 unitsperline(Rectangle r, int d, int bitsperunit)
            8 {
            9         ulong l, t;
           10 
           11         if(d <= 0 || d > 32)        /* being called wrong.  d is image depth. */
           12                 abort();
           13 
           14         if(r.min.x >= 0){
           15                 l = (r.max.x*d+bitsperunit-1)/bitsperunit;
           16                 l -= (r.min.x*d)/bitsperunit;
           17         }else{                        /* make positive before divide */
           18                 t = (-r.min.x*d+bitsperunit-1)/bitsperunit;
           19                 l = t+(r.max.x*d+bitsperunit-1)/bitsperunit;
           20         }
           21         return l;
           22 }
           23 
           24 int
           25 wordsperline(Rectangle r, int d)
           26 {
           27         return unitsperline(r, d, 8*sizeof(uint32));
           28 }
           29 
           30 int
           31 bytesperline(Rectangle r, int d)
           32 {
           33         return unitsperline(r, d, 8);
           34 }