use correct blend proc instead of fourbyteinterp, since the src may not be opaque
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 16 Nov 2012 14:46:00 +0000 (14:46 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 16 Nov 2012 14:46:00 +0000 (14:46 +0000)
fixes DumpRenderTree failure

git-svn-id: http://skia.googlecode.com/svn/trunk@6457 2bbb7eff-a529-9590-31e7-b0007b416f81

src/core/SkBlitter_ARGB32.cpp

index 6ca88d7..446bf35 100644 (file)
@@ -631,10 +631,10 @@ void SkARGB32_Shader_Blitter::blitV(int x, int y, int height, SkAlpha alpha) {
                 device = (uint32_t*)((char*)device + deviceRB);
             } while (--height > 0);
         } else {
-            // can't use fProc, since we need to use an unknown alpha
+            SkBlitRow::Proc32 proc = (255 == alpha) ? fProc32 : fProc32Blend;
             do {
                 shader->shadeSpan(x, y, span, 1);
-                *device = SkFourByteInterp(*span, *device, alpha);
+                proc(device, span, 1, alpha);
                 y += 1;
                 device = (uint32_t*)((char*)device + deviceRB);
             } while (--height > 0);