|
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 |
|
39 |