Index: src/core/SkXfermode.cpp |
diff --git a/src/core/SkXfermode.cpp b/src/core/SkXfermode.cpp |
index 2cfdcfa4b30e4f15293068885b79e8dc3ae03e75..3107e1929475b659e63ca044b46bb5021f5db82a 100644 |
--- a/src/core/SkXfermode.cpp |
+++ b/src/core/SkXfermode.cpp |
@@ -402,7 +402,10 @@ static SkPMColor difference_modeproc(SkPMColor src, SkPMColor dst) { |
// kExclusion_Mode |
static inline int exclusion_byte(int sc, int dc, int sa, int da) { |
djsollen
2013/07/10 15:36:47
we should update the signature to remove 'sa' and
|
// this equations is wacky, wait for SVG to confirm it |
- int r = sc * da + dc * sa - 2 * sc * dc + sc * (255 - da) + dc * (255 - sa); |
+ //int r = sc * da + dc * sa - 2 * sc * dc + sc * (255 - da) + dc * (255 - sa); |
+ |
+ // The above equation can be simplified as follows |
+ int r = 255*(sc + dc) - 2 * sc * dc; |
return clamp_div255round(r); |
} |
static SkPMColor exclusion_modeproc(SkPMColor src, SkPMColor dst) { |