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 |