Avoid unneeded SkPictureImageFilter color space transforms
Change-Id: Ib5391b4bc315cf709ba6276a79357ce43ee9427e
Reviewed-on: https://skia-review.googlesource.com/22062
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp
index d6d433d..80361aa 100644
--- a/src/effects/SkPictureImageFilter.cpp
+++ b/src/effects/SkPictureImageFilter.cpp
@@ -136,8 +136,13 @@
}
sk_sp<SkImageFilter> SkPictureImageFilter::onMakeColorSpace(SkColorSpaceXformer* xformer) const {
+ sk_sp<SkColorSpace> dstCS = xformer->dst();
+ if (dstCS == fColorSpace) {
+ return this->refMe();
+ }
+
return sk_sp<SkImageFilter>(new SkPictureImageFilter(fPicture, fCropRect, fPictureResolution,
- fFilterQuality, xformer->dst()));
+ fFilterQuality, std::move(dstCS)));
}
void SkPictureImageFilter::drawPictureAtDeviceResolution(SkCanvas* canvas,