diff options
Diffstat (limited to 'src/shaders/SkPictureShader.cpp')
-rw-r--r-- | src/shaders/SkPictureShader.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/shaders/SkPictureShader.cpp b/src/shaders/SkPictureShader.cpp index 82439aeb62..415d3e5713 100644 --- a/src/shaders/SkPictureShader.cpp +++ b/src/shaders/SkPictureShader.cpp @@ -296,8 +296,13 @@ const { } sk_sp<SkShader> SkPictureShader::onMakeColorSpace(SkColorSpaceXformer* xformer) const { + sk_sp<SkColorSpace> dstCS = xformer->dst(); + if (SkColorSpace::Equals(dstCS.get(), fColorSpace.get())) { + return sk_ref_sp(const_cast<SkPictureShader*>(this)); + } + return sk_sp<SkPictureShader>(new SkPictureShader(fPicture, fTmx, fTmy, &this->getLocalMatrix(), - &fTile, xformer->dst())); + &fTile, std::move(dstCS))); } ///////////////////////////////////////////////////////////////////////////////////////// |