]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/libmemdraw/drawtest.c
pc: add vmx device
[plan9front.git] / sys / src / libmemdraw / drawtest.c
old mode 100755 (executable)
new mode 100644 (file)
index df9dd01..08e068e
@@ -26,7 +26,6 @@ ulong rgbatopix(uchar, uchar, uchar, uchar);
 char *dchan, *schan, *mchan;
 int dbpp, sbpp, mbpp;
 
-int drawdebug=0;
 int    seed;
 int    niters = 100;
 int    dbpp;   /* bits per pixel in destination */
@@ -49,26 +48,6 @@ uchar        *srcbits;
 uchar  *maskbits;
 ulong  *savedstbits;
 
-void
-rdb(void)
-{
-}
-
-int
-iprint(char *fmt, ...)
-{
-       int n;  
-       va_list va;
-       char buf[1024];
-
-       va_start(va, fmt);
-       n = vseprint(buf, buf+sizeof buf, fmt, va) - buf;
-       va_end(va);
-
-       write(1,buf,n);
-       return 1;
-}
-
 void
 main(int argc, char *argv[])
 {
@@ -974,7 +953,7 @@ drawonepixel(Memimage *dst, Point dp, Memimage *src, Point sp, Memimage *mask, P
        pixtorgba(getpixel(dst, dp), &dr, &dg, &db, &da);
        pixtorgba(getpixel(src, sp), &sr, &sg, &sb, &sa);
        m = getmask(mask, mp);
-       M = 255-(sa*m)/255;
+       M = 255-(sa*m + 127)/255;
 
 DBG print("dst %x %x %x %x src %x %x %x %x m %x = ", dr,dg,db,da, sr,sg,sb,sa, m);
        if(dst->flags&Fgrey){
@@ -985,18 +964,18 @@ DBG print("dst %x %x %x %x src %x %x %x %x m %x = ", dr,dg,db,da, sr,sg,sb,sa, m
                 */
                sk = RGB2K(sr, sg, sb);
                dk = RGB2K(dr, dg, db);
-               dk = (sk*m + dk*M)/255;
+               dk = (sk*m + dk*M + 127)/255;
                dr = dg = db = dk;
-               da = (sa*m + da*M)/255;
+               da = (sa*m + da*M + 127)/255;
        }else{
                /*
                 * True color alpha calculation treats all channels (including alpha)
                 * the same.  It might have been nice to use an array, but oh well.
                 */
-               dr = (sr*m + dr*M)/255;
-               dg = (sg*m + dg*M)/255;
-               db = (sb*m + db*M)/255;
-               da = (sa*m + da*M)/255;
+               dr = (sr*m + dr*M + 127)/255;
+               dg = (sg*m + dg*M + 127)/255;
+               db = (sb*m + db*M + 127)/255;
+               da = (sa*m + da*M + 127)/255;
        }
 
 DBG print("%x %x %x %x\n", dr,dg,db,da);