aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpacePriv.h
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-02-06 12:59:48 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-07 17:00:58 +0000
commitecaaf6f1c156e5690200322fc2636380c1f63dd8 (patch)
treea08ca843e15f8d9fd14b2d45f8a7916391052940 /src/core/SkColorSpacePriv.h
parent041f7dfc577822f1e97721a865f86a9a02660cf9 (diff)
SkColorSpace: remove named API, add gamut API
BUG=skia: Change-Id: I01c5e1874c9a034febc64e25b3aaafb5050393a6 Reviewed-on: https://skia-review.googlesource.com/8021 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/core/SkColorSpacePriv.h')
-rw-r--r--src/core/SkColorSpacePriv.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/core/SkColorSpacePriv.h b/src/core/SkColorSpacePriv.h
index 5b09036ea8..26ccd5e6ca 100644
--- a/src/core/SkColorSpacePriv.h
+++ b/src/core/SkColorSpacePriv.h
@@ -23,6 +23,35 @@ static constexpr float gAdobeRGB_toXYZD50[] {
0.0194811f, 0.0608902f, 0.7448387f, // Rz, Gz, Bz
};
+static constexpr float gDCIP3_toXYZD50[] {
+ 0.515102f, 0.291965f, 0.157153f, // Rx, Gx, Bx
+ 0.241182f, 0.692236f, 0.0665819f, // Ry, Gy, Gz
+ -0.00104941f, 0.0418818f, 0.784378f, // Rz, Gz, Bz
+};
+
+static constexpr float gRec2020_toXYZD50[] {
+ 0.673459f, 0.165661f, 0.125100f, // Rx, Gx, Bx
+ 0.279033f, 0.675338f, 0.0456288f, // Ry, Gy, Gz
+ -0.00193139f, 0.0299794f, 0.797162f, // Rz, Gz, Bz
+};
+
+static inline void to_xyz_d50(SkMatrix44* toXYZD50, SkColorSpace::Gamut gamut) {
+ switch (gamut) {
+ case SkColorSpace::kSRGB_Gamut:
+ toXYZD50->set3x3RowMajorf(gSRGB_toXYZD50);
+ break;
+ case SkColorSpace::kAdobeRGB_Gamut:
+ toXYZD50->set3x3RowMajorf(gAdobeRGB_toXYZD50);
+ break;
+ case SkColorSpace::kDCIP3_D65_Gamut:
+ toXYZD50->set3x3RowMajorf(gDCIP3_toXYZD50);
+ break;
+ case SkColorSpace::kRec2020_Gamut:
+ toXYZD50->set3x3RowMajorf(gRec2020_toXYZD50);
+ break;
+ }
+}
+
static inline bool color_space_almost_equal(float a, float b) {
return SkTAbs(a - b) < 0.01f;
}