merge
This commit is contained in:
commit
4aad1a3258
7 changed files with 261 additions and 112 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue