aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkColorSpaceXformer.h
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2017-07-07 12:49:29 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-07-08 21:47:36 +0000
commit8d1fc16ba6161afc1174e29e30bae4fc9939264f (patch)
tree7ab2f7de4ac4a4ed17d4705f7deae7ab265ade36 /src/core/SkColorSpaceXformer.h
parent8fe24272fa6d2fa9eb2458221ed9852d6ec16f56 (diff)
More SkColorSpaceXformer caching
* apply(SkColorFilter*) * apply(SkImage*) Change-Id: I9b55632edd73dbbc5edb8b5ca9bb5bead1131260 Reviewed-on: https://skia-review.googlesource.com/21736 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/core/SkColorSpaceXformer.h')
-rw-r--r--src/core/SkColorSpaceXformer.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/core/SkColorSpaceXformer.h b/src/core/SkColorSpaceXformer.h
index fce8d03e43..15701c2317 100644
--- a/src/core/SkColorSpaceXformer.h
+++ b/src/core/SkColorSpaceXformer.h
@@ -44,7 +44,15 @@ private:
sk_sp<SkColorSpace> fDst;
std::unique_ptr<SkColorSpaceXform> fFromSRGB;
- SkTHashMap<uint32_t, sk_sp<SkImageFilter>> fFilterCache;
+ template <typename T>
+ using Cache = SkTHashMap<sk_sp<T>, sk_sp<T>>;
+
+ template <typename T>
+ sk_sp<T> cachedApply(const T*, Cache<T>*, sk_sp<T> (*)(const T*, SkColorSpaceXformer*));
+
+ Cache<SkImage > fImageCache;
+ Cache<SkColorFilter> fColorFilterCache;
+ Cache<SkImageFilter> fImageFilterCache;
};
#endif