Ztransp Mask issue: now I did all this work to solve the exceptions, but
forgot the most simple case: regular alpha-over :)

This solves for example AA issues in ztransp-hair over solid faces.
This commit is contained in:
2006-12-22 12:43:40 +00:00
parent fcd3ea7875
commit 080ecf33c1

View File

@@ -913,10 +913,16 @@ void zbufshadeDA_tile(RenderPart *pa)
if(ztramask && solidmask) {
unsigned short *sps= solidmask, *spz= ztramask;
unsigned short fullmask= (1<<R.osa)-1;
float *fcol= rl->rectf; float *acol= rl->acolrect;
int x;
for(x=pa->rectx*pa->recty; x>0; x--, acol+=4, fcol+=4, sps++, spz++)
addAlphaOverFloatMask(fcol, acol, *sps, *spz);
for(x=pa->rectx*pa->recty; x>0; x--, acol+=4, fcol+=4, sps++, spz++) {
if(*sps == fullmask)
addAlphaOverFloat(fcol, acol);
else
addAlphaOverFloatMask(fcol, acol, *sps, *spz);
}
}
else {
float *fcol= rl->rectf; float *acol= rl->acolrect;