xserver/fb fbcompose.c,1.29,1.30
Lars Knoll <xserver-commit-u7BhqnqprCWvj1b/[email protected]> Mon, 4 Jul 2005 07:43:23 -0700 (PDT)
| Newsgroups | gmane.comp.freedesktop.xserver.cvs |
|---|---|
| Message-ID | <[email protected]> |
Committed by: lars
Update of /cvs/xserver/xserver/fb
In directory gabe:/tmp/cvs-serv24517
Modified Files:
fbcompose.c
Log Message:
don't be too smart and try to replace PictOpOver by PictOpSrc
when we have an external alpha map.
Index: fbcompose.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbcompose.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- fbcompose.c 4 Jul 2005 12:18:51 -0000 1.29
+++ fbcompose.c 4 Jul 2005 14:43:21 -0000 1.30
@@ -3214,9 +3214,6 @@
fbFetchTransformed(pict, x, y, width, buffer);
fbFetchTransformed(pict->alphaMap, x - pict->alphaOrigin.x, y - pict->alphaOrigin.y, width, alpha_buffer);
for (i = 0; i < width; ++i) {
- /* XXX i absolutely hate the way i'm doing it right now.
- there's definitely million better ways or handling
- external alpha */
int a = alpha_buffer[i]>>24;
buffer[i] = (a << 24)
| (div_255(Red(buffer[i]) * a) << 16)
@@ -3428,7 +3425,7 @@
maskRepeat = pMask->repeat == RepeatNormal && !pMask->transform
&& (pMask->pDrawable->width != 1 || pMask->pDrawable->height != 1);
- if (op == PictOpOver && !pMask && !pSrc->transform && !PICT_FORMAT_A(pSrc->format))
+ if (op == PictOpOver && !pMask && !pSrc->transform && !PICT_FORMAT_A(pSrc->format) && !pSrc->alphaMap)
op = PictOpSrc;
if (!miComputeCompositeRegion (®ion,