aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPath.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-12-15 07:59:53 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-15 07:59:53 -0800
commite05fed0d6339c63c8cceff74af0b8d120c07e54c (patch)
treede54a038e60ec105dd7028c0db227895eb16aa59 /src/core/SkPath.cpp
parentce1c8869cf5e37753f9c8193314d93bff897d014 (diff)
add dumpHex option to rect and rrect, to match path
Diffstat (limited to 'src/core/SkPath.cpp')
-rw-r--r--src/core/SkPath.cpp38
1 files changed, 13 insertions, 25 deletions
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 2cb33e2012..f8280bd6d2 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -2021,24 +2021,11 @@ size_t SkPath::readFromMemory(const void* storage, size_t length) {
///////////////////////////////////////////////////////////////////////////////
-#include "SkString.h"
+#include "SkStringUtils.h"
#include "SkStream.h"
-static void append_scalar(SkString* str, SkScalar value, bool dumpAsHex) {
- if (dumpAsHex) {
- str->appendf("SkBits2Float(0x%08x)", SkFloat2Bits(value));
- return;
- }
- SkString tmp;
- tmp.printf("%g", value);
- if (tmp.contains('.')) {
- tmp.appendUnichar('f');
- }
- str->append(tmp);
-}
-
static void append_params(SkString* str, const char label[], const SkPoint pts[],
- int count, bool dumpAsHex, SkScalar conicWeight = -1) {
+ int count, SkScalarAsStringType strType, SkScalar conicWeight = -1) {
str->append(label);
str->append("(");
@@ -2046,33 +2033,34 @@ static void append_params(SkString* str, const char label[], const SkPoint pts[]
count *= 2;
for (int i = 0; i < count; ++i) {
- append_scalar(str, values[i], dumpAsHex);
+ SkAppendScalar(str, values[i], strType);
if (i < count - 1) {
str->append(", ");
}
}
if (conicWeight >= 0) {
str->append(", ");
- append_scalar(str, conicWeight, dumpAsHex);
+ SkAppendScalar(str, conicWeight, strType);
}
str->append(");");
- if (dumpAsHex) {
+ if (kHex_SkScalarAsStringType == strType) {
str->append(" // ");
for (int i = 0; i < count; ++i) {
- append_scalar(str, values[i], false);
+ SkAppendScalarDec(str, values[i]);
if (i < count - 1) {
str->append(", ");
}
}
if (conicWeight >= 0) {
str->append(", ");
- append_scalar(str, conicWeight, false);
+ SkAppendScalarDec(str, conicWeight);
}
}
str->append("\n");
}
void SkPath::dump(SkWStream* wStream, bool forceClose, bool dumpAsHex) const {
+ SkScalarAsStringType asType = dumpAsHex ? kHex_SkScalarAsStringType : kDec_SkScalarAsStringType;
Iter iter(*this, forceClose);
SkPoint pts[4];
Verb verb;
@@ -2085,19 +2073,19 @@ void SkPath::dump(SkWStream* wStream, bool forceClose, bool dumpAsHex) const {
while ((verb = iter.next(pts, false)) != kDone_Verb) {
switch (verb) {
case kMove_Verb:
- append_params(&builder, "path.moveTo", &pts[0], 1, dumpAsHex);
+ append_params(&builder, "path.moveTo", &pts[0], 1, asType);
break;
case kLine_Verb:
- append_params(&builder, "path.lineTo", &pts[1], 1, dumpAsHex);
+ append_params(&builder, "path.lineTo", &pts[1], 1, asType);
break;
case kQuad_Verb:
- append_params(&builder, "path.quadTo", &pts[1], 2, dumpAsHex);
+ append_params(&builder, "path.quadTo", &pts[1], 2, asType);
break;
case kConic_Verb:
- append_params(&builder, "path.conicTo", &pts[1], 2, dumpAsHex, iter.conicWeight());
+ append_params(&builder, "path.conicTo", &pts[1], 2, asType, iter.conicWeight());
break;
case kCubic_Verb:
- append_params(&builder, "path.cubicTo", &pts[1], 3, dumpAsHex);
+ append_params(&builder, "path.cubicTo", &pts[1], 3, asType);
break;
case kClose_Verb:
builder.append("path.close();\n");