OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkColor.h" | 8 #include "SkColor.h" |
9 #include "SkColorPriv.h" | 9 #include "SkColorPriv.h" |
10 #include "SkFixed.h" | 10 #include "SkFixed.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
93 switch (hx >> 16) { | 93 switch (hx >> 16) { |
94 case 0: r = v; g = t; b = p; break; | 94 case 0: r = v; g = t; b = p; break; |
95 case 1: r = q; g = v; b = p; break; | 95 case 1: r = q; g = v; b = p; break; |
96 case 2: r = p; g = v; b = t; break; | 96 case 2: r = p; g = v; b = t; break; |
97 case 3: r = p; g = q; b = v; break; | 97 case 3: r = p; g = q; b = v; break; |
98 case 4: r = t; g = p; b = v; break; | 98 case 4: r = t; g = p; b = v; break; |
99 default: r = v; g = p; b = q; break; | 99 default: r = v; g = p; b = q; break; |
100 } | 100 } |
101 return SkColorSetARGB(a, r, g, b); | 101 return SkColorSetARGB(a, r, g, b); |
102 } | 102 } |
103 | |
104 #include "SkMathPriv.h" | |
105 | |
106 SkColor4f SkColor4f::Normalize(float a, float r, float g, float b) { | |
mtklein
2016/01/21 19:28:30
Pin? (Also, SkNx this?)
| |
107 return { SkPinToUnitFloat(a), SkPinToUnitFloat(r), SkPinToUnitFloat(g), SkPi nToUnitFloat(b) }; | |
108 } | |
109 | |
110 SkColor4f SkColor4f::FromColor(SkColor c) { | |
mtklein
2016/01/21 19:28:30
Something like,
#include "SkNx.h"
SkColor4f SkCo
| |
111 const float kOneOver255 = 1.0f / 255; | |
112 return { | |
113 SkColorGetA(c) * kOneOver255, SkColorGetR(c) * kOneOver255, | |
114 SkColorGetG(c) * kOneOver255, SkColorGetB(c) * kOneOver255 | |
115 }; | |
116 } | |
117 | |
118 SkPM4f SkColor4f::premul() const { | |
119 SkColor4f src = this->normalize(); | |
120 SkPM4f dst; | |
121 dst.fVec[SK_A32_SHIFT/8] = src.fA; | |
122 dst.fVec[SK_R32_SHIFT/8] = src.fR; | |
123 dst.fVec[SK_G32_SHIFT/8] = src.fG; | |
124 dst.fVec[SK_B32_SHIFT/8] = src.fB; | |
125 return dst; | |
126 } | |
OLD | NEW |