aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-12-19 13:49:15 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-19 13:49:15 -0800
commitf3f5bad7ded35265c0b5d042cc4174386b197a33 (patch)
treeb8197317dd26d7e5b65f1559446c8d39e8be1457
parent290c09b8bbd8d221d363150e2ce87158f4668df0 (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
-rw-r--r--gm/imagefiltersbase.cpp16
-rw-r--r--gm/imagefiltersgraph.cpp8
-rw-r--r--include/core/SkImageFilter.h1
-rw-r--r--include/effects/SkBitmapSource.h1
-rw-r--r--include/effects/SkBlurImageFilter.h1
-rw-r--r--include/effects/SkColorFilterImageFilter.h1
-rw-r--r--include/effects/SkComposeImageFilter.h1
-rw-r--r--include/effects/SkDisplacementMapEffect.h2
-rw-r--r--include/effects/SkDropShadowImageFilter.h7
-rw-r--r--include/effects/SkMagnifierImageFilter.h1
-rw-r--r--include/effects/SkMatrixConvolutionImageFilter.h1
-rw-r--r--include/effects/SkMatrixImageFilter.h1
-rw-r--r--include/effects/SkMergeImageFilter.h1
-rw-r--r--include/effects/SkMorphologyImageFilter.h2
-rw-r--r--include/effects/SkOffsetImageFilter.h1
-rw-r--r--include/effects/SkPictureImageFilter.h1
-rw-r--r--include/effects/SkRectShaderImageFilter.h1
-rw-r--r--include/effects/SkTestImageFilters.h1
-rw-r--r--include/effects/SkTileImageFilter.h1
-rw-r--r--include/effects/SkXfermodeImageFilter.h1
-rw-r--r--src/core/SkPaint.cpp1
-rw-r--r--src/effects/SkAlphaThresholdFilter.cpp10
-rw-r--r--src/effects/SkBitmapSource.cpp12
-rw-r--r--src/effects/SkBlurImageFilter.cpp8
-rwxr-xr-xsrc/effects/SkColorFilterImageFilter.cpp11
-rw-r--r--src/effects/SkComposeImageFilter.cpp17
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp17
-rw-r--r--src/effects/SkDropShadowImageFilter.cpp24
-rw-r--r--src/effects/SkLightingImageFilter.cpp18
-rw-r--r--src/effects/SkMagnifierImageFilter.cpp10
-rw-r--r--src/effects/SkMatrixConvolutionImageFilter.cpp17
-rw-r--r--src/effects/SkMatrixImageFilter.cpp24
-rwxr-xr-xsrc/effects/SkMergeImageFilter.cpp15
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp16
-rw-r--r--src/effects/SkOffsetImageFilter.cpp12
-rw-r--r--src/effects/SkPictureImageFilter.cpp14
-rw-r--r--src/effects/SkRectShaderImageFilter.cpp7
-rw-r--r--src/effects/SkTableColorFilter.cpp27
-rwxr-xr-xsrc/effects/SkTestImageFilters.cpp7
-rw-r--r--src/effects/SkTileImageFilter.cpp7
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp12
-rw-r--r--src/effects/gradients/SkGradientShader.cpp2
-rw-r--r--tests/ImageFilterTest.cpp8
-rw-r--r--tests/PDFPrimitivesTest.cpp8
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