Index: src/core/SkBlitter_ARGB32.cpp |
diff --git a/src/core/SkBlitter_ARGB32.cpp b/src/core/SkBlitter_ARGB32.cpp |
index 7adab5544537fd052897d4dfdcb3e4a6b20246b4..aada0586a4b2dfb0bd7e2e9ae221b613b41138d1 100644 |
--- a/src/core/SkBlitter_ARGB32.cpp |
+++ b/src/core/SkBlitter_ARGB32.cpp |
@@ -237,7 +237,11 @@ void SkARGB32_Blitter::blitV(int x, int y, int height, SkAlpha alpha) { |
color = SkAlphaMulQ(color, SkAlpha255To256(alpha)); |
} |
+#ifdef SK_SUPPORT_LEGACY_BROKEN_LERP |
unsigned dst_scale = 255 - SkGetPackedA32(color); |
+#else |
+ unsigned dst_scale = SkAlpha255To256(255 - SkGetPackedA32(color)); |
+#endif |
size_t rowBytes = fDevice.rowBytes(); |
while (--height >= 0) { |
device[0] = color + SkAlphaMulQ(device[0], dst_scale); |