From b1d47e211c95779ed283b78a85abbd0bd5668871 Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Fri, 31 Aug 2012 15:41:37 +0000 Subject: [PATCH] add --dump-ops option to pinspect, which will invoke SkDumpCanvas on the picture(s) git-svn-id: http://skia.googlecode.com/svn/trunk@5370 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tools/pinspect.cpp | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/tools/pinspect.cpp b/tools/pinspect.cpp index 0105734..cec2013 100644 --- a/tools/pinspect.cpp +++ b/tools/pinspect.cpp @@ -12,12 +12,13 @@ #include "SkPicture.h" #include "SkStream.h" #include "SkString.h" +#include "SkDumpCanvas.h" -static void inspect(const char path[]) { +static SkPicture* inspect(const char path[]) { SkFILEStream stream(path); if (!stream.isValid()) { printf("-- Can't open '%s'\n", path); - return; + return NULL; } printf("Opening '%s'...\n", path); @@ -26,23 +27,42 @@ static void inspect(const char path[]) { int32_t header[3]; if (stream.read(header, sizeof(header)) != sizeof(header)) { printf("-- Failed to read header (12 bytes)\n"); - return; + return NULL; } printf("version:%d width:%d height:%d\n", header[0], header[1], header[2]); } stream.rewind(); - SkPicture pic(&stream); - printf("picture size:[%d %d]\n", pic.width(), pic.height()); + SkPicture* pic = SkNEW_ARGS(SkPicture, (&stream)); + printf("picture size:[%d %d]\n", pic->width(), pic->height()); + return pic; +} + +static void dumpOps(SkPicture* pic) { + SkDebugfDumper dumper; + SkDumpCanvas canvas(&dumper); + canvas.drawPicture(*pic); } int main(int argc, char* const argv[]) { if (argc < 2) { - printf("Usage: pinspect filename [filename ...]\n"); + printf("Usage: pinspect [--dump_ops] filename [filename ...]\n"); } - for (int i = 1; i < argc; ++i) { - inspect(argv[i]); - if (i < argc - 1) { + + bool doDumpOps = false; + + int index = 1; + if (!strcmp(argv[index], "--dump-ops")) { + index += 1; + doDumpOps = true; + } + + for (; index < argc; ++index) { + SkAutoTUnref pic(inspect(argv[index])); + if (doDumpOps) { + dumpOps(pic); + } + if (index < argc - 1) { printf("\n"); } } -- 2.7.4