xf86-video-intel: src/sna/sna_composite.c
Chris Wilson
ickle at kemper.freedesktop.org
Thu Mar 8 01:05:34 PST 2012
src/sna/sna_composite.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
New commits:
commit 8e6166a0e87a00248d0d4925953c923850f5b840
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Thu Mar 8 02:09:25 2012 +0000
sna: Becareful not to reduce operators for superluminal colors
wine-1.4 is such an example of a crazy application.
References: https://bugs.freedesktop.org/show_bug.cgi?id=42606
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index 225008f..38ff99d 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -644,7 +644,7 @@ sna_composite_rectangles(CARD8 op,
return;
}
- if (color->alpha <= 0x00ff) {
+ if ((color->red|color->green|color->blue|color->alpha) <= 0x00ff) {
switch (op) {
case PictOpOver:
case PictOpOutReverse:
@@ -661,6 +661,22 @@ sna_composite_rectangles(CARD8 op,
op = PictOpOverReverse;
break;
}
+ }
+ if (color->alpha <= 0x00ff) {
+ switch (op) {
+ case PictOpOver:
+ case PictOpOutReverse:
+ return;
+ case PictOpInReverse:
+ op = PictOpClear;
+ break;
+ case PictOpAtopReverse:
+ op = PictOpOut;
+ break;
+ case PictOpXor:
+ op = PictOpOverReverse;
+ break;
+ }
} else if (color->alpha >= 0xff00) {
switch (op) {
case PictOpOver:
More information about the xorg-commit
mailing list