Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: ui/gfx/color_space.cc

Issue 2338213009: Always use valid enum values in gfx::ColorSpace (Closed)
Patch Set: merge Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/color_space.h ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « ui/gfx/color_space.h ('k') | ui/gfx/color_transform.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698