aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrColorSpaceXform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrColorSpaceXform.cpp')
-rw-r--r--src/gpu/GrColorSpaceXform.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/gpu/GrColorSpaceXform.cpp b/src/gpu/GrColorSpaceXform.cpp
index d2270fafdd..ef96087147 100644
--- a/src/gpu/GrColorSpaceXform.cpp
+++ b/src/gpu/GrColorSpaceXform.cpp
@@ -49,8 +49,15 @@ sk_sp<GrColorSpaceXform> GrColorSpaceXform::Make(SkColorSpace* src, SkColorSpace
return nullptr;
}
+
+ const SkMatrix44* toXYZD50 = as_CSB(src)->toXYZD50();
+ const SkMatrix44* fromXYZD50 = as_CSB(dst)->fromXYZD50();
+ if (!toXYZD50 || !fromXYZD50) {
+ // unsupported colour spaces -- cannot specify gamut as a matrix
+ return nullptr;
+ }
SkMatrix44 srcToDst(SkMatrix44::kUninitialized_Constructor);
- srcToDst.setConcat(as_CSB(dst)->fromXYZD50(), as_CSB(src)->toXYZD50());
+ srcToDst.setConcat(*fromXYZD50, *toXYZD50);
if (matrix_is_almost_identity(srcToDst)) {
return nullptr;