Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Unified Diff: src/effects/SkComposeImageFilter.cpp

Issue 395603002: Simplify flattening to just write enough to call the factory (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: revised understanding : input filter count is requred, but elements may be null Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/effects/SkComposeImageFilter.cpp
diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp
index 645d63372a0ccd475c72a87e7613edb1ecaede18..837df3870c84228354f383876b4154c99ea24e3a 100644
--- a/src/effects/SkComposeImageFilter.cpp
+++ b/src/effects/SkComposeImageFilter.cpp
@@ -21,14 +21,6 @@ bool SkComposeImageFilter::onFilterImage(Proxy* proxy,
SkImageFilter* outer = getInput(0);
SkImageFilter* inner = getInput(1);
- if (!outer && !inner) {
- return false;
- }
-
- if (!outer || !inner) {
- return (outer ? outer : inner)->filterImage(proxy, src, ctx, result, offset);
- }
-
SkBitmap tmp;
return inner->filterImage(proxy, src, ctx, &tmp, offset) &&
outer->filterImage(proxy, tmp, ctx, result, offset);
@@ -40,19 +32,20 @@ bool SkComposeImageFilter::onFilterBounds(const SkIRect& src,
SkImageFilter* outer = getInput(0);
SkImageFilter* inner = getInput(1);
- if (!outer && !inner) {
- return false;
- }
+ SkIRect tmp;
+ return inner->filterBounds(src, ctm, &tmp) && outer->filterBounds(tmp, ctm, dst);
+}
- if (!outer || !inner) {
- return (outer ? outer : inner)->filterBounds(src, ctm, dst);
+SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) {
+ Common common;
+ if (!common.unflatten(buffer, 2)) {
+ return NULL;
}
-
- SkIRect tmp;
- return inner->filterBounds(src, ctm, &tmp) &&
- outer->filterBounds(tmp, ctm, dst);
+ return SkComposeImageFilter::Create(common.inputAt(0), common.inputAt(1));
}
+#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
SkComposeImageFilter::SkComposeImageFilter(SkReadBuffer& buffer)
: INHERITED(2, buffer) {
}
+#endif

Powered by Google App Engine
This is Rietveld 408576698