diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-15 20:17:47 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-01-15 20:17:47 +0000 |
commit | 76f9e938df0b5826fd4c80b854ceafaf385cfbe1 (patch) | |
tree | 5e72265c6e177791a1fff149763308454c958429 /src/effects | |
parent | 06b8a19b5693a352cabe8e624469e67e335bc369 (diff) |
Added print out of SkShader information to debugger
https://codereview.appspot.com/7105045/
git-svn-id: http://skia.googlecode.com/svn/trunk@7201 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects')
-rw-r--r-- | src/effects/SkTransparentShader.cpp | 11 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShader.cpp | 42 | ||||
-rw-r--r-- | src/effects/gradients/SkGradientShaderPriv.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.cpp | 13 | ||||
-rw-r--r-- | src/effects/gradients/SkLinearGradient.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.cpp | 18 | ||||
-rw-r--r-- | src/effects/gradients/SkRadialGradient.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 16 | ||||
-rw-r--r-- | src/effects/gradients/SkSweepGradient.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.cpp | 26 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointConicalGradient.h | 1 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.cpp | 26 | ||||
-rw-r--r-- | src/effects/gradients/SkTwoPointRadialGradient.h | 1 |
13 files changed, 155 insertions, 3 deletions
diff --git a/src/effects/SkTransparentShader.cpp b/src/effects/SkTransparentShader.cpp index 28b075f4e2..2c7172f9b9 100644 --- a/src/effects/SkTransparentShader.cpp +++ b/src/effects/SkTransparentShader.cpp @@ -9,6 +9,7 @@ #include "SkTransparentShader.h" #include "SkColorPriv.h" +#include "SkString.h" bool SkTransparentShader::setContext(const SkBitmap& device, const SkPaint& paint, @@ -125,3 +126,13 @@ void SkTransparentShader::shadeSpan16(int x, int y, uint16_t span[], int count) memcpy(span, src, count << 1); } } + +#ifdef SK_DEVELOPER +void SkTransparentShader::toString(SkString* str) const { + str->append("SkTransparentShader: ("); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp index 7d779708f6..ba72eeadd4 100644 --- a/src/effects/gradients/SkGradientShader.cpp +++ b/src/effects/gradients/SkGradientShader.cpp @@ -546,16 +546,16 @@ void SkGradientShaderBase::commonAsAGradient(GradientInfo* info) const { if (info) { if (info->fColorCount >= fColorCount) { if (info->fColors) { - memcpy(info->fColors, fOrigColors, - fColorCount * sizeof(SkColor)); + memcpy(info->fColors, fOrigColors, fColorCount * sizeof(SkColor)); } if (info->fColorOffsets) { if (fColorCount == 2) { info->fColorOffsets[0] = 0; info->fColorOffsets[1] = SK_Scalar1; } else if (fColorCount > 2) { - for (int i = 0; i < fColorCount; i++) + for (int i = 0; i < fColorCount; ++i) { info->fColorOffsets[i] = SkFixedToScalar(fRecs[i].fPos); + } } } } @@ -564,6 +564,42 @@ void SkGradientShaderBase::commonAsAGradient(GradientInfo* info) const { } } +#ifdef SK_DEVELOPER +void SkGradientShaderBase::toString(SkString* str) const { + + str->appendf("%d colors: ", fColorCount); + + for (int i = 0; i < fColorCount; ++i) { + str->appendHex(fOrigColors[i]); + if (i < fColorCount-1) { + str->append(", "); + } + } + + if (fColorCount > 2) { + str->append(" points: ("); + for (int i = 0; i < fColorCount; ++i) { + str->appendScalar(SkFixedToScalar(fRecs[i].fPos)); + if (i < fColorCount-1) { + str->append(", "); + } + } + str->append(")"); + } + + static const char* gTileModeName[SkShader::kTileModeCount] = { + "clamp", "repeat", "mirror" + }; + + str->append(" "); + str->append(gTileModeName[fTileMode]); + + // TODO: add "fMapper->toString(str);" when SkUnitMapper::toString is added + + this->INHERITED::toString(str); +} +#endif + /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h index b2b8c47a1c..27c443814b 100644 --- a/src/effects/gradients/SkGradientShaderPriv.h +++ b/src/effects/gradients/SkGradientShaderPriv.h @@ -139,6 +139,7 @@ public: protected: SkGradientShaderBase(SkFlattenableReadBuffer& ); virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; + SK_DEVELOPER_TO_STRING() SkUnitMapper* fMapper; SkMatrix fPtsToUnit; // set by subclass diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp index fc5653b6fd..1788b7ada7 100644 --- a/src/effects/gradients/SkLinearGradient.cpp +++ b/src/effects/gradients/SkLinearGradient.cpp @@ -564,3 +564,16 @@ GrEffect* SkLinearGradient::asNewEffect(GrContext* context, const SkPaint&) cons } #endif + +#ifdef SK_DEVELOPER +void SkLinearGradient::toString(SkString* str) const { + str->append("SkLinearGradient ("); + + str->appendf("start: (%f, %f)", fStart.fX, fStart.fY); + str->appendf(" end: (%f, %f) ", fEnd.fX, fEnd.fY); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/gradients/SkLinearGradient.h b/src/effects/gradients/SkLinearGradient.h index 29777c13ed..e7935e46d6 100644 --- a/src/effects/gradients/SkLinearGradient.h +++ b/src/effects/gradients/SkLinearGradient.h @@ -24,6 +24,7 @@ public: virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; virtual GrEffect* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; + SK_DEVELOPER_TO_STRING() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLinearGradient) protected: diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp index d31cebd616..c0e745713a 100644 --- a/src/effects/gradients/SkRadialGradient.cpp +++ b/src/effects/gradients/SkRadialGradient.cpp @@ -588,3 +588,21 @@ GrEffect* SkRadialGradient::asNewEffect(GrContext* context, const SkPaint&) cons } #endif + +#ifdef SK_DEVELOPER +void SkRadialGradient::toString(SkString* str) const { + str->append("SkRadialGradient: ("); + + str->append("center: ("); + str->appendScalar(fCenter.fX); + str->append(", "); + str->appendScalar(fCenter.fY); + str->append(") radius: "); + str->appendScalar(fRadius); + str->append(" "); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/gradients/SkRadialGradient.h b/src/effects/gradients/SkRadialGradient.h index 9730df4f4d..0bb75c57d7 100644 --- a/src/effects/gradients/SkRadialGradient.h +++ b/src/effects/gradients/SkRadialGradient.h @@ -26,6 +26,7 @@ public: virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE; virtual GrEffect* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; + SK_DEVELOPER_TO_STRING() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRadialGradient) protected: diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index 8e7ef96a15..493109e7ee 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -489,3 +489,19 @@ GrEffect* SkSweepGradient::asNewEffect(GrContext* context, const SkPaint&) const } #endif + +#ifdef SK_DEVELOPER +void SkSweepGradient::toString(SkString* str) const { + str->append("SkSweepGradient: ("); + + str->append("center: ("); + str->appendScalar(fCenter.fX); + str->append(", "); + str->appendScalar(fCenter.fY); + str->append(") "); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/gradients/SkSweepGradient.h b/src/effects/gradients/SkSweepGradient.h index 5034b8e4c6..4148966590 100644 --- a/src/effects/gradients/SkSweepGradient.h +++ b/src/effects/gradients/SkSweepGradient.h @@ -26,6 +26,7 @@ public: virtual GrEffect* asNewEffect(GrContext* context, const SkPaint&) const SK_OVERRIDE; + SK_DEVELOPER_TO_STRING() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSweepGradient) protected: diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp index 37b8a51233..23e4dcc295 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.cpp +++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp @@ -715,3 +715,29 @@ GrEffect* SkTwoPointConicalGradient::asNewEffect(GrContext* context, const SkPai } #endif + +#ifdef SK_DEVELOPER +void SkTwoPointConicalGradient::toString(SkString* str) const { + str->append("SkTwoPointConicalGradient: ("); + + str->append("center1: ("); + str->appendScalar(fCenter1.fX); + str->append(", "); + str->appendScalar(fCenter1.fY); + str->append(") radius1: "); + str->appendScalar(fRadius1); + str->append(" "); + + str->append("center2: ("); + str->appendScalar(fCenter2.fX); + str->append(", "); + str->appendScalar(fCenter2.fY); + str->append(") radius2: "); + str->appendScalar(fRadius2); + str->append(" "); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif diff --git a/src/effects/gradients/SkTwoPointConicalGradient.h b/src/effects/gradients/SkTwoPointConicalGradient.h index c4ccc05d3c..44432cc6be 100644 --- a/src/effects/gradients/SkTwoPointConicalGradient.h +++ b/src/effects/gradients/SkTwoPointConicalGradient.h @@ -67,6 +67,7 @@ public: SkScalar getStartRadius() const { return fRadius1; } SkScalar getDiffRadius() const { return fRadius2 - fRadius1; } + SK_DEVELOPER_TO_STRING() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTwoPointConicalGradient) protected: diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp index 075e940e13..2e458097d1 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.cpp +++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp @@ -309,6 +309,32 @@ bool SkTwoPointRadialGradient::setContext( const SkBitmap& device, return true; } +#ifdef SK_DEVELOPER +void SkTwoPointRadialGradient::toString(SkString* str) const { + str->append("SkTwoPointRadialGradient: ("); + + str->append("center1: ("); + str->appendScalar(fCenter1.fX); + str->append(", "); + str->appendScalar(fCenter1.fY); + str->append(") radius1: "); + str->appendScalar(fRadius1); + str->append(" "); + + str->append("center2: ("); + str->appendScalar(fCenter2.fX); + str->append(", "); + str->appendScalar(fCenter2.fY); + str->append(") radius2: "); + str->appendScalar(fRadius2); + str->append(" "); + + this->INHERITED::toString(str); + + str->append(")"); +} +#endif + SkTwoPointRadialGradient::SkTwoPointRadialGradient( SkFlattenableReadBuffer& buffer) : INHERITED(buffer), diff --git a/src/effects/gradients/SkTwoPointRadialGradient.h b/src/effects/gradients/SkTwoPointRadialGradient.h index 2f9d66d3ef..e0b00827e1 100644 --- a/src/effects/gradients/SkTwoPointRadialGradient.h +++ b/src/effects/gradients/SkTwoPointRadialGradient.h @@ -35,6 +35,7 @@ public: SkScalar getStartRadius() const { return fStartRadius; } SkScalar getDiffRadius() const { return fDiffRadius; } + SK_DEVELOPER_TO_STRING() SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTwoPointRadialGradient) protected: |