| Index: src/core/SkColorSpace_XYZTRC.h
|
| diff --git a/src/core/SkColorSpace_XYZTRC.h b/src/core/SkColorSpace_XYZTRC.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..771dc4631511279abd3580066c6b22f9e8e9775b
|
| --- /dev/null
|
| +++ b/src/core/SkColorSpace_XYZTRC.h
|
| @@ -0,0 +1,53 @@
|
| +/*
|
| + * Copyright 2016 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef SkColorSpace_XYZTRC_DEFINED
|
| +#define SkColorSpace_XYZTRC_DEFINED
|
| +
|
| +#include "SkColorSpace_Base.h"
|
| +#include "SkData.h"
|
| +#include "SkOnce.h"
|
| +
|
| +class SkColorSpace_XYZTRC : public SkColorSpace_Base {
|
| +public:
|
| + const SkMatrix44* toXYZD50() const override { return &fToXYZD50; }
|
| +
|
| + const SkMatrix44* fromXYZD50() const override;
|
| +
|
| + bool onGammaCloseToSRGB() const override;
|
| +
|
| + bool onGammaIsLinear() const override;
|
| +
|
| + sk_sp<SkColorSpace> makeLinearGamma();
|
| +
|
| + SkGammaNamed gammaNamed() const { return fGammaNamed; }
|
| +
|
| + const SkGammas* gammas() const { return fGammas.get(); }
|
| +
|
| +protected:
|
| + Type type() const override { return Type::kXYZTRC; }
|
| +
|
| +private:
|
| + SkColorSpace_XYZTRC(SkGammaNamed gammaNamed, const SkMatrix44& toXYZ);
|
| +
|
| + SkColorSpace_XYZTRC(SkGammaNamed gammaNamed, sk_sp<SkGammas> gammas,
|
| + const SkMatrix44& toXYZ, sk_sp<SkData> profileData);
|
| +
|
| + const SkGammaNamed fGammaNamed;
|
| + sk_sp<SkGammas> fGammas;
|
| + const SkMatrix44 fToXYZD50;
|
| +
|
| + mutable SkMatrix44 fFromXYZD50;
|
| + mutable SkOnce fFromXYZOnce;
|
| +
|
| + friend class SkColorSpace;
|
| + friend class SkColorSpace_Base;
|
| + friend class ColorSpaceXformTest;
|
| + typedef SkColorSpace_Base INHERITED;
|
| +};
|
| +
|
| +#endif
|
|
|