| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkDrawGradient.h" | 10 #include "SkDrawGradient.h" |
| 11 #include "SkAnimateMaker.h" | 11 #include "SkAnimateMaker.h" |
| 12 #include "SkAnimatorScript.h" | 12 #include "SkAnimatorScript.h" |
| 13 #include "SkGradientShader.h" | 13 #include "SkGradientShader.h" |
| 14 #include "SkUnitMapper.h" | 14 #include "SkUnitMapper.h" |
| 15 | 15 |
| 16 static SkScalar SkUnitToScalar(U16CPU x) { | 16 static SkScalar SkUnitToScalar(U16CPU x) { |
| 17 #ifdef SK_SCALAR_IS_FLOAT | |
| 18 return x / 65535.0f; | 17 return x / 65535.0f; |
| 19 #else | |
| 20 return x + (x >> 8); | |
| 21 #endif | |
| 22 } | 18 } |
| 23 | 19 |
| 24 static U16CPU SkScalarToUnit(SkScalar x) { | 20 static U16CPU SkScalarToUnit(SkScalar x) { |
| 25 SkScalar pin = SkScalarPin(x, 0, SK_Scalar1); | 21 SkScalar pin = SkScalarPin(x, 0, SK_Scalar1); |
| 26 #ifdef SK_SCALAR_IS_FLOAT | |
| 27 return (int) (pin * 65535.0f); | 22 return (int) (pin * 65535.0f); |
| 28 #else | |
| 29 return pin - (pin >= 32768); | |
| 30 #endif | |
| 31 } | 23 } |
| 32 | 24 |
| 33 class SkDrawGradientUnitMapper : public SkUnitMapper { | 25 class SkDrawGradientUnitMapper : public SkUnitMapper { |
| 34 public: | 26 public: |
| 35 SkDrawGradientUnitMapper(SkAnimateMaker* maker, const char* script) : fMaker
(maker), fScript(script) { | 27 SkDrawGradientUnitMapper(SkAnimateMaker* maker, const char* script) : fMaker
(maker), fScript(script) { |
| 36 } | 28 } |
| 37 | 29 |
| 38 SK_DECLARE_UNFLATTENABLE_OBJECT() | 30 SK_DECLARE_UNFLATTENABLE_OBJECT() |
| 39 | 31 |
| 40 protected: | 32 protected: |
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 SkShader* SkDrawRadialGradient::getShader() { | 209 SkShader* SkDrawRadialGradient::getShader() { |
| 218 if (addPrelude() == 0) | 210 if (addPrelude() == 0) |
| 219 return NULL; | 211 return NULL; |
| 220 SkShader* shader = SkGradientShader::CreateRadial(center, | 212 SkShader* shader = SkGradientShader::CreateRadial(center, |
| 221 radius, fColors.begin(), offsets.begin(), fColors.count(), (SkShader::Ti
leMode) tileMode, fUnitMapper); | 213 radius, fColors.begin(), offsets.begin(), fColors.count(), (SkShader::Ti
leMode) tileMode, fUnitMapper); |
| 222 SkAutoTDelete<SkShader> autoDel(shader); | 214 SkAutoTDelete<SkShader> autoDel(shader); |
| 223 addPostlude(shader); | 215 addPostlude(shader); |
| 224 (void)autoDel.detach(); | 216 (void)autoDel.detach(); |
| 225 return shader; | 217 return shader; |
| 226 } | 218 } |
| OLD | NEW |