OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
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 #ifndef SkColorSpace_Base_DEFINED | 8 #ifndef SkColorSpace_Base_DEFINED |
9 #define SkColorSpace_Base_DEFINED | 9 #define SkColorSpace_Base_DEFINED |
10 | 10 |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 class SkColorSpace_Base : public SkColorSpace { | 182 class SkColorSpace_Base : public SkColorSpace { |
183 public: | 183 public: |
184 | 184 |
185 static sk_sp<SkColorSpace> NewRGB(const float gammas[3], const SkMatrix44& t
oXYZD50); | 185 static sk_sp<SkColorSpace> NewRGB(const float gammas[3], const SkMatrix44& t
oXYZD50); |
186 | 186 |
187 SkGammaNamed gammaNamed() const { return fGammaNamed; } | 187 SkGammaNamed gammaNamed() const { return fGammaNamed; } |
188 const SkGammas* gammas() const { return fGammas.get(); } | 188 const SkGammas* gammas() const { return fGammas.get(); } |
189 | 189 |
190 const SkColorLookUpTable* colorLUT() const { return fColorLUT.get(); } | 190 const SkColorLookUpTable* colorLUT() const { return fColorLUT.get(); } |
191 | 191 |
| 192 const SkMatrix44& toXYZD50() const { return fToXYZD50; } |
192 const SkMatrix44& fromXYZD50() const; | 193 const SkMatrix44& fromXYZD50() const; |
193 | 194 |
194 private: | 195 private: |
195 | 196 |
196 /** | 197 /** |
197 * FIXME (msarett): | 198 * FIXME (msarett): |
198 * Hiding this function until we can determine if we need it. Known issues
include: | 199 * Hiding this function until we can determine if we need it. Known issues
include: |
199 * Only writes 3x3 matrices | 200 * Only writes 3x3 matrices |
200 * Only writes float gammas | 201 * Only writes float gammas |
201 * Rejected by some parsers because the "profile description" is empty | 202 * Rejected by some parsers because the "profile description" is empty |
202 */ | 203 */ |
203 sk_sp<SkData> writeToICC() const; | 204 sk_sp<SkData> writeToICC() const; |
204 | 205 |
205 static sk_sp<SkColorSpace> NewRGB(SkGammaNamed gammaNamed, const SkMatrix44&
toXYZD50); | 206 static sk_sp<SkColorSpace> NewRGB(SkGammaNamed gammaNamed, const SkMatrix44&
toXYZD50); |
206 | 207 |
207 SkColorSpace_Base(SkGammaNamed gammaNamed, const SkMatrix44& toXYZ); | 208 SkColorSpace_Base(SkGammaNamed gammaNamed, const SkMatrix44& toXYZ); |
208 | 209 |
209 SkColorSpace_Base(sk_sp<SkColorLookUpTable> colorLUT, SkGammaNamed gammaName
d, | 210 SkColorSpace_Base(sk_sp<SkColorLookUpTable> colorLUT, SkGammaNamed gammaName
d, |
210 sk_sp<SkGammas> gammas, const SkMatrix44& toXYZ, sk_sp<SkD
ata> profileData); | 211 sk_sp<SkGammas> gammas, const SkMatrix44& toXYZ, sk_sp<SkD
ata> profileData); |
211 | 212 |
212 sk_sp<SkColorLookUpTable> fColorLUT; | 213 sk_sp<SkColorLookUpTable> fColorLUT; |
213 const SkGammaNamed fGammaNamed; | 214 const SkGammaNamed fGammaNamed; |
214 sk_sp<SkGammas> fGammas; | 215 sk_sp<SkGammas> fGammas; |
215 sk_sp<SkData> fProfileData; | 216 sk_sp<SkData> fProfileData; |
216 | 217 |
| 218 const SkMatrix44 fToXYZD50; |
217 mutable SkMatrix44 fFromXYZD50; | 219 mutable SkMatrix44 fFromXYZD50; |
218 mutable SkOnce fFromXYZOnce; | 220 mutable SkOnce fFromXYZOnce; |
219 | 221 |
220 friend class SkColorSpace; | 222 friend class SkColorSpace; |
221 friend class ColorSpaceXformTest; | 223 friend class ColorSpaceXformTest; |
222 friend class ColorSpaceTest; | 224 friend class ColorSpaceTest; |
223 typedef SkColorSpace INHERITED; | 225 typedef SkColorSpace INHERITED; |
224 }; | 226 }; |
225 | 227 |
226 static inline SkColorSpace_Base* as_CSB(SkColorSpace* colorSpace) { | 228 static inline SkColorSpace_Base* as_CSB(SkColorSpace* colorSpace) { |
227 return static_cast<SkColorSpace_Base*>(colorSpace); | 229 return static_cast<SkColorSpace_Base*>(colorSpace); |
228 } | 230 } |
229 | 231 |
230 static inline const SkColorSpace_Base* as_CSB(const SkColorSpace* colorSpace) { | 232 static inline const SkColorSpace_Base* as_CSB(const SkColorSpace* colorSpace) { |
231 return static_cast<const SkColorSpace_Base*>(colorSpace); | 233 return static_cast<const SkColorSpace_Base*>(colorSpace); |
232 } | 234 } |
233 | 235 |
234 static inline SkColorSpace_Base* as_CSB(const sk_sp<SkColorSpace>& colorSpace) { | 236 static inline SkColorSpace_Base* as_CSB(const sk_sp<SkColorSpace>& colorSpace) { |
235 return static_cast<SkColorSpace_Base*>(colorSpace.get()); | 237 return static_cast<SkColorSpace_Base*>(colorSpace.get()); |
236 } | 238 } |
237 | 239 |
238 #endif | 240 #endif |
OLD | NEW |