diff options
author | bsalomon <bsalomon@google.com> | 2014-06-09 07:59:06 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-06-09 07:59:06 -0700 |
commit | b6b02526438d6839481fb40ccf610d28f7652397 (patch) | |
tree | 5f2af2ba7950b4c79f708c0a4cc9e04e21f9844b /src/core | |
parent | e2b78a7131a9ee7dccdc3b056bdbaeaad851fc81 (diff) |
Add dump() to SkClipStack to help with debugging.
R=robertphillips@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/311263015
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkClipStack.cpp | 60 | ||||
-rw-r--r-- | src/core/SkPath.cpp | 2 | ||||
-rw-r--r-- | src/core/SkRRect.cpp | 12 |
3 files changed, 73 insertions, 1 deletions
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp index d087592b17..a965b1bae7 100644 --- a/src/core/SkClipStack.cpp +++ b/src/core/SkClipStack.cpp @@ -845,3 +845,63 @@ int32_t SkClipStack::getTopmostGenID() const { return back->getGenID(); } + +#ifdef SK_DEVELOPER +void SkClipStack::Element::dump() const { + static const char* kTypeStrings[] = { + "empty", + "rect", + "rrect", + "path" + }; + SK_COMPILE_ASSERT(0 == kEmpty_Type, type_str); + SK_COMPILE_ASSERT(1 == kRect_Type, type_str); + SK_COMPILE_ASSERT(2 == kRRect_Type, type_str); + SK_COMPILE_ASSERT(3 == kPath_Type, type_str); + SK_COMPILE_ASSERT(SK_ARRAY_COUNT(kTypeStrings) == kTypeCnt, type_str); + + static const char* kOpStrings[] = { + "difference", + "intersect", + "union", + "xor", + "reverse-difference", + "replace", + }; + SK_COMPILE_ASSERT(0 == SkRegion::kDifference_Op, op_str); + SK_COMPILE_ASSERT(1 == SkRegion::kIntersect_Op, op_str); + SK_COMPILE_ASSERT(2 == SkRegion::kUnion_Op, op_str); + SK_COMPILE_ASSERT(3 == SkRegion::kXOR_Op, op_str); + SK_COMPILE_ASSERT(4 == SkRegion::kReverseDifference_Op, op_str); + SK_COMPILE_ASSERT(5 == SkRegion::kReplace_Op, op_str); + SK_COMPILE_ASSERT(SK_ARRAY_COUNT(kOpStrings) == SkRegion::kOpCnt, op_str); + + SkDebugf("Type: %s, Op: %s, AA: %s, Save Count: %d\n", kTypeStrings[fType], + kOpStrings[fOp], (fDoAA ? "yes" : "no"), fSaveCount); + switch (fType) { + case kEmpty_Type: + SkDebugf("\n"); + break; + case kRect_Type: + this->getRect().dump(); + SkDebugf("\n"); + break; + case kRRect_Type: + this->getRRect().dump(); + SkDebugf("\n"); + break; + case kPath_Type: + this->getPath().dump(true); + break; + } +} + +void SkClipStack::dump() const { + B2TIter iter(*this); + const Element* e; + while ((e = iter.next())) { + e->dump(); + SkDebugf("\n"); + } +} +#endif diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp index d51a40e271..075cfdb421 100644 --- a/src/core/SkPath.cpp +++ b/src/core/SkPath.cpp @@ -2170,7 +2170,7 @@ void SkPath::dump(bool forceClose, const char title[]) const { append_params(&builder, "path.cubicTo", &pts[1], 3); break; case kClose_Verb: - builder.append("path.close();\n"); + builder.append("path.close();"); break; default: SkDebugf(" path: UNKNOWN VERB %d, aborting dump...\n", verb); diff --git a/src/core/SkRRect.cpp b/src/core/SkRRect.cpp index 7661fd272b..9bb6725dea 100644 --- a/src/core/SkRRect.cpp +++ b/src/core/SkRRect.cpp @@ -436,6 +436,18 @@ size_t SkRRect::readFromMemory(const void* buffer, size_t length) { return kSizeInMemory; } +#ifdef SK_DEVELOPER +void SkRRect::dump() const { + SkDebugf("Rect: "); + fRect.dump(); + SkDebugf(" Corners: { TL: (%f, %f), TR: (%f, %f), BR: (%f, %f), BL: (%f, %f) }", + fRadii[kUpperLeft_Corner].fX, fRadii[kUpperLeft_Corner].fY, + fRadii[kUpperRight_Corner].fX, fRadii[kUpperRight_Corner].fY, + fRadii[kLowerRight_Corner].fX, fRadii[kLowerRight_Corner].fY, + fRadii[kLowerLeft_Corner].fX, fRadii[kLowerLeft_Corner].fY); +} +#endif + /////////////////////////////////////////////////////////////////////////////// #ifdef SK_DEBUG |