| Index: ui/gfx/color_space.h
|
| diff --git a/ui/gfx/color_space.h b/ui/gfx/color_space.h
|
| index dc54cb7b5066a3ec7b87f167f869af8b9e22e72f..fbbb78690df39aa52a701190369f4ae979912155 100644
|
| --- a/ui/gfx/color_space.h
|
| +++ b/ui/gfx/color_space.h
|
| @@ -152,6 +152,8 @@ class GFX_EXPORT ColorSpace {
|
| static MatrixID MatrixIDFromInt(int matrix_id);
|
|
|
| static ColorSpace CreateSRGB();
|
| + static ColorSpace CreateCustom(const SkMatrix44& to_XYZD50,
|
| + const SkColorSpaceTransferFn& fn);
|
| // scRGB is like RGB, but linear and values outside of 0-1 are allowed.
|
| // scRGB is normally used with fp16 textures.
|
| static ColorSpace CreateSCRGBLinear();
|
| @@ -169,23 +171,31 @@ class GFX_EXPORT ColorSpace {
|
| bool IsHDR() const;
|
|
|
| // Note that this may return nullptr.
|
| - const sk_sp<SkColorSpace>& ToSkColorSpace() const { return sk_color_space_; }
|
| + sk_sp<SkColorSpace> ToSkColorSpace() const;
|
| static ColorSpace FromSkColorSpace(const sk_sp<SkColorSpace>& sk_color_space);
|
|
|
| + void GetPrimaryMatrix(SkMatrix44* to_XYZD50) const;
|
| + bool GetTransferFunction(SkColorSpaceTransferFn* fn) const;
|
| + bool GetInverseTransferFunction(SkColorSpaceTransferFn* fn) const;
|
| +
|
| private:
|
| PrimaryID primaries_ = PrimaryID::UNSPECIFIED;
|
| TransferID transfer_ = TransferID::UNSPECIFIED;
|
| MatrixID matrix_ = MatrixID::UNSPECIFIED;
|
| RangeID range_ = RangeID::LIMITED;
|
|
|
| - // Only used if primaries_ == PrimaryID::CUSTOM
|
| - float custom_primary_matrix_[12];
|
| + // Only used if primaries_ is PrimaryID::CUSTOM.
|
| + float custom_primary_matrix_[9] = {0, 0, 0, 0, 0, 0, 0, 0};
|
| +
|
| + // Only used if transfer_ is TransferID::CUSTOM. This array consists of the A
|
| + // through G entries of the SkColorSpaceTransferFn structure in alphabetical
|
| + // order.
|
| + float custom_transfer_params_[7] = {0, 0, 0, 0, 0, 0, 0};
|
|
|
| // This is used to look up the ICCProfile from which this ColorSpace was
|
| // created, if possible.
|
| uint64_t icc_profile_id_ = 0;
|
| -
|
| - sk_sp<SkColorSpace> sk_color_space_;
|
| + sk_sp<SkColorSpace> icc_profile_sk_color_space_;
|
|
|
| friend class ICCProfile;
|
| friend class ColorSpaceToColorSpaceTransform;
|
|
|