| 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 "SkDrawColor.h" | 10 #include "SkDrawColor.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 SkScalar saturation = choice == kGetSaturation ? hsv : RGB_to_HSV(color, kGe
tSaturation); | 62 SkScalar saturation = choice == kGetSaturation ? hsv : RGB_to_HSV(color, kGe
tSaturation); |
| 63 SkScalar value = choice == kGetValue ? hsv : RGB_to_HSV(color, kGetValue); | 63 SkScalar value = choice == kGetValue ? hsv : RGB_to_HSV(color, kGetValue); |
| 64 value *= 255; | 64 value *= 255; |
| 65 SkScalar red SK_INIT_TO_AVOID_WARNING; | 65 SkScalar red SK_INIT_TO_AVOID_WARNING; |
| 66 SkScalar green SK_INIT_TO_AVOID_WARNING; | 66 SkScalar green SK_INIT_TO_AVOID_WARNING; |
| 67 SkScalar blue SK_INIT_TO_AVOID_WARNING; | 67 SkScalar blue SK_INIT_TO_AVOID_WARNING; |
| 68 if (saturation == 0) // color is on black-and-white center line | 68 if (saturation == 0) // color is on black-and-white center line |
| 69 red = green = blue = value; | 69 red = green = blue = value; |
| 70 else { | 70 else { |
| 71 //SkScalar fraction = SkScalarMod(hue, 60 * SK_Scalar1); | 71 //SkScalar fraction = SkScalarMod(hue, 60 * SK_Scalar1); |
| 72 int sextant = SkScalarFloor(hue / 60); | 72 int sextant = SkScalarFloorToInt(hue / 60); |
| 73 SkScalar fraction = hue / 60 - SkIntToScalar(sextant); | 73 SkScalar fraction = hue / 60 - SkIntToScalar(sextant); |
| 74 SkScalar p = SkScalarMul(value , SK_Scalar1 - saturation); | 74 SkScalar p = SkScalarMul(value , SK_Scalar1 - saturation); |
| 75 SkScalar q = SkScalarMul(value, SK_Scalar1 - SkScalarMul(saturation, fra
ction)); | 75 SkScalar q = SkScalarMul(value, SK_Scalar1 - SkScalarMul(saturation, fra
ction)); |
| 76 SkScalar t = SkScalarMul(value, SK_Scalar1 - | 76 SkScalar t = SkScalarMul(value, SK_Scalar1 - |
| 77 SkScalarMul(saturation, SK_Scalar1 - fraction)); | 77 SkScalarMul(saturation, SK_Scalar1 - fraction)); |
| 78 switch (sextant % 6) { | 78 switch (sextant % 6) { |
| 79 case 0: red = value; green = t; blue = p; break; | 79 case 0: red = value; green = t; blue = p; break; |
| 80 case 1: red = q; green = value; blue = p; break; | 80 case 1: red = q; green = value; blue = p; break; |
| 81 case 2: red = p; green = value; blue = t; break; | 81 case 2: red = p; green = value; blue = t; break; |
| 82 case 3: red = p; green = q; blue = value; break; | 82 case 3: red = p; green = q; blue = value; break; |
| 83 case 4: red = t; green = p; blue = value; break; | 83 case 4: red = t; green = p; blue = value; break; |
| 84 case 5: red = value; green = p; blue = q; break; | 84 case 5: red = value; green = p; blue = q; break; |
| 85 } | 85 } |
| 86 } | 86 } |
| 87 //used to say SkToU8((U8CPU) red) etc | 87 //used to say SkToU8((U8CPU) red) etc |
| 88 return SkColorSetARGB(SkColorGetA(color), SkScalarRound(red), | 88 return SkColorSetARGB(SkColorGetA(color), SkScalarRoundToInt(red), |
| 89 SkScalarRound(green), SkScalarRound(blue)); | 89 SkScalarRoundToInt(green), SkScalarRoundToInt(blue)); |
| 90 } | 90 } |
| 91 | 91 |
| 92 #if defined _WIN32 && _MSC_VER >= 1300 | 92 #if defined _WIN32 && _MSC_VER >= 1300 |
| 93 #pragma warning ( pop ) | 93 #pragma warning ( pop ) |
| 94 #endif | 94 #endif |
| 95 | 95 |
| 96 enum SkDrawColor_Properties { | 96 enum SkDrawColor_Properties { |
| 97 SK_PROPERTY(alpha), | 97 SK_PROPERTY(alpha), |
| 98 SK_PROPERTY(blue), | 98 SK_PROPERTY(blue), |
| 99 SK_PROPERTY(green), | 99 SK_PROPERTY(green), |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 case SK_PROPERTY(value): | 256 case SK_PROPERTY(value): |
| 257 fValue = scalar;//RGB_to_HSV(color, kGetValue); | 257 fValue = scalar;//RGB_to_HSV(color, kGetValue); |
| 258 fDirty = true; | 258 fDirty = true; |
| 259 break; | 259 break; |
| 260 default: | 260 default: |
| 261 SkASSERT(0); | 261 SkASSERT(0); |
| 262 return false; | 262 return false; |
| 263 } | 263 } |
| 264 return true; | 264 return true; |
| 265 } | 265 } |
| OLD | NEW |