michael@0: From: George Wright michael@0: Date: Thu, 20 Jun 2013 09:21:21 -0400 michael@0: Subject: Bug 848491 - Re-apply bug 795538 - Ensure we use the correct colour (and alpha) for the clamp values r=mattwoodrow michael@0: michael@0: michael@0: diff --git a/gfx/skia/src/effects/gradients/SkGradientShader.cpp b/gfx/skia/src/effects/gradients/SkGradientShader.cpp michael@0: index 27a9c46..ce077b5 100644 michael@0: --- a/gfx/skia/src/effects/gradients/SkGradientShader.cpp michael@0: +++ b/gfx/skia/src/effects/gradients/SkGradientShader.cpp michael@0: @@ -500,15 +500,17 @@ const SkPMColor* SkGradientShaderBase::getCache32() const { michael@0: } michael@0: michael@0: // Write the clamp colours into the first and last entries of fCache32 michael@0: - fCache32[kCache32ClampLower] = SkPackARGB32(fCacheAlpha, michael@0: - SkColorGetR(fOrigColors[0]), michael@0: - SkColorGetG(fOrigColors[0]), michael@0: - SkColorGetB(fOrigColors[0])); michael@0: - michael@0: - fCache32[kCache32ClampUpper] = SkPackARGB32(fCacheAlpha, michael@0: - SkColorGetR(fOrigColors[fColorCount - 1]), michael@0: - SkColorGetG(fOrigColors[fColorCount - 1]), michael@0: - SkColorGetB(fOrigColors[fColorCount - 1])); michael@0: + fCache32[kCache32ClampLower] = SkPremultiplyARGBInline(SkMulDiv255Round(SkColorGetA(fOrigColors[0]), michael@0: + fCacheAlpha), michael@0: + SkColorGetR(fOrigColors[0]), michael@0: + SkColorGetG(fOrigColors[0]), michael@0: + SkColorGetB(fOrigColors[0])); michael@0: + michael@0: + fCache32[kCache32ClampUpper] = SkPremultiplyARGBInline(SkMulDiv255Round(SkColorGetA(fOrigColors[fColorCount - 1]), michael@0: + fCacheAlpha), michael@0: + SkColorGetR(fOrigColors[fColorCount - 1]), michael@0: + SkColorGetG(fOrigColors[fColorCount - 1]), michael@0: + SkColorGetB(fOrigColors[fColorCount - 1])); michael@0: michael@0: return fCache32; michael@0: } michael@0: -- michael@0: 1.7.11.7 michael@0: