diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-06-30 21:06:22 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2011-06-30 21:06:22 +0000 |
commit | 0b8b3bb08330dd341acbd52c16e55455325e465a (patch) | |
tree | 5d82858bc74fdd36c8e0cd42b8770870fcecab87 /src/effects/SkGradientShader.cpp | |
parent | e620ad299f28512f98314da41528fe9f71ebb4cc (diff) |
make inline version of premultiply, to speed up gradient creation.
We could speed-up again if we...
- respected kDither and only built 1/2 of the table for non-dither requests
- output simple params to the gpu rather than always a texture
- detected that we have no alpha, and then can skip premul per-entry
git-svn-id: http://skia.googlecode.com/svn/trunk@1772 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/SkGradientShader.cpp')
-rw-r--r-- | src/effects/SkGradientShader.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp index d8ffe5afc6..f44e038163 100644 --- a/src/effects/SkGradientShader.cpp +++ b/src/effects/SkGradientShader.cpp @@ -538,11 +538,11 @@ void Gradient_Shader::Build32bitCache(SkPMColor cache[], SkColor c0, SkColor c1, b = SkIntToFixed(b) + 0x8000; do { - cache[0] = SkPreMultiplyARGB(a >> 16, r >> 16, g >> 16, b >> 16); - cache[kCache32Count] = SkPreMultiplyARGB(dither_ceil_fixed_to_8(a), - dither_fixed_to_8(r), - dither_fixed_to_8(g), - dither_fixed_to_8(b)); + cache[0] = SkPremultiplyARGBInline(a >> 16, r >> 16, g >> 16, b >> 16); + cache[kCache32Count] = SkPremultiplyARGBInline(dither_ceil_fixed_to_8(a), + dither_fixed_to_8(r), + dither_fixed_to_8(g), + dither_fixed_to_8(b)); cache += 1; a += da; r += dr; |