rem: tmp= (*(s+3) * opaqueness)/256; *d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256; d++; s++; *d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256; d++; s++; *d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256; d++; s++;
add: tmp = (*(s+3) * opaqueness)/256; *d = (((int)*d * (255-tmp)) + ((int)*s * tmp))/256; d++; s++; *d = (((int)*d * (255-tmp)) + ((int)*s * tmp))/256; d++; s++; *d = (((int)*d * (255-tmp)) + ((int)*s * tmp))/256; d++; s++;
context: RCombineAreaWithOpaqueness(RImage *image, RImage *src, int sx, int sy, 			   unsigned width, unsigned height, int dx, int dy,			   int opaqueness){    int x, y, dwi, swi;    int c_opaqueness;    unsigned char *d;    unsigned char *s;    int dalpha = HAS_ALPHA(image);    int dch = (dalpha ? 4 : 3);    if(!calculateCombineArea(image, src, &sx, &sy, &width, &height, &dx, &dy))        return;    d = image->data + (dy*image->width + dx) * dch;    dwi = (image->width - width)*dch;    c_opaqueness = 255 - opaqueness;#define OP opaqueness    if (!HAS_ALPHA(src)) {#define COP c_opaqueness	s = src->data + sy*src->width*3;		swi = (src->width - width) * 3;		for (y=0; y < height; y++) {	    for (x=0; x < width; x++) {		*d = (((int)*d *(int)COP) + ((int)*s *(int)OP))/256;		s++; d++;		*d = (((int)*d *(int)COP) + ((int)*s *(int)OP))/256;		s++; d++;		*d = (((int)*d *(int)COP) + ((int)*s *(int)OP))/256;		s++; d++;		if (dalpha)		    d++;	    }	    d += dwi; s += swi;	}#undef COP    } else {        int tmp;	s = src->data + sy*src->width*4;	swi = (src->width - width) * 4;		for (y=0; y < height; y++) {	    for (x=0; x < width; x++) {	        tmp= (*(s+3) * opaqueness)/256;		*d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256;		d++; s++;		*d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256;		d++; s++;		*d = (((int)*d *(int)(255-tmp)) + ((int)*s *(int)tmp))/256;		d++; s++;		s++;		if (dalpha)		    d++;	    }	    d += dwi; s += swi;	}    }#undef OP}			