aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkColorSpace.h6
-rw-r--r--src/core/SkColorSpace.cpp10
2 files changed, 16 insertions, 0 deletions
diff --git a/include/core/SkColorSpace.h b/include/core/SkColorSpace.h
index 6c0db85d7b..1bcb44fbc5 100644
--- a/include/core/SkColorSpace.h
+++ b/include/core/SkColorSpace.h
@@ -118,6 +118,12 @@ public:
bool gammaIsLinear() const;
/**
+ * Returns true and sets |toXYZD50| if the color gamut can be described as a matrix.
+ * Returns false otherwise.
+ */
+ bool toXYZD50(SkMatrix44* toXYZD50) const;
+
+ /**
* Returns nullptr on failure. Fails when we fallback to serializing ICC data and
* the data is too large to serialize.
*/
diff --git a/src/core/SkColorSpace.cpp b/src/core/SkColorSpace.cpp
index 239a61bcce..3c1ce257f1 100644
--- a/src/core/SkColorSpace.cpp
+++ b/src/core/SkColorSpace.cpp
@@ -242,6 +242,16 @@ bool SkColorSpace::gammaIsLinear() const {
return as_CSB(this)->onGammaIsLinear();
}
+bool SkColorSpace::toXYZD50(SkMatrix44* toXYZD50) const {
+ const SkMatrix44* matrix = as_CSB(this)->toXYZD50();
+ if (matrix) {
+ *toXYZD50 = *matrix;
+ return true;
+ }
+
+ return false;
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////////
enum Version {