diff options
author | robertphillips <robertphillips@google.com> | 2014-12-19 13:49:15 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-12-19 13:49:15 -0800 |
commit | f3f5bad7ded35265c0b5d042cc4174386b197a33 (patch) | |
tree | b8197317dd26d7e5b65f1559446c8d39e8be1457 | |
parent | 290c09b8bbd8d221d363150e2ce87158f4668df0 (diff) |
Add toString methods to SkImageFilter-derived classes
This isn't definitive but at least makes something show up in the debugger.
Review URL: https://codereview.chromium.org/789163006
44 files changed, 351 insertions, 3 deletions
diff --git a/gm/imagefiltersbase.cpp b/gm/imagefiltersbase.cpp index 749334a61e..be8d402528 100644 --- a/gm/imagefiltersbase.cpp +++ b/gm/imagefiltersbase.cpp @@ -30,6 +30,7 @@ public: return SkNEW(FailImageFilter); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(FailImageFilter) protected: @@ -51,6 +52,13 @@ SkFlattenable* FailImageFilter::CreateProc(SkReadBuffer& buffer) { return FailImageFilter::Create(); } +#ifndef SK_IGNORE_TO_STRING +void FailImageFilter::toString(SkString* str) const { + str->appendf("FailImageFilter: ("); + str->append(")"); +} +#endif + class IdentityImageFilter : public SkImageFilter { public: class Registrar { @@ -65,6 +73,7 @@ public: return SkNEW_ARGS(IdentityImageFilter, (input)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(IdentityImageFilter) protected: IdentityImageFilter(SkImageFilter* input) : INHERITED(1, &input) {} @@ -87,6 +96,13 @@ SkFlattenable* IdentityImageFilter::CreateProc(SkReadBuffer& buffer) { return IdentityImageFilter::Create(common.getInput(0)); } +#ifndef SK_IGNORE_TO_STRING +void IdentityImageFilter::toString(SkString* str) const { + str->appendf("IdentityImageFilter: ("); + str->append(")"); +} +#endif + /////////////////////////////////////////////////////////////////////////////// static void draw_paint(SkCanvas* canvas, const SkRect& r, SkImageFilter* imf) { diff --git a/gm/imagefiltersgraph.cpp b/gm/imagefiltersgraph.cpp index 8469a43b59..ae6f4a6d1f 100644 --- a/gm/imagefiltersgraph.cpp +++ b/gm/imagefiltersgraph.cpp @@ -62,6 +62,7 @@ public: return true; } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SimpleOffsetFilter); protected: @@ -89,6 +90,13 @@ SkFlattenable* SimpleOffsetFilter::CreateProc(SkReadBuffer& buffer) { return Create(dx, dy, common.getInput(0)); } +#ifndef SK_IGNORE_TO_STRING +void SimpleOffsetFilter::toString(SkString* str) const { + str->appendf("SimpleOffsetFilter: ("); + str->append(")"); +} +#endif + class ImageFiltersGraphGM : public skiagm::GM { public: ImageFiltersGraphGM() {} diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h index 23456d31f9..42e2d7c33f 100644 --- a/include/core/SkImageFilter.h +++ b/include/core/SkImageFilter.h @@ -188,6 +188,7 @@ public: SkBitmap* result, SkIPoint* offset) const; #endif + SK_TO_STRING_PUREVIRT() SK_DEFINE_FLATTENABLE_TYPE(SkImageFilter) protected: diff --git a/include/effects/SkBitmapSource.h b/include/effects/SkBitmapSource.h index 8b678b2eb8..cf57f8012e 100644 --- a/include/effects/SkBitmapSource.h +++ b/include/effects/SkBitmapSource.h @@ -22,6 +22,7 @@ public: } virtual void computeFastBounds(const SkRect& src, SkRect* dst) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapSource) protected: diff --git a/include/effects/SkBlurImageFilter.h b/include/effects/SkBlurImageFilter.h index 9064579bea..f2a3075593 100644 --- a/include/effects/SkBlurImageFilter.h +++ b/include/effects/SkBlurImageFilter.h @@ -22,6 +22,7 @@ public: virtual void computeFastBounds(const SkRect&, SkRect*) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBlurImageFilter) protected: diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h index ff163c7cd4..facbfda106 100644 --- a/include/effects/SkColorFilterImageFilter.h +++ b/include/effects/SkColorFilterImageFilter.h @@ -20,6 +20,7 @@ public: uint32_t uniqueID = 0); virtual ~SkColorFilterImageFilter(); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter) protected: diff --git a/include/effects/SkComposeImageFilter.h b/include/effects/SkComposeImageFilter.h index 0478909cd1..389ab824ac 100644 --- a/include/effects/SkComposeImageFilter.h +++ b/include/effects/SkComposeImageFilter.h @@ -25,6 +25,7 @@ public: return SkNEW_ARGS(SkComposeImageFilter, (inputs)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter) protected: diff --git a/include/effects/SkDisplacementMapEffect.h b/include/effects/SkDisplacementMapEffect.h index a5296fd6a7..dd11582bdb 100644 --- a/include/effects/SkDisplacementMapEffect.h +++ b/include/effects/SkDisplacementMapEffect.h @@ -48,6 +48,8 @@ public: SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE; #endif + SK_TO_STRING_OVERRIDE() + protected: SkDisplacementMapEffect(ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, diff --git a/include/effects/SkDropShadowImageFilter.h b/include/effects/SkDropShadowImageFilter.h index a931ad00ff..e4c192bc13 100644 --- a/include/effects/SkDropShadowImageFilter.h +++ b/include/effects/SkDropShadowImageFilter.h @@ -13,9 +13,13 @@ class SK_API SkDropShadowImageFilter : public SkImageFilter { public: enum ShadowMode { kDrawShadowAndForeground_ShadowMode, - kDrawShadowOnly_ShadowMode + kDrawShadowOnly_ShadowMode, + + kLast_ShadowMode = kDrawShadowOnly_ShadowMode }; + static const int kShadowModeCount = kLast_ShadowMode+1; + /** @deprecated use another Create function below instead */ static SkDropShadowImageFilter* Create(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor color, @@ -45,6 +49,7 @@ public: } virtual void computeFastBounds(const SkRect&, SkRect*) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDropShadowImageFilter) protected: diff --git a/include/effects/SkMagnifierImageFilter.h b/include/effects/SkMagnifierImageFilter.h index 68c3fdfee4..9e69dddc39 100644 --- a/include/effects/SkMagnifierImageFilter.h +++ b/include/effects/SkMagnifierImageFilter.h @@ -16,6 +16,7 @@ class SK_API SkMagnifierImageFilter : public SkImageFilter { public: static SkImageFilter* Create(const SkRect& src, SkScalar inset, SkImageFilter* input = NULL); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMagnifierImageFilter) protected: diff --git a/include/effects/SkMatrixConvolutionImageFilter.h b/include/effects/SkMatrixConvolutionImageFilter.h index b97dabe269..e09ac944cb 100644 --- a/include/effects/SkMatrixConvolutionImageFilter.h +++ b/include/effects/SkMatrixConvolutionImageFilter.h @@ -63,6 +63,7 @@ public: const CropRect* cropRect = NULL, uint32_t uniqueID = 0); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMatrixConvolutionImageFilter) protected: diff --git a/include/effects/SkMatrixImageFilter.h b/include/effects/SkMatrixImageFilter.h index 0063e41630..0f7ed0bb5f 100644 --- a/include/effects/SkMatrixImageFilter.h +++ b/include/effects/SkMatrixImageFilter.h @@ -36,6 +36,7 @@ public: virtual void computeFastBounds(const SkRect&, SkRect*) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMatrixImageFilter) protected: diff --git a/include/effects/SkMergeImageFilter.h b/include/effects/SkMergeImageFilter.h index 59183e3fc1..ba580f1c5b 100644 --- a/include/effects/SkMergeImageFilter.h +++ b/include/effects/SkMergeImageFilter.h @@ -31,6 +31,7 @@ public: return SkNEW_ARGS(SkMergeImageFilter, (filters, count, modes, cropRect, uniqueID)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter) protected: diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h index ff7ed89d43..aad7cb5776 100644 --- a/include/effects/SkMorphologyImageFilter.h +++ b/include/effects/SkMorphologyImageFilter.h @@ -68,6 +68,7 @@ public: SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE; #endif + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter) protected: @@ -96,6 +97,7 @@ public: SkBitmap* result, SkIPoint* offset) const SK_OVERRIDE; #endif + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter) protected: diff --git a/include/effects/SkOffsetImageFilter.h b/include/effects/SkOffsetImageFilter.h index 6a60e62bda..de5a631162 100644 --- a/include/effects/SkOffsetImageFilter.h +++ b/include/effects/SkOffsetImageFilter.h @@ -24,6 +24,7 @@ public: return SkNEW_ARGS(SkOffsetImageFilter, (dx, dy, input, cropRect, uniqueID)); } virtual void computeFastBounds(const SkRect& src, SkRect* dst) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkOffsetImageFilter) protected: diff --git a/include/effects/SkPictureImageFilter.h b/include/effects/SkPictureImageFilter.h index 9db6f2fc6a..a6b82258e5 100644 --- a/include/effects/SkPictureImageFilter.h +++ b/include/effects/SkPictureImageFilter.h @@ -46,6 +46,7 @@ public: kLocalSpace_PictureResolution, filterLevel)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPictureImageFilter) protected: diff --git a/include/effects/SkRectShaderImageFilter.h b/include/effects/SkRectShaderImageFilter.h index dc35c947ba..dbc8a081cf 100644 --- a/include/effects/SkRectShaderImageFilter.h +++ b/include/effects/SkRectShaderImageFilter.h @@ -31,6 +31,7 @@ public: static SkRectShaderImageFilter* Create(SkShader* s, const CropRect* rect = NULL, uint32_t uniqueID = 0); virtual ~SkRectShaderImageFilter(); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShaderImageFilter) protected: diff --git a/include/effects/SkTestImageFilters.h b/include/effects/SkTestImageFilters.h index 6acd1d293c..a460b3238f 100644 --- a/include/effects/SkTestImageFilters.h +++ b/include/effects/SkTestImageFilters.h @@ -18,6 +18,7 @@ public: return SkNEW_ARGS(SkDownSampleImageFilter, (scale, input)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter) protected: diff --git a/include/effects/SkTileImageFilter.h b/include/effects/SkTileImageFilter.h index 49d69a0ebf..3e1411ce83 100644 --- a/include/effects/SkTileImageFilter.h +++ b/include/effects/SkTileImageFilter.h @@ -27,6 +27,7 @@ public: virtual bool onFilterBounds(const SkIRect& src, const SkMatrix&, SkIRect* dst) const SK_OVERRIDE; + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTileImageFilter) protected: diff --git a/include/effects/SkXfermodeImageFilter.h b/include/effects/SkXfermodeImageFilter.h index 96d258fd08..1b2a7636fa 100644 --- a/include/effects/SkXfermodeImageFilter.h +++ b/include/effects/SkXfermodeImageFilter.h @@ -31,6 +31,7 @@ public: return SkNEW_ARGS(SkXfermodeImageFilter, (mode, inputs, cropRect, uniqueID)); } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkXfermodeImageFilter) virtual bool onFilterImage(Proxy* proxy, diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index 2aadce1d0a..f1d5ab6468 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -2160,6 +2160,7 @@ void SkPaint::toString(SkString* str) const { SkImageFilter* imageFilter = this->getImageFilter(); if (imageFilter) { str->append("<dt>ImageFilter:</dt><dd>"); + imageFilter->toString(str); str->append("</dd>"); } diff --git a/src/effects/SkAlphaThresholdFilter.cpp b/src/effects/SkAlphaThresholdFilter.cpp index 890cb71b51..791d1fee1c 100644 --- a/src/effects/SkAlphaThresholdFilter.cpp +++ b/src/effects/SkAlphaThresholdFilter.cpp @@ -16,6 +16,7 @@ public: SkAlphaThresholdFilterImpl(const SkRegion& region, SkScalar innerThreshold, SkScalar outerThreshold, SkImageFilter* input); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAlphaThresholdFilterImpl) protected: @@ -374,3 +375,12 @@ bool SkAlphaThresholdFilterImpl::onFilterImage(Proxy*, const SkBitmap& src, return true; } + +#ifndef SK_IGNORE_TO_STRING +void SkAlphaThresholdFilterImpl::toString(SkString* str) const { + str->appendf("SkAlphaThresholdImageFilter: ("); + str->appendf("inner: %f outer: %f", fInnerThreshold, fOuterThreshold); + str->append(")"); +} +#endif + diff --git a/src/effects/SkBitmapSource.cpp b/src/effects/SkBitmapSource.cpp index ff76ab4bba..fc86f194b0 100644 --- a/src/effects/SkBitmapSource.cpp +++ b/src/effects/SkBitmapSource.cpp @@ -83,3 +83,15 @@ bool SkBitmapSource::onFilterImage(Proxy* proxy, const SkBitmap&, const Context& void SkBitmapSource::computeFastBounds(const SkRect&, SkRect* dst) const { *dst = fDstRect; } + +#ifndef SK_IGNORE_TO_STRING +void SkBitmapSource::toString(SkString* str) const { + str->appendf("SkBitmapSource: ("); + str->appendf("src: (%f,%f,%f,%f) dst: (%f,%f,%f,%f) ", + fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBottom, + fDstRect.fLeft, fDstRect.fTop, fDstRect.fRight, fDstRect.fBottom); + str->appendf("bitmap: (%d,%d)", + fBitmap.width(), fBitmap.height()); + str->append(")"); +} +#endif diff --git a/src/effects/SkBlurImageFilter.cpp b/src/effects/SkBlurImageFilter.cpp index e5bb8c1e74..e9d24822c6 100644 --- a/src/effects/SkBlurImageFilter.cpp +++ b/src/effects/SkBlurImageFilter.cpp @@ -287,3 +287,11 @@ bool SkBlurImageFilter::filterImageGPU(Proxy* proxy, const SkBitmap& src, const return false; #endif } + +#ifndef SK_IGNORE_TO_STRING +void SkBlurImageFilter::toString(SkString* str) const { + str->appendf("SkBlurImageFilter: ("); + str->appendf("sigma: (%f, %f)", fSigma.fWidth, fSigma.fHeight); + str->append(")"); +} +#endif diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 10976d77f0..571d69ce77 100755 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -141,3 +141,14 @@ bool SkColorFilterImageFilter::asColorFilter(SkColorFilter** filter) const { } return false; } + +#ifndef SK_IGNORE_TO_STRING +void SkColorFilterImageFilter::toString(SkString* str) const { + str->appendf("SkColorFilterImageFilter: ("); + + str->appendf("color filter: "); + fColorFilter->toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/SkComposeImageFilter.cpp b/src/effects/SkComposeImageFilter.cpp index 9bec500976..4a17e152de 100644 --- a/src/effects/SkComposeImageFilter.cpp +++ b/src/effects/SkComposeImageFilter.cpp @@ -40,3 +40,20 @@ SkFlattenable* SkComposeImageFilter::CreateProc(SkReadBuffer& buffer) { SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 2); return SkComposeImageFilter::Create(common.getInput(0), common.getInput(1)); } + +#ifndef SK_IGNORE_TO_STRING +void SkComposeImageFilter::toString(SkString* str) const { + SkImageFilter* outer = getInput(0); + SkImageFilter* inner = getInput(1); + + str->appendf("SkComposeImageFilter: ("); + + str->appendf("outer: "); + outer->toString(str); + + str->appendf("inner: "); + inner->toString(str); + + str->appendf(")"); +} +#endif diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp index b1f6a97e71..2c7f5ee8ce 100644 --- a/src/effects/SkDisplacementMapEffect.cpp +++ b/src/effects/SkDisplacementMapEffect.cpp @@ -281,6 +281,22 @@ bool SkDisplacementMapEffect::onFilterBounds(const SkIRect& src, const SkMatrix& return true; } +#ifndef SK_IGNORE_TO_STRING +void SkDisplacementMapEffect::toString(SkString* str) const { + str->appendf("SkDisplacementMapEffect: ("); + str->appendf("scale: %f ", fScale); + str->appendf("displacement: ("); + if (this->getDisplacementInput()) { + this->getDisplacementInput()->toString(str); + } + str->appendf(") color: ("); + if (this->getColorInput()) { + this->getColorInput()->toString(str); + } + str->appendf("))"); +} +#endif + /////////////////////////////////////////////////////////////////////////////// #if SK_SUPPORT_GPU @@ -620,3 +636,4 @@ void GrGLDisplacementMapEffect::GenKey(const GrProcessor& proc, b->add32(xKey | yKey); } #endif + diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp index 5bbb958e9c..22bee9dade 100644 --- a/src/effects/SkDropShadowImageFilter.cpp +++ b/src/effects/SkDropShadowImageFilter.cpp @@ -136,3 +136,27 @@ bool SkDropShadowImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& *dst = bounds; return true; } + +#ifndef SK_IGNORE_TO_STRING +void SkDropShadowImageFilter::toString(SkString* str) const { + str->appendf("SkDropShadowImageFilter: ("); + + str->appendf("dX: %f ", fDx); + str->appendf("dY: %f ", fDy); + str->appendf("sigmaX: %f ", fSigmaX); + str->appendf("sigmaY: %f ", fSigmaY); + + str->append("Color: "); + str->appendHex(fColor); + + static const char* gModeStrings[] = { + "kDrawShadowAndForeground", "kDrawShadowOnly" + }; + + SK_COMPILE_ASSERT(kShadowModeCount == SK_ARRAY_COUNT(gModeStrings), enum_mismatch); + + str->appendf(" mode: %s", gModeStrings[fShadowMode]); + + str->append(")"); +} +#endif diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp index 8acd7fd97d..b1271d8493 100644 --- a/src/effects/SkLightingImageFilter.cpp +++ b/src/effects/SkLightingImageFilter.cpp @@ -282,6 +282,7 @@ public: static SkImageFilter* Create(SkLight* light, SkScalar surfaceScale, SkScalar kd, SkImageFilter*, const CropRect*, uint32_t uniqueID = 0); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiffuseLightingImageFilter) SkScalar kd() const { return fKD; } @@ -309,6 +310,7 @@ public: SkScalar ks, SkScalar shininess, SkImageFilter*, const CropRect*, uint32_t uniqueID = 0); + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSpecularLightingImageFilter) SkScalar ks() const { return fKS; } @@ -1035,6 +1037,14 @@ bool SkDiffuseLightingImageFilter::onFilterImage(Proxy* proxy, return true; } +#ifndef SK_IGNORE_TO_STRING +void SkDiffuseLightingImageFilter::toString(SkString* str) const { + str->appendf("SkDiffuseLightingImageFilter: ("); + str->appendf("kD: %f\n", fKD); + str->append(")"); +} +#endif + #if SK_SUPPORT_GPU bool SkDiffuseLightingImageFilter::asFragmentProcessor(GrFragmentProcessor** fp, GrTexture* texture, @@ -1142,6 +1152,14 @@ bool SkSpecularLightingImageFilter::onFilterImage(Proxy* proxy, return true; } +#ifndef SK_IGNORE_TO_STRING +void SkSpecularLightingImageFilter::toString(SkString* str) const { + str->appendf("SkSpecularLightingImageFilter: ("); + str->appendf("kS: %f shininess: %f", fKS, fShininess); + str->append(")"); +} +#endif + #if SK_SUPPORT_GPU bool SkSpecularLightingImageFilter::asFragmentProcessor(GrFragmentProcessor** fp, GrTexture* texture, diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp index ae6637b282..e236da53ff 100644 --- a/src/effects/SkMagnifierImageFilter.cpp +++ b/src/effects/SkMagnifierImageFilter.cpp @@ -357,3 +357,13 @@ bool SkMagnifierImageFilter::onFilterImage(Proxy*, const SkBitmap& src, } return true; } + +#ifndef SK_IGNORE_TO_STRING +void SkMagnifierImageFilter::toString(SkString* str) const { + str->appendf("SkMagnifierImageFilter: ("); + str->appendf("src: (%f,%f,%f,%f) ", + fSrcRect.fLeft, fSrcRect.fTop, fSrcRect.fRight, fSrcRect.fBottom); + str->appendf("inset: %f", fInset); + str->append(")"); +} +#endif diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp index 045f6a96d5..e9dd87852f 100644 --- a/src/effects/SkMatrixConvolutionImageFilter.cpp +++ b/src/effects/SkMatrixConvolutionImageFilter.cpp @@ -369,3 +369,20 @@ bool SkMatrixConvolutionImageFilter::asFragmentProcessor(GrFragmentProcessor** f return true; } #endif + +#ifndef SK_IGNORE_TO_STRING +void SkMatrixConvolutionImageFilter::toString(SkString* str) const { + str->appendf("SkMatrixConvolutionImageFilter: ("); + str->appendf("size: (%d,%d) kernel: (", fKernelSize.width(), fKernelSize.height()); + for (int y = 0; y < fKernelSize.height(); y++) { + for (int x = 0; x < fKernelSize.width(); x++) { + str->appendf("%f ", fKernel[y * fKernelSize.width() + x]); + } + } + str->appendf(")"); + str->appendf("gain: %f bias: %f ", fGain, fBias); + str->appendf("offset: (%d, %d) ", fKernelOffset.fX, fKernelOffset.fY); + str->appendf("convolveAlpha: %s", fConvolveAlpha ? "true" : "false"); + str->append(")"); +} +#endif diff --git a/src/effects/SkMatrixImageFilter.cpp b/src/effects/SkMatrixImageFilter.cpp index f2c403f443..4d9b1fa335 100644 --- a/src/effects/SkMatrixImageFilter.cpp +++ b/src/effects/SkMatrixImageFilter.cpp @@ -124,3 +124,27 @@ bool SkMatrixImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm *dst = bounds; return true; } + +#ifndef SK_IGNORE_TO_STRING +void SkMatrixImageFilter::toString(SkString* str) const { + str->appendf("SkMatrixImageFilter: ("); + + str->appendf("transform: (%f %f %f %f %f %f %f %f %f)", + fTransform[SkMatrix::kMScaleX], + fTransform[SkMatrix::kMSkewX], + fTransform[SkMatrix::kMTransX], + fTransform[SkMatrix::kMSkewY], + fTransform[SkMatrix::kMScaleY], + fTransform[SkMatrix::kMTransY], + fTransform[SkMatrix::kMPersp0], + fTransform[SkMatrix::kMPersp1], + fTransform[SkMatrix::kMPersp2]); + + str->append("<dt>FilterLevel:</dt><dd>"); + static const char* gFilterLevelStrings[] = { "None", "Low", "Medium", "High" }; + str->append(gFilterLevelStrings[fFilterLevel]); + str->append("</dd>"); + + str->appendf(")"); +} +#endif diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp index d932d3ccce..7034e158e5 100755 --- a/src/effects/SkMergeImageFilter.cpp +++ b/src/effects/SkMergeImageFilter.cpp @@ -140,3 +140,18 @@ void SkMergeImageFilter::flatten(SkWriteBuffer& buffer) const { buffer.writeByteArray(fModes, countInputs() * sizeof(fModes[0])); } } + +#ifndef SK_IGNORE_TO_STRING +void SkMergeImageFilter::toString(SkString* str) const { + str->appendf("SkMergeImageFilter: ("); + + for (int i = 0; i < this->countInputs(); ++i) { + SkImageFilter* filter = this->getInput(i); + str->appendf("%d: (", i); + filter->toString(str); + str->appendf(")"); + } + + str->append(")"); +} +#endif diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp index d533448fe0..d18dc394eb 100644 --- a/src/effects/SkMorphologyImageFilter.cpp +++ b/src/effects/SkMorphologyImageFilter.cpp @@ -264,6 +264,22 @@ SkFlattenable* SkDilateImageFilter::CreateProc(SkReadBuffer& buffer) { return Create(width, height, common.getInput(0), &common.cropRect(), common.uniqueID()); } +#ifndef SK_IGNORE_TO_STRING +void SkErodeImageFilter::toString(SkString* str) const { + str->appendf("SkErodeImageFilter: ("); + str->appendf("radius: (%d,%d)", this->radius().fWidth, this->radius().fHeight); + str->append(")"); +} +#endif + +#ifndef SK_IGNORE_TO_STRING +void SkDilateImageFilter::toString(SkString* str) const { + str->appendf("SkDilateImageFilter: ("); + str->appendf("radius: (%d,%d)", this->radius().fWidth, this->radius().fHeight); + str->append(")"); +} +#endif + #if SK_SUPPORT_GPU /////////////////////////////////////////////////////////////////////////////// diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp index b7ded082d9..8a17ce34ec 100644 --- a/src/effects/SkOffsetImageFilter.cpp +++ b/src/effects/SkOffsetImageFilter.cpp @@ -108,3 +108,15 @@ SkOffsetImageFilter::SkOffsetImageFilter(SkScalar dx, SkScalar dy, SkImageFilter : INHERITED(1, &input, cropRect, uniqueID) { fOffset.set(dx, dy); } + +#ifndef SK_IGNORE_TO_STRING +void SkOffsetImageFilter::toString(SkString* str) const { + str->appendf("SkOffsetImageFilter: ("); + str->appendf("offset: (%f, %f) ", fOffset.fX, fOffset.fY); + str->append("input: ("); + if (this->getInput(0)) { + this->getInput(0)->toString(str); + } + str->append("))"); +} +#endif diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp index 8075f365d0..37d86ce0d2 100644 --- a/src/effects/SkPictureImageFilter.cpp +++ b/src/effects/SkPictureImageFilter.cpp @@ -167,3 +167,17 @@ void SkPictureImageFilter::drawPictureAtLocalResolution(Proxy* proxy, SkBaseDevi SkIntToScalar(localIBounds.fTop), &paint); //canvas.drawPicture(fPicture); } + +#ifndef SK_IGNORE_TO_STRING +void SkPictureImageFilter::toString(SkString* str) const { + str->appendf("SkPictureImageFilter: ("); + str->appendf("crop: (%f,%f,%f,%f) ", + fCropRect.fLeft, fCropRect.fTop, fCropRect.fRight, fCropRect.fBottom); + if (fPicture) { + str->appendf("picture: (%f,%f,%f,%f)", + fPicture->cullRect().fLeft, fPicture->cullRect().fTop, + fPicture->cullRect().fRight, fPicture->cullRect().fBottom); + } + str->append(")"); +} +#endif diff --git a/src/effects/SkRectShaderImageFilter.cpp b/src/effects/SkRectShaderImageFilter.cpp index 91a127e0e3..a00994e75b 100644 --- a/src/effects/SkRectShaderImageFilter.cpp +++ b/src/effects/SkRectShaderImageFilter.cpp @@ -79,3 +79,10 @@ bool SkRectShaderImageFilter::onFilterImage(Proxy* proxy, offset->fY = bounds.fTop; return true; } + +#ifndef SK_IGNORE_TO_STRING +void SkRectShaderImageFilter::toString(SkString* str) const { + str->appendf("SkRectShaderImageFilter: ("); + str->append(")"); +} +#endif diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp index 942bae7d06..e12b3d78ec 100644 --- a/src/effects/SkTableColorFilter.cpp +++ b/src/effects/SkTableColorFilter.cpp @@ -155,7 +155,32 @@ void SkTable_ColorFilter::filterSpan(const SkPMColor src[], int count, #ifndef SK_IGNORE_TO_STRING void SkTable_ColorFilter::toString(SkString* str) const { - str->append("SkTable_ColorFilter"); + const uint8_t* table = fStorage; + const uint8_t* tableA = gIdentityTable; + const uint8_t* tableR = gIdentityTable; + const uint8_t* tableG = gIdentityTable; + const uint8_t* tableB = gIdentityTable; + if (fFlags & kA_Flag) { + tableA = table; table += 256; + } + if (fFlags & kR_Flag) { + tableR = table; table += 256; + } + if (fFlags & kG_Flag) { + tableG = table; table += 256; + } + if (fFlags & kB_Flag) { + tableB = table; + } + + str->append("SkTable_ColorFilter ("); + + for (int i = 0; i < 256; ++i) { + str->appendf("%d: %d,%d,%d,%d\n", + i, tableR[i], tableG[i], tableB[i], tableA[i]); + } + + str->append(")"); } #endif diff --git a/src/effects/SkTestImageFilters.cpp b/src/effects/SkTestImageFilters.cpp index be991f6f83..f0f8ae0390 100755 --- a/src/effects/SkTestImageFilters.cpp +++ b/src/effects/SkTestImageFilters.cpp @@ -80,3 +80,10 @@ void SkDownSampleImageFilter::flatten(SkWriteBuffer& buffer) const { this->INHERITED::flatten(buffer); buffer.writeScalar(fScale); } + +#ifndef SK_IGNORE_TO_STRING +void SkDownSampleImageFilter::toString(SkString* str) const { + str->appendf("SkDownSampleImageFilter: ("); + str->append(")"); +} +#endif diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp index d640ac7adb..669c234d95 100644 --- a/src/effects/SkTileImageFilter.cpp +++ b/src/effects/SkTileImageFilter.cpp @@ -106,3 +106,10 @@ void SkTileImageFilter::flatten(SkWriteBuffer& buffer) const { buffer.writeRect(fSrcRect); buffer.writeRect(fDstRect); } + +#ifndef SK_IGNORE_TO_STRING +void SkTileImageFilter::toString(SkString* str) const { + str->appendf("SkTileImageFilter: ("); + str->append(")"); +} +#endif diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp index 00e9ed639b..617593eae6 100644 --- a/src/effects/SkXfermodeImageFilter.cpp +++ b/src/effects/SkXfermodeImageFilter.cpp @@ -98,6 +98,17 @@ bool SkXfermodeImageFilter::onFilterImage(Proxy* proxy, return true; } +#ifndef SK_IGNORE_TO_STRING +void SkXfermodeImageFilter::toString(SkString* str) const { + str->appendf("SkXfermodeImageFilter: ("); + str->appendf("xfermode: ("); + if (fMode) { + fMode->toString(str); + } + str->append("))"); +} +#endif + #if SK_SUPPORT_GPU bool SkXfermodeImageFilter::canFilterImageGPU() const { @@ -165,3 +176,4 @@ bool SkXfermodeImageFilter::filterImageGPU(Proxy* proxy, } #endif + diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 3b73eae6aa..d50afb7638 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -704,7 +704,7 @@ void SkGradientShaderBase::toString(SkString* str) const { str->appendf("%d colors: ", fColorCount); for (int i = 0; i < fColorCount; ++i) { - str->appendHex(fOrigColors[i]); + str->appendHex(fOrigColors[i], 8); if (i < fColorCount-1) { str->append(", "); } diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp index 9fd4351b42..b67383682b 100644 --- a/tests/ImageFilterTest.cpp +++ b/tests/ImageFilterTest.cpp @@ -55,6 +55,7 @@ public: return true; } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(MatrixTestImageFilter) protected: @@ -81,6 +82,13 @@ SkFlattenable* MatrixTestImageFilter::CreateProc(SkReadBuffer& buffer) { return SkNEW_ARGS(MatrixTestImageFilter, (reporter, matrix)); } +#ifndef SK_IGNORE_TO_STRING +void MatrixTestImageFilter::toString(SkString* str) const { + str->appendf("MatrixTestImageFilter: ("); + str->append(")"); +} +#endif + static void make_small_bitmap(SkBitmap& bitmap) { bitmap.allocN32Pixels(kBitmapSize, kBitmapSize); SkCanvas canvas(bitmap); diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp index ca18b2aebf..3f539e3843 100644 --- a/tests/PDFPrimitivesTest.cpp +++ b/tests/PDFPrimitivesTest.cpp @@ -443,6 +443,7 @@ public: *result = src; return true; } + SK_TO_STRING_OVERRIDE() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(DummyImageFilter) bool visited() const { return fVisited; } @@ -456,6 +457,13 @@ SkFlattenable* DummyImageFilter::CreateProc(SkReadBuffer& buffer) { return SkNEW_ARGS(DummyImageFilter, (visited)); } +#ifndef SK_IGNORE_TO_STRING +void DummyImageFilter::toString(SkString* str) const { + str->appendf("DummyImageFilter: ("); + str->append(")"); +} +#endif + }; // Check that PDF rendering of image filters successfully falls back to |