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 |