| Index: ui/gfx/color_space.cc
|
| diff --git a/ui/gfx/color_space.cc b/ui/gfx/color_space.cc
|
| index 5c1825ea74bb3a4a5469a311dad483c879e31879..863a217eda42af857335fbf1200773351c7f0a39 100644
|
| --- a/ui/gfx/color_space.cc
|
| +++ b/ui/gfx/color_space.cc
|
| @@ -12,45 +12,70 @@
|
|
|
| namespace gfx {
|
|
|
| -ColorSpace::ColorSpace() = default;
|
| +ColorSpace::ColorSpace()
|
| + : primaries_(PRI_UNSPECIFIED),
|
| + transfer_(TRC_UNSPECIFIED),
|
| + matrix_(SPC_UNSPECIFIED),
|
| + full_range_(false) {}
|
| +
|
| +ColorSpace::ColorSpace(PrimaryID primaries,
|
| + TransferID transfer,
|
| + MatrixID matrix,
|
| + bool full_range)
|
| + : primaries_(primaries),
|
| + transfer_(transfer),
|
| + matrix_(matrix),
|
| + full_range_(full_range) {
|
| + // TODO: Set profile_id_
|
| +}
|
|
|
| // static
|
| ColorSpace ColorSpace::CreateSRGB() {
|
| ColorSpace color_space;
|
| - color_space.valid_ = true;
|
| - color_space.icc_profile_id_ = ICCProfile::kSRGBId;
|
| + color_space.primaries_ = PRI_BT709;
|
| + color_space.transfer_ = TRC_IEC61966_2_1;
|
| + color_space.matrix_ = SPC_RGB;
|
| + color_space.full_range_ = true;
|
| return color_space;
|
| }
|
|
|
| // static
|
| ColorSpace ColorSpace::CreateJpeg() {
|
| ColorSpace color_space;
|
| - color_space.valid_ = true;
|
| - color_space.icc_profile_id_ = ICCProfile::kJpegId;
|
| + color_space.primaries_ = PRI_BT709;
|
| + color_space.transfer_ = TRC_IEC61966_2_1;
|
| + color_space.matrix_ = SPC_BT709;
|
| + color_space.full_range_ = true;
|
| return color_space;
|
| }
|
|
|
| // static
|
| ColorSpace ColorSpace::CreateREC601() {
|
| ColorSpace color_space;
|
| - color_space.valid_ = true;
|
| - color_space.icc_profile_id_ = ICCProfile::kRec601Id;
|
| + color_space.primaries_ = PRI_SMPTE170M;
|
| + color_space.transfer_ = TRC_SMPTE170M;
|
| + color_space.matrix_ = SPC_SMPTE170M;
|
| + color_space.full_range_ = false;
|
| return color_space;
|
| }
|
|
|
| // static
|
| ColorSpace ColorSpace::CreateREC709() {
|
| ColorSpace color_space;
|
| - color_space.valid_ = true;
|
| - color_space.icc_profile_id_ = ICCProfile::kRec709Id;
|
| + color_space.primaries_ = PRI_BT709;
|
| + color_space.transfer_ = TRC_BT709;
|
| + color_space.matrix_ = SPC_BT709;
|
| + color_space.full_range_ = false;
|
| return color_space;
|
| }
|
|
|
| +bool ColorSpace::isValid() const {
|
| + return !(*this == ColorSpace());
|
| +}
|
| +
|
| bool ColorSpace::operator==(const ColorSpace& other) const {
|
| - // TODO(ccameron): The |icc_profile_id_| should eventually not factor in
|
| - // to equality comparison at all, because it's just an optimization, but
|
| - // for now there is no other data in this structure.
|
| - return valid_ == other.valid_ && icc_profile_id_ == other.icc_profile_id_;
|
| + return primaries_ == other.primaries_ && transfer_ == other.transfer_ &&
|
| + matrix_ == other.matrix_ && full_range_ == other.full_range_;
|
| }
|
|
|
| } // namespace gfx
|
|
|