0022-Bug-848491-Re-apply-bug-795538-Ensure-we-use-the-cor.patch (2305B)
1 From: George Wright <gwright@mozilla.com> 2 Date: Thu, 20 Jun 2013 09:21:21 -0400 3 Subject: Bug 848491 - Re-apply bug 795538 - Ensure we use the correct colour (and alpha) for the clamp values r=mattwoodrow 4 5 6 diff --git a/gfx/skia/src/effects/gradients/SkGradientShader.cpp b/gfx/skia/src/effects/gradients/SkGradientShader.cpp 7 index 27a9c46..ce077b5 100644 8 --- a/gfx/skia/src/effects/gradients/SkGradientShader.cpp 9 +++ b/gfx/skia/src/effects/gradients/SkGradientShader.cpp 10 @@ -500,15 +500,17 @@ const SkPMColor* SkGradientShaderBase::getCache32() const { 11 } 12 13 // Write the clamp colours into the first and last entries of fCache32 14 - fCache32[kCache32ClampLower] = SkPackARGB32(fCacheAlpha, 15 - SkColorGetR(fOrigColors[0]), 16 - SkColorGetG(fOrigColors[0]), 17 - SkColorGetB(fOrigColors[0])); 18 - 19 - fCache32[kCache32ClampUpper] = SkPackARGB32(fCacheAlpha, 20 - SkColorGetR(fOrigColors[fColorCount - 1]), 21 - SkColorGetG(fOrigColors[fColorCount - 1]), 22 - SkColorGetB(fOrigColors[fColorCount - 1])); 23 + fCache32[kCache32ClampLower] = SkPremultiplyARGBInline(SkMulDiv255Round(SkColorGetA(fOrigColors[0]), 24 + fCacheAlpha), 25 + SkColorGetR(fOrigColors[0]), 26 + SkColorGetG(fOrigColors[0]), 27 + SkColorGetB(fOrigColors[0])); 28 + 29 + fCache32[kCache32ClampUpper] = SkPremultiplyARGBInline(SkMulDiv255Round(SkColorGetA(fOrigColors[fColorCount - 1]), 30 + fCacheAlpha), 31 + SkColorGetR(fOrigColors[fColorCount - 1]), 32 + SkColorGetG(fOrigColors[fColorCount - 1]), 33 + SkColorGetB(fOrigColors[fColorCount - 1])); 34 35 return fCache32; 36 } 37 -- 38 1.7.11.7