aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/shaders/SkPictureShader.cpp
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2017-07-13 14:29:12 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-13 18:53:32 +0000
commit604f0d54a8b22e6d1ec7581fcb68191aa0ff03fc (patch)
tree7a1b8974d3318f7b037ddacfd3b1c68a30f35b35 /src/shaders/SkPictureShader.cpp
parent9d3e162703e601db93e368299d412c11b1495769 (diff)
Avoid unneeded picture shader color space transforms
Also update SkPictureImageFilter to use SkColorSpace::Equals instead of direct comparison. Change-Id: I434cd6d1afcb869d2a56601b72edf56d207d9868 Reviewed-on: https://skia-review.googlesource.com/23201 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/shaders/SkPictureShader.cpp')
-rw-r--r--src/shaders/SkPictureShader.cpp7
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)));
}
/////////////////////////////////////////////////////////////////////////////////////////