Chromium Code Reviews| Index: src/core/SkColorSpace_Base.h |
| diff --git a/src/core/SkColorSpace_Base.h b/src/core/SkColorSpace_Base.h |
| index 07fa3832530d3357a45350043a5a3b2d41b41d52..9a040c8663860d819d4c8f534165540946dd04a4 100644 |
| --- a/src/core/SkColorSpace_Base.h |
| +++ b/src/core/SkColorSpace_Base.h |
| @@ -181,16 +181,35 @@ struct SkColorLookUpTable : public SkRefCnt { |
| class SkColorSpace_Base : public SkColorSpace { |
| public: |
| - |
| static sk_sp<SkColorSpace> NewRGB(const float gammas[3], const SkMatrix44& toXYZD50); |
| - SkGammaNamed gammaNamed() const { return fGammaNamed; } |
| - const SkGammas* gammas() const { return fGammas.get(); } |
| - |
| - const SkColorLookUpTable* colorLUT() const { return fColorLUT.get(); } |
| - |
| - const SkMatrix44& toXYZD50() const { return fToXYZD50; } |
| - const SkMatrix44& fromXYZD50() const; |
| + /** |
| + * Describes color space gamut as a transformation to XYZ D50. |
| + * Returns nullptr if color gamut cannot be described in terms of XYZ D50. |
| + */ |
| + virtual const SkMatrix44* toXYZD50() const = 0; |
| + |
| + /** |
| + * Describes color space gamut as a transformation from XYZ D50 |
| + * Returns nullptr if color gamut cannot be described in terms of XYZ D50. |
| + */ |
| + virtual const SkMatrix44* fromXYZD50() const = 0; |
| + |
| + virtual sk_sp<SkColorSpace> makeLinearGammaImpl() = 0; |
|
msarett
2016/10/11 13:40:31
nit: Skia style onMakeLinearGamma()
|
| + |
| + virtual bool gammaCloseToSRGBImpl() const = 0; |
|
msarett
2016/10/11 13:40:31
nit: onGammaCloseToSRGB
|
| + |
| + virtual bool gammaIsLinearImpl() const = 0; |
|
msarett
2016/10/11 13:40:31
nit: onGammaIsLinear
|
| + |
| +protected: |
| + SkColorSpace_Base(sk_sp<SkData> profileData); |
| + |
| + enum class Type : uint8_t { |
| + kXYZTRC, |
| + kA2B0 |
| + }; |
| + |
| + virtual Type type() const = 0; |
| private: |
| @@ -205,23 +224,15 @@ private: |
| static sk_sp<SkColorSpace> NewRGB(SkGammaNamed gammaNamed, const SkMatrix44& toXYZD50); |
| - SkColorSpace_Base(SkGammaNamed gammaNamed, const SkMatrix44& toXYZ); |
| - |
| - SkColorSpace_Base(sk_sp<SkColorLookUpTable> colorLUT, SkGammaNamed gammaNamed, |
| - sk_sp<SkGammas> gammas, const SkMatrix44& toXYZ, sk_sp<SkData> profileData); |
| - |
| - sk_sp<SkColorLookUpTable> fColorLUT; |
| - const SkGammaNamed fGammaNamed; |
| - sk_sp<SkGammas> fGammas; |
| - sk_sp<SkData> fProfileData; |
| - const SkMatrix44 fToXYZD50; |
| - mutable SkMatrix44 fFromXYZD50; |
| - mutable SkOnce fFromXYZOnce; |
| + sk_sp<SkData> fProfileData; |
| friend class SkColorSpace; |
| + friend class SkColorSpace_XYZTRC; |
| + friend class SkColorSpaceXform; |
| friend class ColorSpaceXformTest; |
| friend class ColorSpaceTest; |
| + friend class LabPCSDemoGM; |
| typedef SkColorSpace INHERITED; |
| }; |