only create new instance if needed for colorspacexformer
just an experiment to address performance when imagefilters are cached.
Bug: skia:
Change-Id: Ic1033c897d0a569b46a339fb3ae7f8f961882953
Reviewed-on: https://skia-review.googlesource.com/21395
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
diff --git a/src/effects/SkImageSource.cpp b/src/effects/SkImageSource.cpp
index e051160..cd2fb51 100644
--- a/src/effects/SkImageSource.cpp
+++ b/src/effects/SkImageSource.cpp
@@ -135,7 +135,11 @@
sk_sp<SkImageFilter> SkImageSource::onMakeColorSpace(SkColorSpaceXformer* xformer) const {
SkASSERT(0 == this->countInputs());
- return SkImageSource::Make(xformer->apply(fImage.get()), fSrcRect, fDstRect, fFilterQuality);
+ auto image = xformer->apply(fImage.get());
+ if (image != fImage) {
+ return SkImageSource::Make(image, fSrcRect, fDstRect, fFilterQuality);
+ }
+ return this->refMe();
}
SkRect SkImageSource::computeFastBounds(const SkRect& src) const {