aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/effects/SkTileImageFilter.h
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2014-08-26 12:27:12 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-08-26 12:27:12 -0700
commit5e5f948b6b363dbfc8c076d8ff0c6b8e9ea99958 (patch)
tree1f3b8fdb8dc30a897119f3ce25e347cdaad94391 /include/effects/SkTileImageFilter.h
parent21aed57023bad4b04076c59e37097c7563efc028 (diff)
Reimplement deserialization of SkImageFilter's uniqueID.
9fa60d ("Simplify flattening to just write enough ... ") simplified just a tad too much. In particular, it disabled deserialization of SkImageFilter's uniqueID, which in turn caused the failure of SkImageFilter's cache, which caused a large regression in Chrome's SVG filter performance. The medium-term fix is to switch to the new SkRecordDraw SkPicture backend, which will make the unique IDs unnecessary. This change is an "in case of emergecy" CL, in the event that there are problems switching on the new backend in Chrome. For that reason, it's minimalist: only the filters used by Chrome are modified, and whitespace changes are kept to a minimum. In this way, it should be easy to revert once the new backend goes in. R=reed@google.com Author: senorblanco@chromium.org Review URL: https://codereview.chromium.org/503833002
Diffstat (limited to 'include/effects/SkTileImageFilter.h')
-rw-r--r--include/effects/SkTileImageFilter.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h
index 084f726e88..440337a642 100644
--- a/include/effects/SkTileImageFilter.h
+++ b/include/effects/SkTileImageFilter.h
@@ -20,7 +20,7 @@ public:
@param input Input from which the subregion defined by srcRect will be tiled
*/
static SkTileImageFilter* Create(const SkRect& srcRect, const SkRect& dstRect,
- SkImageFilter* input);
+ SkImageFilter* input, uint32_t uniqueID = 0);
virtual bool onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx,
SkBitmap* dst, SkIPoint* offset) const SK_OVERRIDE;
@@ -30,8 +30,8 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter)
protected:
- SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, SkImageFilter* input)
- : INHERITED(1, &input), fSrcRect(srcRect), fDstRect(dstRect) {}
+ SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, SkImageFilter* input, uint32_t uniqueID)
+ : INHERITED(1, &input, NULL, uniqueID), fSrcRect(srcRect), fDstRect(dstRect) {}
#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
explicit SkTileImageFilter(SkReadBuffer& buffer);
#endif