Converting more debug code to SkJSONWriter
All of SkDrawCommand / SkDebugCanvas now uses SkJSONWriter.
Also removed the bespoke json generator and pretty-printer
in GrAuditTrail. This was the largest volume of code still
using JsonCPP. (There are other stragglers).
Bug: skia:
Change-Id: I3aee554764689ce50c8e707caf26c76093b9bb8f
Reviewed-on: https://skia-review.googlesource.com/c/187040
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Florin Malita <fmalita@chromium.org>
diff --git a/tools/skp_parser.cpp b/tools/skp_parser.cpp
index dcdea7c..25b0ea4 100644
--- a/tools/skp_parser.cpp
+++ b/tools/skp_parser.cpp
@@ -55,8 +55,12 @@
pic->playback(&debugCanvas);
std::unique_ptr<SkCanvas> nullCanvas = SkMakeNullCanvas();
UrlDataManager dataManager(SkString("data"));
- Json::Value json = debugCanvas.toJSON(
- dataManager, debugCanvas.getSize(), nullCanvas.get());
+ SkDynamicMemoryWStream stream;
+ SkJSONWriter writer(&stream, SkJSONWriter::Mode::kPretty);
+ writer.beginObject(); // root
+ debugCanvas.toJSON(writer, dataManager, debugCanvas.getSize(), nullCanvas.get());
+ writer.endObject(); // root
+ writer.flush();
if (argc > 2) {
if (UrlDataManager::UrlData* data =
dataManager.getDataFromUrl(SkString(argv[2]))) {
@@ -72,7 +76,8 @@
return 4;
}
} else {
- Json::StyledStreamWriter(" ").write(std::cout, json);
+ sk_sp<SkData> data = stream.detachAsData();
+ fwrite(data->data(), data->size(), 1, stdout);
}
return 0;
}