diff options
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); } |