aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2015-10-15 12:15:13 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-10-15 12:15:13 -0700
commitb9519f86bbce946e505980a4fa950fdc4bcf74ab (patch)
tree68d1ecb2248d0ff2b3a8e31c32731a208a3ce23b /src/effects
parent5f5527fb46664297fbeb575033886a757eb44147 (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.cpp3
-rw-r--r--src/effects/SkColorFilterImageFilter.cpp2
-rw-r--r--src/effects/SkComposeImageFilter.cpp7
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp6
-rw-r--r--src/effects/SkDropShadowImageFilter.cpp2
-rw-r--r--src/effects/SkLightingImageFilter.cpp6
-rw-r--r--src/effects/SkMatrixConvolutionImageFilter.cpp2
-rwxr-xr-xsrc/effects/SkMergeImageFilter.cpp15
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp3
-rw-r--r--src/effects/SkOffsetImageFilter.cpp5
-rw-r--r--src/effects/SkTileImageFilter.cpp3
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp8
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();
}