Index: ui/gfx/color_space.cc |
diff --git a/ui/gfx/color_space.cc b/ui/gfx/color_space.cc |
index 8bb9bddca8882614957505d47eceb70e18d15af9..0456dff1f51ab522674ee913ef5aa9b62eaa48b7 100644 |
--- a/ui/gfx/color_space.cc |
+++ b/ui/gfx/color_space.cc |
@@ -12,6 +12,33 @@ |
namespace gfx { |
+ColorSpace::PrimaryID ColorSpace::PrimaryIDFromInt(int primary_id) { |
+ if (primary_id < 0 || primary_id > static_cast<int>(PrimaryID::LAST)) |
+ return PrimaryID::UNKNOWN; |
+ if (primary_id > static_cast<int>(PrimaryID::LAST_STANDARD_VALUE) && |
+ primary_id < 1000) |
+ return PrimaryID::UNKNOWN; |
+ return static_cast<PrimaryID>(primary_id); |
+} |
+ |
+ColorSpace::TransferID ColorSpace::TransferIDFromInt(int transfer_id) { |
+ if (transfer_id < 0 || transfer_id > static_cast<int>(TransferID::LAST)) |
+ return TransferID::UNKNOWN; |
+ if (transfer_id > static_cast<int>(TransferID::LAST_STANDARD_VALUE) && |
+ transfer_id < 1000) |
+ return TransferID::UNKNOWN; |
+ return static_cast<TransferID>(transfer_id); |
+} |
+ |
+ColorSpace::MatrixID ColorSpace::MatrixIDFromInt(int matrix_id) { |
+ if (matrix_id < 0 || matrix_id > static_cast<int>(MatrixID::LAST)) |
+ return MatrixID::UNKNOWN; |
+ if (matrix_id > static_cast<int>(MatrixID::LAST_STANDARD_VALUE) && |
+ matrix_id < 1000) |
+ return MatrixID::UNKNOWN; |
+ return static_cast<MatrixID>(matrix_id); |
+} |
+ |
ColorSpace::ColorSpace() { |
memset(custom_primary_matrix_, 0, sizeof(custom_primary_matrix_)); |
} |
@@ -28,6 +55,15 @@ ColorSpace::ColorSpace(PrimaryID primaries, |
// TODO: Set profile_id_ |
} |
+ColorSpace::ColorSpace(int primaries, int transfer, int matrix, RangeID range) |
+ : primaries_(PrimaryIDFromInt(primaries)), |
+ transfer_(TransferIDFromInt(transfer)), |
+ matrix_(MatrixIDFromInt(matrix)), |
+ range_(range) { |
+ memset(custom_primary_matrix_, 0, sizeof(custom_primary_matrix_)); |
+ // TODO: Set profile_id_ |
+} |
+ |
// static |
ColorSpace ColorSpace::CreateSRGB() { |
return ColorSpace(PrimaryID::BT709, TransferID::IEC61966_2_1, MatrixID::RGB, |