aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/imagefiltersbase.cpp10
-rw-r--r--gm/imagefiltersgraph.cpp2
-rw-r--r--include/core/SkImageFilter.h6
-rw-r--r--include/effects/SkAlphaThresholdFilter.h3
-rw-r--r--include/effects/SkColorFilterImageFilter.h2
-rw-r--r--include/effects/SkComposeImageFilter.h5
-rw-r--r--include/effects/SkDisplacementMapEffect.h8
-rw-r--r--include/effects/SkLightingImageFilter.h2
-rw-r--r--include/effects/SkMagnifierImageFilter.h7
-rw-r--r--include/effects/SkMatrixImageFilter.h2
-rw-r--r--include/effects/SkMergeImageFilter.h11
-rw-r--r--include/effects/SkMorphologyImageFilter.h8
-rw-r--r--include/effects/SkTestImageFilters.h7
-rw-r--r--include/effects/SkTileImageFilter.h2
-rw-r--r--include/effects/SkXfermodeImageFilter.h7
-rw-r--r--src/core/SkImageFilter.cpp17
-rw-r--r--src/effects/SkAlphaThresholdFilter.cpp13
-rw-r--r--src/effects/SkBlurImageFilter.cpp2
-rwxr-xr-xsrc/effects/SkColorFilterImageFilter.cpp2
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp5
-rw-r--r--src/effects/SkDropShadowImageFilter.cpp4
-rw-r--r--src/effects/SkLightingImageFilter.cpp5
-rw-r--r--src/effects/SkMagnifierImageFilter.cpp6
-rw-r--r--src/effects/SkMatrixConvolutionImageFilter.cpp2
-rw-r--r--src/effects/SkMatrixImageFilter.cpp2
-rwxr-xr-xsrc/effects/SkMergeImageFilter.cpp11
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp2
-rw-r--r--src/effects/SkOffsetImageFilter.cpp3
-rw-r--r--src/effects/SkRectShaderImageFilter.cpp4
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp5
-rw-r--r--tests/ImageFilterTest.cpp4
31 files changed, 69 insertions, 100 deletions
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp
index 4779c81438..0760fcda76 100644
--- a/gm/imagefiltersbase.cpp
+++ b/gm/imagefiltersbase.cpp
@@ -24,14 +24,14 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(FailImageFilter)
protected:
- FailImageFilter() : INHERITED(0) {}
+ FailImageFilter() : INHERITED(0, NULL) {}
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE {
return false;
}
FailImageFilter(SkReadBuffer& buffer)
- : INHERITED(1, buffer) {}
+ : INHERITED(0, buffer) {}
private:
typedef SkImageFilter INHERITED;
@@ -44,13 +44,13 @@ static SkFlattenable::Registrar gFailImageFilterReg("FailImageFilter",
class IdentityImageFilter : public SkImageFilter {
public:
- static IdentityImageFilter* Create() {
- return SkNEW(IdentityImageFilter);
+ static IdentityImageFilter* Create(SkImageFilter* input = NULL) {
+ return SkNEW_ARGS(IdentityImageFilter, (input));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(IdentityImageFilter)
protected:
- IdentityImageFilter() : INHERITED(0) {}
+ IdentityImageFilter(SkImageFilter* input) : INHERITED(1, &input) {}
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE {
*result = src;
diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp
index ec6559ffa3..af3ebb7bc1 100644
--- a/gm/imagefiltersgraph.cpp
+++ b/gm/imagefiltersgraph.cpp
@@ -71,7 +71,7 @@ protected:
private:
SimpleOffsetFilter(SkScalar dx, SkScalar dy, SkImageFilter* input)
- : SkImageFilter(input), fDX(dx), fDY(dy) {}
+ : SkImageFilter(1, &input), fDX(dx), fDY(dy) {}
SkScalar fDX, fDY;
};
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index 012a7f728f..a571184aa2 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -201,12 +201,6 @@ public:
protected:
SkImageFilter(int inputCount, SkImageFilter** inputs, const CropRect* cropRect = NULL);
- // Convenience constructor for 1-input filters.
- explicit SkImageFilter(SkImageFilter* input, const CropRect* cropRect = NULL);
-
- // Convenience constructor for 2-input filters.
- SkImageFilter(SkImageFilter* input1, SkImageFilter* input2, const CropRect* cropRect = NULL);
-
virtual ~SkImageFilter();
/**
diff --git a/include/effects/SkAlphaThresholdFilter.h b/include/effects/SkAlphaThresholdFilter.h
index 23af56fc54..f409ee08c4 100644
--- a/include/effects/SkAlphaThresholdFilter.h
+++ b/include/effects/SkAlphaThresholdFilter.h
@@ -20,7 +20,8 @@ public:
* The 0,0 point of the region corresponds to the upper left corner of the
* source image.
*/
- static SkImageFilter* Create(const SkRegion& region, SkScalar innerThreshold, SkScalar outerThreshold);
+ static SkImageFilter* Create(const SkRegion& region, SkScalar innerThreshold,
+ SkScalar outerThreshold, SkImageFilter* input = NULL);
};
#endif
diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h
index 6c88361b58..b915e88357 100644
--- a/include/effects/SkColorFilterImageFilter.h
+++ b/include/effects/SkColorFilterImageFilter.h
@@ -33,7 +33,7 @@ protected:
private:
SkColorFilterImageFilter(SkColorFilter* cf,
SkImageFilter* input,
- const CropRect* cropRect = NULL);
+ const CropRect* cropRect);
SkColorFilter* fColorFilter;
typedef SkImageFilter INHERITED;
diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h
index 32304b9646..068bcab7b8 100644
--- a/include/effects/SkComposeImageFilter.h
+++ b/include/effects/SkComposeImageFilter.h
@@ -15,13 +15,14 @@ public:
virtual ~SkComposeImageFilter();
static SkComposeImageFilter* Create(SkImageFilter* outer, SkImageFilter* inner) {
- return SkNEW_ARGS(SkComposeImageFilter, (outer, inner));
+ SkImageFilter* inputs[2] = { outer, inner };
+ return SkNEW_ARGS(SkComposeImageFilter, (inputs));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
protected:
- SkComposeImageFilter(SkImageFilter* outer, SkImageFilter* inner) : INHERITED(outer, inner) {}
+ explicit SkComposeImageFilter(SkImageFilter* inputs[2]) : INHERITED(2, inputs) {}
explicit SkComposeImageFilter(SkReadBuffer& buffer);
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context&,
diff --git a/include/effects/SkDisplacementMapEffect.h b/include/effects/SkDisplacementMapEffect.h
index 4d64aaeb41..07f8ee9e85 100644
--- a/include/effects/SkDisplacementMapEffect.h
+++ b/include/effects/SkDisplacementMapEffect.h
@@ -28,8 +28,9 @@ public:
SkScalar scale, SkImageFilter* displacement,
SkImageFilter* color = NULL,
const CropRect* cropRect = NULL) {
+ SkImageFilter* inputs[2] = { displacement, color };
return SkNEW_ARGS(SkDisplacementMapEffect, (xChannelSelector, yChannelSelector, scale,
- displacement, color, cropRect));
+ inputs, cropRect));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDisplacementMapEffect)
@@ -53,9 +54,8 @@ public:
protected:
SkDisplacementMapEffect(ChannelSelectorType xChannelSelector,
ChannelSelectorType yChannelSelector,
- SkScalar scale, SkImageFilter* displacement,
- SkImageFilter* color = NULL,
- const CropRect* cropRect = NULL);
+ SkScalar scale, SkImageFilter* inputs[2],
+ const CropRect* cropRect);
explicit SkDisplacementMapEffect(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/include/effects/SkLightingImageFilter.h b/include/effects/SkLightingImageFilter.h
index 4a76a9cd7e..81e8f43f11 100644
--- a/include/effects/SkLightingImageFilter.h
+++ b/include/effects/SkLightingImageFilter.h
@@ -73,7 +73,7 @@ protected:
SkLightingImageFilter(SkLight* light,
SkScalar surfaceScale,
SkImageFilter* input,
- const CropRect* cropRect = NULL);
+ const CropRect* cropRect);
explicit SkLightingImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
const SkLight* light() const { return fLight; }
diff --git a/include/effects/SkMagnifierImageFilter.h b/include/effects/SkMagnifierImageFilter.h
index b992e282b6..3f799d6555 100644
--- a/include/effects/SkMagnifierImageFilter.h
+++ b/include/effects/SkMagnifierImageFilter.h
@@ -14,14 +14,15 @@
class SK_API SkMagnifierImageFilter : public SkImageFilter {
public:
- static SkMagnifierImageFilter* Create(const SkRect& srcRect, SkScalar inset) {
- return SkNEW_ARGS(SkMagnifierImageFilter, (srcRect, inset));
+ static SkMagnifierImageFilter* Create(const SkRect& srcRect, SkScalar inset,
+ SkImageFilter* input = NULL) {
+ return SkNEW_ARGS(SkMagnifierImageFilter, (srcRect, inset, input));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter)
protected:
- SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset);
+ SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset, SkImageFilter* input);
explicit SkMagnifierImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/include/effects/SkMatrixImageFilter.h b/include/effects/SkMatrixImageFilter.h
index 004c6ef9ed..14b0b8e153 100644
--- a/include/effects/SkMatrixImageFilter.h
+++ b/include/effects/SkMatrixImageFilter.h
@@ -40,7 +40,7 @@ public:
protected:
SkMatrixImageFilter(const SkMatrix& transform,
SkPaint::FilterLevel,
- SkImageFilter* input = NULL);
+ SkImageFilter* input);
SkMatrixImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/include/effects/SkMergeImageFilter.h b/include/effects/SkMergeImageFilter.h
index 3ac4aaa6c3..ed316d7853 100644
--- a/include/effects/SkMergeImageFilter.h
+++ b/include/effects/SkMergeImageFilter.h
@@ -19,7 +19,9 @@ public:
static SkMergeImageFilter* Create(SkImageFilter* first, SkImageFilter* second,
SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode,
const CropRect* cropRect = NULL) {
- return SkNEW_ARGS(SkMergeImageFilter, (first, second, mode, cropRect));
+ SkImageFilter* inputs[2] = { first, second };
+ SkXfermode::Mode modes[2] = { mode, mode };
+ return SkNEW_ARGS(SkMergeImageFilter, (inputs, 2, modes, cropRect));
}
static SkMergeImageFilter* Create(SkImageFilter* filters[], int count,
const SkXfermode::Mode modes[] = NULL,
@@ -30,12 +32,9 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter)
protected:
- SkMergeImageFilter(SkImageFilter* first, SkImageFilter* second,
- SkXfermode::Mode = SkXfermode::kSrcOver_Mode,
- const CropRect* cropRect = NULL);
SkMergeImageFilter(SkImageFilter* filters[], int count,
- const SkXfermode::Mode modes[] = NULL,
- const CropRect* cropRect = NULL);
+ const SkXfermode::Mode modes[],
+ const CropRect* cropRect);
explicit SkMergeImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h
index a464da3d3b..75551b6d8a 100644
--- a/include/effects/SkMorphologyImageFilter.h
+++ b/include/effects/SkMorphologyImageFilter.h
@@ -68,9 +68,7 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter)
protected:
- SkDilateImageFilter(int radiusX, int radiusY,
- SkImageFilter* input = NULL,
- const CropRect* cropRect = NULL)
+ SkDilateImageFilter(int radiusX, int radiusY, SkImageFilter* input, const CropRect* cropRect)
: INHERITED(radiusX, radiusY, input, cropRect) {}
explicit SkDilateImageFilter(SkReadBuffer& buffer) : INHERITED(buffer) {}
@@ -96,9 +94,7 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter)
protected:
- SkErodeImageFilter(int radiusX, int radiusY,
- SkImageFilter* input = NULL,
- const CropRect* cropRect = NULL)
+ SkErodeImageFilter(int radiusX, int radiusY, SkImageFilter* input, const CropRect* cropRect)
: INHERITED(radiusX, radiusY, input, cropRect) {}
explicit SkErodeImageFilter(SkReadBuffer& buffer) : INHERITED(buffer) {}
diff --git a/include/effects/SkTestImageFilters.h b/include/effects/SkTestImageFilters.h
index 4b20936c3b..2836040371 100644
--- a/include/effects/SkTestImageFilters.h
+++ b/include/effects/SkTestImageFilters.h
@@ -7,14 +7,15 @@
// Fun mode that scales down (only) and then scales back up to look pixelated
class SK_API SkDownSampleImageFilter : public SkImageFilter {
public:
- static SkDownSampleImageFilter* Create(SkScalar scale) {
- return SkNEW_ARGS(SkDownSampleImageFilter, (scale));
+ static SkDownSampleImageFilter* Create(SkScalar scale, SkImageFilter* input = NULL) {
+ return SkNEW_ARGS(SkDownSampleImageFilter, (scale, input));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter)
protected:
- SkDownSampleImageFilter(SkScalar scale) : INHERITED(0), fScale(scale) {}
+ SkDownSampleImageFilter(SkScalar scale, SkImageFilter* input)
+ : INHERITED(1, &input), fScale(scale) {}
SkDownSampleImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h
index 01d6c64641..29e3ca571f 100644
--- a/include/effects/SkTileImageFilter.h
+++ b/include/effects/SkTileImageFilter.h
@@ -33,7 +33,7 @@ public:
protected:
SkTileImageFilter(const SkRect& srcRect, const SkRect& dstRect, SkImageFilter* input)
- : INHERITED(input), fSrcRect(srcRect), fDstRect(dstRect) {}
+ : INHERITED(1, &input), fSrcRect(srcRect), fDstRect(dstRect) {}
explicit SkTileImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE;
diff --git a/include/effects/SkXfermodeImageFilter.h b/include/effects/SkXfermodeImageFilter.h
index a5404f91c5..05f96c4911 100644
--- a/include/effects/SkXfermodeImageFilter.h
+++ b/include/effects/SkXfermodeImageFilter.h
@@ -26,7 +26,8 @@ public:
static SkXfermodeImageFilter* Create(SkXfermode* mode, SkImageFilter* background,
SkImageFilter* foreground = NULL,
const CropRect* cropRect = NULL) {
- return SkNEW_ARGS(SkXfermodeImageFilter, (mode, background, foreground, cropRect));
+ SkImageFilter* inputs[2] = { background, foreground };
+ return SkNEW_ARGS(SkXfermodeImageFilter, (mode, inputs, cropRect));
}
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkXfermodeImageFilter)
@@ -43,8 +44,8 @@ public:
#endif
protected:
- SkXfermodeImageFilter(SkXfermode* mode, SkImageFilter* background,
- SkImageFilter* foreground, const CropRect* cropRect);
+ SkXfermodeImageFilter(SkXfermode* mode, SkImageFilter* inputs[2],
+ const CropRect* cropRect);
explicit SkXfermodeImageFilter(SkReadBuffer& buffer);
virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE;
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index dfe74cb74b..6240902e1b 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -32,23 +32,6 @@ SkImageFilter::SkImageFilter(int inputCount, SkImageFilter** inputs, const CropR
}
}
-SkImageFilter::SkImageFilter(SkImageFilter* input, const CropRect* cropRect)
- : fInputCount(1),
- fInputs(new SkImageFilter*[1]),
- fCropRect(cropRect ? *cropRect : CropRect(SkRect(), 0x0)) {
- fInputs[0] = input;
- SkSafeRef(fInputs[0]);
-}
-
-SkImageFilter::SkImageFilter(SkImageFilter* input1, SkImageFilter* input2, const CropRect* cropRect)
- : fInputCount(2), fInputs(new SkImageFilter*[2]),
- fCropRect(cropRect ? *cropRect : CropRect(SkRect(), 0x0)) {
- fInputs[0] = input1;
- fInputs[1] = input2;
- SkSafeRef(fInputs[0]);
- SkSafeRef(fInputs[1]);
-}
-
SkImageFilter::~SkImageFilter() {
for (int i = 0; i < fInputCount; i++) {
SkSafeUnref(fInputs[i]);
diff --git a/src/effects/SkAlphaThresholdFilter.cpp b/src/effects/SkAlphaThresholdFilter.cpp
index b375c88c11..a77891a385 100644
--- a/src/effects/SkAlphaThresholdFilter.cpp
+++ b/src/effects/SkAlphaThresholdFilter.cpp
@@ -13,7 +13,8 @@
class SK_API SkAlphaThresholdFilterImpl : public SkImageFilter {
public:
- SkAlphaThresholdFilterImpl(const SkRegion& region, SkScalar innerThreshold, SkScalar outerThreshold);
+ SkAlphaThresholdFilterImpl(const SkRegion& region, SkScalar innerThreshold,
+ SkScalar outerThreshold, SkImageFilter* input);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterImpl)
@@ -37,8 +38,9 @@ private:
SkImageFilter* SkAlphaThresholdFilter::Create(const SkRegion& region,
SkScalar innerThreshold,
- SkScalar outerThreshold) {
- return SkNEW_ARGS(SkAlphaThresholdFilterImpl, (region, innerThreshold, outerThreshold));
+ SkScalar outerThreshold,
+ SkImageFilter* input) {
+ return SkNEW_ARGS(SkAlphaThresholdFilterImpl, (region, innerThreshold, outerThreshold, input));
}
#if SK_SUPPORT_GPU
@@ -239,8 +241,9 @@ SkAlphaThresholdFilterImpl::SkAlphaThresholdFilterImpl(SkReadBuffer& buffer)
SkAlphaThresholdFilterImpl::SkAlphaThresholdFilterImpl(const SkRegion& region,
SkScalar innerThreshold,
- SkScalar outerThreshold)
- : INHERITED(0)
+ SkScalar outerThreshold,
+ SkImageFilter* input)
+ : INHERITED(1, &input)
, fRegion(region)
, fInnerThreshold(innerThreshold)
, fOuterThreshold(outerThreshold) {
diff --git a/src/effects/SkBlurImageFilter.cpp b/src/effects/SkBlurImageFilter.cpp
index 470dcac3c8..5c3ff493c2 100644
--- a/src/effects/SkBlurImageFilter.cpp
+++ b/src/effects/SkBlurImageFilter.cpp
@@ -37,7 +37,7 @@ SkBlurImageFilter::SkBlurImageFilter(SkScalar sigmaX,
SkScalar sigmaY,
SkImageFilter* input,
const CropRect* cropRect)
- : INHERITED(input, cropRect), fSigma(SkSize::Make(sigmaX, sigmaY)) {
+ : INHERITED(1, &input, cropRect), fSigma(SkSize::Make(sigmaX, sigmaY)) {
SkASSERT(sigmaX >= 0 && sigmaY >= 0);
}
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp
index f2490e3273..2c3706769f 100755
--- a/src/effects/SkColorFilterImageFilter.cpp
+++ b/src/effects/SkColorFilterImageFilter.cpp
@@ -78,7 +78,7 @@ SkColorFilterImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf,
SkColorFilterImageFilter::SkColorFilterImageFilter(SkColorFilter* cf,
SkImageFilter* input, const CropRect* cropRect)
- : INHERITED(input, cropRect), fColorFilter(cf) {
+ : INHERITED(1, &input, cropRect), fColorFilter(cf) {
SkASSERT(cf);
SkSafeRef(cf);
}
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index 44c3908779..28a4ab395a 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -161,10 +161,9 @@ bool channel_selector_type_is_valid(SkDisplacementMapEffect::ChannelSelectorType
SkDisplacementMapEffect::SkDisplacementMapEffect(ChannelSelectorType xChannelSelector,
ChannelSelectorType yChannelSelector,
SkScalar scale,
- SkImageFilter* displacement,
- SkImageFilter* color,
+ SkImageFilter* inputs[2],
const CropRect* cropRect)
- : INHERITED(displacement, color, cropRect)
+ : INHERITED(2, inputs, cropRect)
, fXChannelSelector(xChannelSelector)
, fYChannelSelector(yChannelSelector)
, fScale(scale)
diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp
index 032acec8c6..c79cf0bcd3 100644
--- a/src/effects/SkDropShadowImageFilter.cpp
+++ b/src/effects/SkDropShadowImageFilter.cpp
@@ -17,7 +17,7 @@
SkDropShadowImageFilter::SkDropShadowImageFilter(SkScalar dx, SkScalar dy, SkScalar sigma,
SkColor color, SkImageFilter* input)
- : INHERITED(input)
+ : INHERITED(1, &input)
, fDx(dx)
, fDy(dy)
, fSigmaX(sigma)
@@ -29,7 +29,7 @@ SkDropShadowImageFilter::SkDropShadowImageFilter(SkScalar dx, SkScalar dy, SkSca
SkDropShadowImageFilter::SkDropShadowImageFilter(SkScalar dx, SkScalar dy,
SkScalar sigmaX, SkScalar sigmaY, SkColor color,
SkImageFilter* input, const CropRect* cropRect)
- : INHERITED(input, cropRect)
+ : INHERITED(1, &input, cropRect)
, fDx(dx)
, fDy(dy)
, fSigmaX(sigmaX)
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 5fc3474e3d..54bfc0408a 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -827,8 +827,9 @@ void SkLight::flattenLight(SkWriteBuffer& buffer) const {
}
///////////////////////////////////////////////////////////////////////////////
-SkLightingImageFilter::SkLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkImageFilter* input, const CropRect* cropRect)
- : INHERITED(input, cropRect),
+SkLightingImageFilter::SkLightingImageFilter(SkLight* light, SkScalar surfaceScale,
+ SkImageFilter* input, const CropRect* cropRect)
+ : INHERITED(1, &input, cropRect),
fLight(light),
fSurfaceScale(SkScalarDiv(surfaceScale, SkIntToScalar(255)))
{
diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp
index 16f4066d3a..a8556d1384 100644
--- a/src/effects/SkMagnifierImageFilter.cpp
+++ b/src/effects/SkMagnifierImageFilter.cpp
@@ -245,9 +245,9 @@ SkMagnifierImageFilter::SkMagnifierImageFilter(SkReadBuffer& buffer)
(fSrcRect.fLeft >= 0) && (fSrcRect.fTop >= 0));
}
-// FIXME: implement single-input semantics
-SkMagnifierImageFilter::SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset)
- : INHERITED(0), fSrcRect(srcRect), fInset(inset) {
+SkMagnifierImageFilter::SkMagnifierImageFilter(const SkRect& srcRect, SkScalar inset,
+ SkImageFilter* input)
+ : INHERITED(1, &input), fSrcRect(srcRect), fInset(inset) {
SkASSERT(srcRect.x() >= 0 && srcRect.y() >= 0 && inset >= 0);
}
diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp
index 2740edc3ef..684281a117 100644
--- a/src/effects/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/SkMatrixConvolutionImageFilter.cpp
@@ -43,7 +43,7 @@ SkMatrixConvolutionImageFilter::SkMatrixConvolutionImageFilter(
bool convolveAlpha,
SkImageFilter* input,
const CropRect* cropRect)
- : INHERITED(input, cropRect),
+ : INHERITED(1, &input, cropRect),
fKernelSize(kernelSize),
fGain(gain),
fBias(bias),
diff --git a/src/effects/SkMatrixImageFilter.cpp b/src/effects/SkMatrixImageFilter.cpp
index 55179d3565..c7c815a761 100644
--- a/src/effects/SkMatrixImageFilter.cpp
+++ b/src/effects/SkMatrixImageFilter.cpp
@@ -18,7 +18,7 @@
SkMatrixImageFilter::SkMatrixImageFilter(const SkMatrix& transform,
SkPaint::FilterLevel filterLevel,
SkImageFilter* input)
- : INHERITED(input),
+ : INHERITED(1, &input),
fTransform(transform),
fFilterLevel(filterLevel) {
}
diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp
index adf9afe9b3..4022da3096 100755
--- a/src/effects/SkMergeImageFilter.cpp
+++ b/src/effects/SkMergeImageFilter.cpp
@@ -40,17 +40,6 @@ void SkMergeImageFilter::initModes(const SkXfermode::Mode modes[]) {
}
}
-SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* first, SkImageFilter* second,
- SkXfermode::Mode mode,
- const CropRect* cropRect) : INHERITED(first, second, cropRect) {
- if (SkXfermode::kSrcOver_Mode != mode) {
- SkXfermode::Mode modes[] = { mode, mode };
- this->initModes(modes);
- } else {
- fModes = NULL;
- }
-}
-
SkMergeImageFilter::SkMergeImageFilter(SkImageFilter* filters[], int count,
const SkXfermode::Mode modes[],
const CropRect* cropRect) : INHERITED(count, filters, cropRect) {
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index 8de8ddaf68..a18388e096 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -32,7 +32,7 @@ SkMorphologyImageFilter::SkMorphologyImageFilter(int radiusX,
int radiusY,
SkImageFilter* input,
const CropRect* cropRect)
- : INHERITED(input, cropRect), fRadius(SkISize::Make(radiusX, radiusY)) {
+ : INHERITED(1, &input, cropRect), fRadius(SkISize::Make(radiusX, radiusY)) {
}
diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp
index 7680c62cfc..57f36db113 100644
--- a/src/effects/SkOffsetImageFilter.cpp
+++ b/src/effects/SkOffsetImageFilter.cpp
@@ -97,7 +97,8 @@ void SkOffsetImageFilter::flatten(SkWriteBuffer& buffer) const {
}
SkOffsetImageFilter::SkOffsetImageFilter(SkScalar dx, SkScalar dy, SkImageFilter* input,
- const CropRect* cropRect) : INHERITED(input, cropRect) {
+ const CropRect* cropRect)
+ : INHERITED(1, &input, cropRect) {
fOffset.set(dx, dy);
}
diff --git a/src/effects/SkRectShaderImageFilter.cpp b/src/effects/SkRectShaderImageFilter.cpp
index bed017c326..6961facc10 100644
--- a/src/effects/SkRectShaderImageFilter.cpp
+++ b/src/effects/SkRectShaderImageFilter.cpp
@@ -29,14 +29,14 @@ SkRectShaderImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const Crop
}
SkRectShaderImageFilter::SkRectShaderImageFilter(SkShader* s, const CropRect* cropRect)
- : INHERITED(NULL, cropRect)
+ : INHERITED(0, NULL, cropRect)
, fShader(s) {
SkASSERT(s);
s->ref();
}
SkRectShaderImageFilter::SkRectShaderImageFilter(SkReadBuffer& buffer)
- : INHERITED(1, buffer) {
+ : INHERITED(0, buffer) {
fShader = buffer.readShader();
}
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index acb8fd381b..bcfb78576e 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -21,10 +21,9 @@
///////////////////////////////////////////////////////////////////////////////
SkXfermodeImageFilter::SkXfermodeImageFilter(SkXfermode* mode,
- SkImageFilter* background,
- SkImageFilter* foreground,
+ SkImageFilter* inputs[2],
const CropRect* cropRect)
- : INHERITED(background, foreground, cropRect), fMode(mode) {
+ : INHERITED(2, inputs, cropRect), fMode(mode) {
SkSafeRef(fMode);
}
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index d6af24453b..20899f4ee9 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -44,7 +44,7 @@ namespace {
class MatrixTestImageFilter : public SkImageFilter {
public:
MatrixTestImageFilter(skiatest::Reporter* reporter, const SkMatrix& expectedMatrix)
- : SkImageFilter(0), fReporter(reporter), fExpectedMatrix(expectedMatrix) {
+ : SkImageFilter(0, NULL), fReporter(reporter), fExpectedMatrix(expectedMatrix) {
}
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const Context& ctx,
@@ -56,7 +56,7 @@ public:
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(MatrixTestImageFilter)
protected:
- explicit MatrixTestImageFilter(SkReadBuffer& buffer) : SkImageFilter(0) {
+ explicit MatrixTestImageFilter(SkReadBuffer& buffer) : SkImageFilter(0, NULL) {
fReporter = static_cast<skiatest::Reporter*>(buffer.readFunctionPtr());
buffer.readMatrix(&fExpectedMatrix);
}