diff options
Diffstat (limited to 'src/libmemdraw/drawtest.c')
-rw-r--r-- | src/libmemdraw/drawtest.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/libmemdraw/drawtest.c b/src/libmemdraw/drawtest.c index 9d991782..07cda45d 100644 --- a/src/libmemdraw/drawtest.c +++ b/src/libmemdraw/drawtest.c @@ -62,7 +62,7 @@ iprint(char *fmt, ...) char buf[1024]; va_start(va, fmt); - n = doprint(buf, buf+sizeof buf, fmt, va) - buf; + n = vseprint(buf, buf+sizeof buf, fmt, va) - buf; va_end(va); write(1,buf,n); @@ -104,8 +104,6 @@ main(int argc, char *argv[]) exits("usage"); } - fmtinstall('b', numbconv); /* binary! */ - fprint(2, "%s -x %d -y %d -s 0x%x %s %s %s\n", argv0, Xrange, Yrange, seed, dchan, schan, mchan); srand(seed); @@ -161,7 +159,7 @@ main(int argc, char *argv[]) * a list of characters to put at various points in the picture. */ static void -Bprintr5g6b5(Biobuf *bio, char*, u32int v) +Bprintr5g6b5(Biobuf *bio, char* _, u32int v) { int r,g,b; r = (v>>11)&31; @@ -171,7 +169,7 @@ Bprintr5g6b5(Biobuf *bio, char*, u32int v) } static void -Bprintr5g5b5a1(Biobuf *bio, char*, u32int v) +Bprintr5g5b5a1(Biobuf *bio, char* _, u32int v) { int r,g,b,a; r = (v>>11)&31; @@ -974,7 +972,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 +983,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); |