diff options
author | senorblanco <senorblanco@chromium.org> | 2015-10-15 12:15:13 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-10-15 12:15:13 -0700 |
commit | b9519f86bbce946e505980a4fa950fdc4bcf74ab (patch) | |
tree | 68d1ecb2248d0ff2b3a8e31c32731a208a3ce23b /src/effects | |
parent | 5f5527fb46664297fbeb575033886a757eb44147 (diff) |
Image Filters: refactor all CPU input processing into a filterInput helper function.
No change in behaviour; this is a straight refactoring.
BUG=skia:3194
Review URL: https://codereview.chromium.org/1404743005
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/SkBlurImageFilter.cpp | 3 | ||||
-rw-r--r-- | src/effects/SkColorFilterImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkComposeImageFilter.cpp | 7 | ||||
-rw-r--r-- | src/effects/SkDisplacementMapEffect.cpp | 6 | ||||
-rw-r--r-- | src/effects/SkDropShadowImageFilter.cpp | 2 | ||||
-rw-r--r-- | src/effects/SkLightingImageFilter.cpp | 6 | ||||
-rw-r--r-- | src/effects/SkMatrixConvolutionImageFilter.cpp | 2 | ||||
-rwxr-xr-x | src/effects/SkMergeImageFilter.cpp | 15 | ||||
-rw-r--r-- | src/effects/SkMorphologyImageFilter.cpp | 3 | ||||
-rw-r--r-- | src/effects/SkOffsetImageFilter.cpp | 5 | ||||
-rw-r--r-- | src/effects/SkTileImageFilter.cpp | 3 | ||||
-rw-r--r-- | src/effects/SkXfermodeImageFilter.cpp | 8 |
12 files changed, 20 insertions, 42 deletions
diff --git a/src/effects/SkBlurImageFilter.cpp b/src/effects/SkBlurImageFilter.cpp index a867971a0c..ddc034d73c 100644 --- a/src/effects/SkBlurImageFilter.cpp +++ b/src/effects/SkBlurImageFilter.cpp @@ -72,8 +72,7 @@ bool SkBlurImageFilter::onFilterImage(Proxy* proxy, SkBitmap* dst, SkIPoint* offset) const { SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (this->getInput(0) && - !this->getInput(0)->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 46bad10ce3..acdb6ab7a7 100644 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -61,7 +61,7 @@ bool SkColorFilterImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& sourc SkIPoint* offset) const { SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (getInput(0) && !getInput(0)->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp index 2b1606a8a4..6361cdcc6c 100644 --- a/src/effects/SkComposeImageFilter.cpp +++ b/src/effects/SkComposeImageFilter.cpp @@ -27,19 +27,16 @@ bool SkComposeImageFilter::onFilterImage(Proxy* proxy, const Context& ctx, SkBitmap* result, SkIPoint* offset) const { - SkImageFilter* outer = getInput(0); - SkImageFilter* inner = getInput(1); - SkBitmap tmp; SkIPoint innerOffset = SkIPoint::Make(0, 0); SkIPoint outerOffset = SkIPoint::Make(0, 0); - if (!inner->filterImage(proxy, src, ctx, &tmp, &innerOffset)) + if (!this->filterInput(1, proxy, src, ctx, &tmp, &innerOffset)) return false; SkMatrix outerMatrix(ctx.ctm()); outerMatrix.postTranslate(SkIntToScalar(-innerOffset.x()), SkIntToScalar(-innerOffset.y())); Context outerContext(outerMatrix, ctx.clipBounds(), ctx.cache()); - if (!outer->filterImage(proxy, tmp, outerContext, result, &outerOffset)) { + if (!this->filterInput(0, proxy, tmp, outerContext, result, &outerOffset)) { return false; } diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp index ca11c38cac..5de945ff07 100644 --- a/src/effects/SkDisplacementMapEffect.cpp +++ b/src/effects/SkDisplacementMapEffect.cpp @@ -212,11 +212,9 @@ bool SkDisplacementMapEffect::onFilterImage(Proxy* proxy, SkBitmap* dst, SkIPoint* offset) const { SkBitmap displ = src, color = src; - const SkImageFilter* colorInput = this->getColorInput(); - const SkImageFilter* displInput = this->getDisplacementInput(); SkIPoint colorOffset = SkIPoint::Make(0, 0), displOffset = SkIPoint::Make(0, 0); - if ((colorInput && !colorInput->filterImage(proxy, src, ctx, &color, &colorOffset)) || - (displInput && !displInput->filterImage(proxy, src, ctx, &displ, &displOffset))) { + if (!this->filterInput(1, proxy, src, ctx, &color, &colorOffset) || + !this->filterInput(0, proxy, src, ctx, &displ, &displOffset)) { return false; } if ((displ.colorType() != kN32_SkColorType) || diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp index c856bd17e8..7519d5313d 100644 --- a/src/effects/SkDropShadowImageFilter.cpp +++ b/src/effects/SkDropShadowImageFilter.cpp @@ -59,7 +59,7 @@ bool SkDropShadowImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source { SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (getInput(0) && !getInput(0)->filterImage(proxy, source, ctx, &src, &srcOffset)) + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) return false; SkIRect bounds; diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index 4265f6e1e5..270c10f86b 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -1168,10 +1168,9 @@ bool SkDiffuseLightingImageFilter::onFilterImage(Proxy* proxy, const Context& ctx, SkBitmap* dst, SkIPoint* offset) const { - SkImageFilter* input = getInput(0); SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (input && !input->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } @@ -1309,10 +1308,9 @@ bool SkSpecularLightingImageFilter::onFilterImage(Proxy* proxy, const Context& ctx, SkBitmap* dst, SkIPoint* offset) const { - SkImageFilter* input = getInput(0); SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (input && !input->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp index b2780578e6..67813fd259 100644 --- a/src/effects/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/SkMatrixConvolutionImageFilter.cpp @@ -268,7 +268,7 @@ bool SkMatrixConvolutionImageFilter::onFilterImage(Proxy* proxy, SkIPoint* offset) const { SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (getInput(0) && !getInput(0)->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp index 6e06b25945..e99991898c 100755 --- a/src/effects/SkMergeImageFilter.cpp +++ b/src/effects/SkMergeImageFilter.cpp @@ -81,24 +81,17 @@ bool SkMergeImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src, int inputCount = countInputs(); for (int i = 0; i < inputCount; ++i) { SkBitmap tmp; - const SkBitmap* srcPtr; + SkBitmap input = src; SkIPoint pos = SkIPoint::Make(0, 0); - SkImageFilter* filter = getInput(i); - if (filter) { - if (!filter->filterImage(proxy, src, ctx, &tmp, &pos)) { - continue; - } - srcPtr = &tmp; - } else { - srcPtr = &src; + if (!this->filterInput(i, proxy, src, ctx, &input, &pos)) { + continue; } - if (fModes) { paint.setXfermodeMode((SkXfermode::Mode)fModes[i]); } else { paint.setXfermode(nullptr); } - canvas.drawSprite(*srcPtr, pos.x() - x0, pos.y() - y0, &paint); + canvas.drawSprite(input, pos.x() - x0, pos.y() - y0, &paint); didProduceResult = true; } diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp index 4f60666762..f3ae6accd9 100644 --- a/src/effects/SkMorphologyImageFilter.cpp +++ b/src/effects/SkMorphologyImageFilter.cpp @@ -58,8 +58,7 @@ bool SkMorphologyImageFilter::filterImageGeneric(SkMorphologyImageFilter::Proc p SkIPoint* offset) const { SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (this->getInput(0) && - !this->getInput(0)->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp index 551902b7da..9da026b279 100644 --- a/src/effects/SkOffsetImageFilter.cpp +++ b/src/effects/SkOffsetImageFilter.cpp @@ -18,7 +18,6 @@ bool SkOffsetImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source, const Context& ctx, SkBitmap* result, SkIPoint* offset) const { - SkImageFilter* input = getInput(0); SkBitmap src = source; SkIPoint srcOffset = SkIPoint::Make(0, 0); #ifdef SK_DISABLE_OFFSETIMAGEFILTER_OPTIMIZATION @@ -26,7 +25,7 @@ bool SkOffsetImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source, #else if (!cropRectIsSet()) { #endif - if (input && !input->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } @@ -37,7 +36,7 @@ bool SkOffsetImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source, offset->fY = srcOffset.fY + SkScalarRoundToInt(vec.fY); *result = src; } else { - if (input && !input->filterImage(proxy, source, ctx, &src, &srcOffset)) { + if (!this->filterInput(0, proxy, source, ctx, &src, &srcOffset)) { return false; } diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp index c3eb2f301a..52ea6a756f 100644 --- a/src/effects/SkTileImageFilter.cpp +++ b/src/effects/SkTileImageFilter.cpp @@ -28,9 +28,8 @@ bool SkTileImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src, const Context& ctx, SkBitmap* dst, SkIPoint* offset) const { SkBitmap source = src; - SkImageFilter* input = getInput(0); SkIPoint srcOffset = SkIPoint::Make(0, 0); - if (input && !input->filterImage(proxy, src, ctx, &source, &srcOffset)) { + if (!this->filterInput(0, proxy, src, ctx, &source, &srcOffset)) { return false; } diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp index e443a008aa..9692a2dd48 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -50,16 +50,12 @@ bool SkXfermodeImageFilter::onFilterImage(Proxy* proxy, SkBitmap* dst, SkIPoint* offset) const { SkBitmap background = src, foreground = src; - SkImageFilter* backgroundInput = this->getInput(0); - SkImageFilter* foregroundInput = this->getInput(1); SkIPoint backgroundOffset = SkIPoint::Make(0, 0); - if (backgroundInput && - !backgroundInput->filterImage(proxy, src, ctx, &background, &backgroundOffset)) { + if (!this->filterInput(0, proxy, src, ctx, &background, &backgroundOffset)) { background.reset(); } SkIPoint foregroundOffset = SkIPoint::Make(0, 0); - if (foregroundInput && - !foregroundInput->filterImage(proxy, src, ctx, &foreground, &foregroundOffset)) { + if (!this->filterInput(1, proxy, src, ctx, &foreground, &foregroundOffset)) { foreground.reset(); } |