Index: gm/gmmain.cpp |
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp |
index 4fc9e391f1fd16caf6bc4beab28d78b2fe27b7a9..0ac8f8ffce4d884d9609143240a51ace6395bb1b 100644 |
--- a/gm/gmmain.cpp |
+++ b/gm/gmmain.cpp |
@@ -23,7 +23,6 @@ |
#include "SkDeferredCanvas.h" |
#include "SkDevice.h" |
#include "SkDrawFilter.h" |
-#include "SkFlags.h" |
#include "SkGPipe.h" |
#include "SkGraphics.h" |
#include "SkImageDecoder.h" |
@@ -58,6 +57,8 @@ class GrRenderTarget; |
typedef int GLContextType; |
#endif |
+static bool gForceBWtext; |
+ |
extern bool gSkSuppressFontCachePurgeSpew; |
#ifdef SK_SUPPORT_PDF |
@@ -362,7 +363,11 @@ public: |
force_all_opaque(*bitmap); |
} |
- static void installFilter(SkCanvas* canvas); |
+ static void installFilter(SkCanvas* canvas) { |
+ if (gForceBWtext) { |
+ canvas->setDrawFilter(new BWTextDrawFilter)->unref(); |
+ } |
+ } |
static void invokeGM(GM* gm, SkCanvas* canvas, bool isPDF, bool isDeferred) { |
SkAutoCanvasRestore acr(canvas, true); |
@@ -896,6 +901,7 @@ public: |
SkISize size = gm->getISize(); |
setup_bitmap(gRec, size, &bitmap); |
SkCanvas canvas(bitmap); |
+ installFilter(&canvas); |
PipeController pipeController(&canvas); |
SkGPipeWriter writer; |
SkCanvas* pipeCanvas = writer.startRecording( |
@@ -922,6 +928,7 @@ public: |
SkISize size = gm->getISize(); |
setup_bitmap(gRec, size, &bitmap); |
SkCanvas canvas(bitmap); |
+ installFilter(&canvas); |
TiledPipeController pipeController(bitmap); |
SkGPipeWriter writer; |
SkCanvas* pipeCanvas = writer.startRecording( |
@@ -1007,54 +1014,58 @@ static const ConfigData gRec[] = { |
#endif // SK_SUPPORT_PDF |
}; |
-static SkString configUsage() { |
- SkString result("Possible options for --config: ["); |
+static void usage(const char * argv0) { |
+ fprintf(stderr, "%s\n", argv0); |
+ fprintf(stderr, " [--config "); |
for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { |
if (i > 0) { |
- result.appendf("|"); |
+ fprintf(stderr, "|"); |
} |
- result.appendf("%s", gRec[i].fName); |
+ fprintf(stderr, "%s", gRec[i].fName); |
} |
- result.appendf("]"); |
- return result; |
-} |
- |
+ fprintf(stderr, "]:\n run these configurations\n"); |
+ fprintf(stderr, |
// Alphabetized ignoring "no" prefix ("readPath", "noreplay", "resourcePath"). |
-DEFINE_string(config, "", "Space delimited list of which configs to run. " |
- "Possible configs listed above. If none are specified, " |
- "all will be run."); |
-DEFINE_bool(deferred, true, "Exercise the deferred rendering test pass."); |
-DEFINE_bool(enableMissingWarning, true, "Print message to stderr (but don't fail) if " |
- "unable to read a reference image for any tests."); |
-DEFINE_string(excludeConfig, "", "Space delimited list of configs to skip."); |
-DEFINE_bool(forceBWtext, false, "Disable text anti-aliasing."); |
-DEFINE_string(gpuCacheSize, "", "<bytes> <count>: Limit the gpu cache to byte size or " |
- "object count. -1 for either value means use the default. 0 for either " |
- "disables the cache."); |
-DEFINE_bool(hierarchy, false, "Whether to use multilevel directory structure " |
- "when reading/writing files."); |
-DEFINE_string(match, "", "Only run tests whose name includes this substring/these substrings " |
- "(more than one can be supplied, separated by spaces)."); |
-DEFINE_string(mismatchPath, "", "Write images for tests that failed due to " |
- "pixel mismatches into this directory."); |
-DEFINE_string(modulo, "", "[--modulo <remainder> <divisor>]: only run tests for which " |
- "testIndex %% divisor == remainder."); |
-DEFINE_bool(pdf, true, "Exercise the pdf rendering test pass."); |
-DEFINE_bool(pipe, true, "Exercise the SkGPipe replay test pass."); |
-DEFINE_string2(readPath, r, "", "Read reference images from this dir, and report " |
- "any differences between those and the newly generated ones."); |
-DEFINE_bool(replay, true, "Exercise the SkPicture replay test pass."); |
-DEFINE_string2(resourcePath, i, "", "Directory that stores image resources."); |
-DEFINE_bool(rtree, true, "Exercise the R-Tree variant of SkPicture test pass."); |
-DEFINE_bool(serialize, true, "Exercise the SkPicture serialization & deserialization test pass."); |
-DEFINE_bool(tiledPipe, false, "Exercise tiled SkGPipe replay."); |
-DEFINE_bool(tileGrid, true, "Exercise the tile grid variant of SkPicture."); |
-DEFINE_string(tileGridReplayScales, "", "Space separated list of floating-point scale " |
- "factors to be used for tileGrid playback testing. Default value: 1.0"); |
-DEFINE_string(writeJsonSummaryPath, "", "Write a JSON-formatted result summary to this file."); |
-DEFINE_bool2(verbose, v, false, "Print diagnostics (e.g. list each config to be tested)."); |
-DEFINE_string2(writePath, w, "", "Write rendered images into this directory."); |
-DEFINE_string2(writePicturePath, wp, "", "Write .skp files into this directory."); |
+// It would probably be better if we allowed both yes-and-no settings for each |
+// one, e.g.: |
+// [--replay|--noreplay]: whether to exercise SkPicture replay; default is yes |
+" [--nodeferred]: skip the deferred rendering test pass\n" |
+" [--disable-missing-warning]: don't print a message to stderr if\n" |
+" unable to read a reference image for any tests (NOT default behavior)\n" |
+" [--enable-missing-warning]: print message to stderr (but don't fail) if\n" |
+" unable to read a reference image for any tests (default behavior)\n" |
+" [--exclude-config]: disable this config (may be used multiple times)\n" |
+" [--forceBWtext]: disable text anti-aliasing\n" |
+#if SK_SUPPORT_GPU |
+" [--gpuCacheSize <bytes> <count>]: limits gpu cache to byte size or object count\n" |
+" -1 for either value means use the default. 0 for either disables the cache.\n" |
+#endif |
+" [--help|-h]: show this help message\n" |
+" [--hierarchy|--nohierarchy]: whether to use multilevel directory structure\n" |
+" when reading/writing files; default is no\n" |
+" [--match <substring>]: only run tests whose name includes this substring\n" |
+" [--mismatchPath <path>]: write images for tests that failed due to\n" |
+" pixel mismatched into this directory" |
+" [--modulo <remainder> <divisor>]: only run tests for which \n" |
+" testIndex %% divisor == remainder\n" |
+" [--nopdf]: skip the pdf rendering test pass\n" |
+" [--nopipe]: Skip SkGPipe replay\n" |
+" [--readPath|-r <path>]: read reference images from this dir, and report\n" |
+" any differences between those and the newly generated ones\n" |
+" [--noreplay]: do not exercise SkPicture replay\n" |
+" [--resourcePath|-i <path>]: directory that stores image resources\n" |
+" [--nortree]: Do not exercise the R-Tree variant of SkPicture\n" |
+" [--noserialize]: do not exercise SkPicture serialization & deserialization\n" |
+" [--tiledPipe]: Exercise tiled SkGPipe replay\n" |
+" [--notileGrid]: Do not exercise the tile grid variant of SkPicture\n" |
+" [--tileGridReplayScales <scales>]: Comma separated list of floating-point scale\n" |
+" factors to be used for tileGrid playback testing. Default value: 1.0\n" |
+" [--writeJsonSummary <path>]: write a JSON-formatted result summary to this file\n" |
+" [--verbose] print diagnostics (e.g. list each config to be tested)\n" |
+" [--writePath|-w <path>]: write rendered images into this directory\n" |
+" [--writePicturePath|-wp <path>]: write .skp files into this directory\n" |
+ ); |
+} |
static int findConfig(const char config[]) { |
for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { |
@@ -1141,82 +1152,205 @@ int tool_main(int argc, char** argv) { |
setSystemPreferences(); |
GMMain gmmain; |
+ const char* writeJsonSummaryPath = NULL;// if non-null, where we write the JSON summary |
+ const char* writePath = NULL; // if non-null, where we write the originals |
+ const char* writePicturePath = NULL; // if non-null, where we write serialized pictures |
+ const char* readPath = NULL; // if non-null, were we read from to compare |
+ const char* resourcePath = NULL;// if non-null, where we read from for image resources |
+ |
+ // if true, emit a message when we can't find a reference image to compare |
+ bool notifyMissingReadReference = true; |
+ |
+ SkTDArray<const char*> fMatches; |
+ |
+ bool doPDF = true; |
+ bool doReplay = true; |
+ bool doPipe = true; |
+ bool doTiledPipe = false; |
+ bool doSerialize = true; |
+ bool doDeferred = true; |
+ bool doRTree = true; |
+ bool doTileGrid = true; |
+ bool doVerbose = false; |
+ |
SkTDArray<size_t> configs; |
SkTDArray<size_t> excludeConfigs; |
SkTDArray<SkScalar> tileGridReplayScales; |
*tileGridReplayScales.append() = SK_Scalar1; // By default only test at scale 1.0 |
bool userConfig = false; |
- SkString usage; |
- usage.printf("Run the golden master tests.\n\t%s", configUsage().c_str()); |
- SkFlags::SetUsage(usage.c_str()); |
- SkFlags::ParseCommandLine(argc, argv); |
+ int moduloRemainder = -1; |
+ int moduloDivisor = -1; |
+#if SK_SUPPORT_GPU |
struct { |
int fBytes; |
int fCount; |
} gpuCacheSize = { -1, -1 }; // -1s mean use the default |
+#endif |
- if (FLAGS_gpuCacheSize.count() > 0) { |
- if (FLAGS_gpuCacheSize.count() != 2) { |
- gm_fprintf(stderr, "--gpuCacheSize requires two arguments\n"); |
- return -1; |
- } |
- gpuCacheSize.fBytes = atoi(FLAGS_gpuCacheSize[0]); |
- gpuCacheSize.fCount = atoi(FLAGS_gpuCacheSize[1]); |
- } |
- |
- gmmain.fUseFileHierarchy = FLAGS_hierarchy; |
- if (FLAGS_mismatchPath.count() == 1) { |
- gmmain.fMismatchPath = FLAGS_mismatchPath[0]; |
- } |
- |
- for (int i = 0; i < FLAGS_config.count(); i++) { |
- int index = findConfig(FLAGS_config[i]); |
- if (index >= 0) { |
- appendUnique<size_t>(&configs, index); |
- userConfig = true; |
- } else { |
- gm_fprintf(stderr, "unrecognized config %s\n", FLAGS_config[i]); |
- return -1; |
- } |
- } |
- |
- for (int i = 0; i < FLAGS_excludeConfig.count(); i++) { |
- int index = findConfig(FLAGS_excludeConfig[i]); |
- if (index >= 0) { |
- *excludeConfigs.append() = index; |
- } else { |
- gm_fprintf(stderr, "unrecognized excludeConfig %s\n", FLAGS_excludeConfig[i]); |
+ const char* const commandName = argv[0]; |
+ char* const* stop = argv + argc; |
+ for (++argv; argv < stop; ++argv) { |
+ if (strcmp(*argv, "--config") == 0) { |
+ argv++; |
+ if (argv < stop) { |
+ int index = findConfig(*argv); |
+ if (index >= 0) { |
+ appendUnique<size_t>(&configs, index); |
+ userConfig = true; |
+ } else { |
+ gm_fprintf(stderr, "unrecognized config %s\n", *argv); |
+ usage(commandName); |
+ return -1; |
+ } |
+ } else { |
+ gm_fprintf(stderr, "missing arg for --config\n"); |
+ usage(commandName); |
+ return -1; |
+ } |
+ } else if (strcmp(*argv, "--exclude-config") == 0) { |
+ argv++; |
+ if (argv < stop) { |
+ int index = findConfig(*argv); |
+ if (index >= 0) { |
+ *excludeConfigs.append() = index; |
+ } else { |
+ gm_fprintf(stderr, "unrecognized exclude-config %s\n", *argv); |
+ usage(commandName); |
+ return -1; |
+ } |
+ } else { |
+ gm_fprintf(stderr, "missing arg for --exclude-config\n"); |
+ usage(commandName); |
+ return -1; |
+ } |
+ } else if (strcmp(*argv, "--nodeferred") == 0) { |
+ doDeferred = false; |
+ } else if (strcmp(*argv, "--disable-missing-warning") == 0) { |
+ notifyMissingReadReference = false; |
+ } else if (strcmp(*argv, "--mismatchPath") == 0) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ gmmain.fMismatchPath = *argv; |
+ } |
+ } else if (strcmp(*argv, "--nortree") == 0) { |
+ doRTree = false; |
+ } else if (strcmp(*argv, "--notileGrid") == 0) { |
+ doTileGrid = false; |
+ } else if (strcmp(*argv, "--tileGridReplayScales") == 0) { |
+ tileGridReplayScales.reset(); |
+ ++argv; |
+ if (argv < stop) { |
+ char* token = strtok(*argv, ","); |
+ while (NULL != token) { |
+ double val = atof(token); |
+ if (0 < val) { |
+ *tileGridReplayScales.append() = SkDoubleToScalar(val); |
+ } |
+ token = strtok(NULL, ","); |
+ } |
+ } |
+ if (0 == tileGridReplayScales.count()) { |
+ // Should have at least one scale |
+ usage(commandName); |
+ return -1; |
+ } |
+ } else if (strcmp(*argv, "--enable-missing-warning") == 0) { |
+ notifyMissingReadReference = true; |
+ } else if (strcmp(*argv, "--forceBWtext") == 0) { |
+ gForceBWtext = true; |
+#if SK_SUPPORT_GPU |
+ } else if (strcmp(*argv, "--gpuCacheSize") == 0) { |
+ if (stop - argv > 2) { |
+ gpuCacheSize.fBytes = atoi(*++argv); |
+ gpuCacheSize.fCount = atoi(*++argv); |
+ } else { |
+ gm_fprintf(stderr, "missing arg for --gpuCacheSize\n"); |
+ usage(commandName); |
+ return -1; |
+ } |
+#endif |
+ } else if (strcmp(*argv, "--help") == 0 || strcmp(*argv, "-h") == 0) { |
+ usage(commandName); |
return -1; |
- } |
- } |
+ } else if (strcmp(*argv, "--hierarchy") == 0) { |
+ gmmain.fUseFileHierarchy = true; |
+ } else if (strcmp(*argv, "--nohierarchy") == 0) { |
+ gmmain.fUseFileHierarchy = false; |
+ } else if (strcmp(*argv, "--match") == 0) { |
+ ++argv; |
+ if (argv < stop && **argv) { |
+ // just record the ptr, no need for a deep copy |
+ *fMatches.append() = *argv; |
+ } |
+ } else if (strcmp(*argv, "--modulo") == 0) { |
+ ++argv; |
+ if (argv >= stop) { |
+ continue; |
+ } |
+ moduloRemainder = atoi(*argv); |
- if (FLAGS_tileGridReplayScales.count() > 0) { |
- tileGridReplayScales.reset(); |
- for (int i = 0; i < FLAGS_tileGridReplayScales.count(); i++) { |
- double val = atof(FLAGS_tileGridReplayScales[i]); |
- if (0 < val) { |
- *tileGridReplayScales.append() = SkDoubleToScalar(val); |
+ ++argv; |
+ if (argv >= stop) { |
+ continue; |
} |
- } |
- if (0 == tileGridReplayScales.count()) { |
- // Should have at least one scale |
- gm_fprintf(stderr, "--tileGridReplayScales requires at least one scale.\n"); |
+ moduloDivisor = atoi(*argv); |
+ if (moduloRemainder < 0 || moduloDivisor <= 0 || moduloRemainder >= moduloDivisor) { |
+ gm_fprintf(stderr, "invalid modulo values."); |
+ return -1; |
+ } |
+ } else if (strcmp(*argv, "--nopdf") == 0) { |
+ doPDF = false; |
+ } else if (strcmp(*argv, "--nopipe") == 0) { |
+ doPipe = false; |
+ } else if ((0 == strcmp(*argv, "--readPath")) || |
+ (0 == strcmp(*argv, "-r"))) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ readPath = *argv; |
+ } |
+ } else if (strcmp(*argv, "--noreplay") == 0) { |
+ doReplay = false; |
+ } else if ((0 == strcmp(*argv, "--resourcePath")) || |
+ (0 == strcmp(*argv, "-i"))) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ resourcePath = *argv; |
+ } |
+ } else if (strcmp(*argv, "--serialize") == 0) { |
+ doSerialize = true; |
+ } else if (strcmp(*argv, "--noserialize") == 0) { |
+ doSerialize = false; |
+ } else if (strcmp(*argv, "--tiledPipe") == 0) { |
+ doTiledPipe = true; |
+ } else if (!strcmp(*argv, "--verbose") || !strcmp(*argv, "-v")) { |
+ doVerbose = true; |
+ } else if ((0 == strcmp(*argv, "--writePath")) || |
+ (0 == strcmp(*argv, "-w"))) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ writePath = *argv; |
+ } |
+ } else if (0 == strcmp(*argv, "--writeJsonSummary")) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ writeJsonSummaryPath = *argv; |
+ } |
+ } else if ((0 == strcmp(*argv, "--writePicturePath")) || |
+ (0 == strcmp(*argv, "-wp"))) { |
+ argv++; |
+ if (argv < stop && **argv) { |
+ writePicturePath = *argv; |
+ } |
+ } else { |
+ usage(commandName); |
return -1; |
} |
} |
- |
- int moduloRemainder = -1; |
- int moduloDivisor = -1; |
- |
- if (FLAGS_modulo.count() == 2) { |
- moduloRemainder = atoi(FLAGS_modulo[0]); |
- moduloDivisor = atoi(FLAGS_modulo[1]); |
- if (moduloRemainder < 0 || moduloDivisor <= 0 || moduloRemainder >= moduloDivisor) { |
- gm_fprintf(stderr, "invalid modulo values."); |
- return -1; |
- } |
+ if (argv != stop) { |
+ usage(commandName); |
+ return -1; |
} |
if (!userConfig) { |
@@ -1235,7 +1369,7 @@ int tool_main(int argc, char** argv) { |
} |
} |
- if (FLAGS_verbose) { |
+ if (doVerbose) { |
SkString str; |
str.printf("%d configs:", configs.count()); |
for (int i = 0; i < configs.count(); ++i) { |
@@ -1244,12 +1378,9 @@ int tool_main(int argc, char** argv) { |
gm_fprintf(stderr, "%s\n", str.c_str()); |
} |
- if (FLAGS_resourcePath.count() == 1) { |
- GM::SetResourcePath(FLAGS_resourcePath[0]); |
- } |
+ GM::SetResourcePath(resourcePath); |
- if (FLAGS_readPath.count() == 1) { |
- const char* readPath = FLAGS_readPath[0]; |
+ if (readPath) { |
if (!sk_exists(readPath)) { |
gm_fprintf(stderr, "readPath %s does not exist!\n", readPath); |
return -1; |
@@ -1258,21 +1389,21 @@ int tool_main(int argc, char** argv) { |
gm_fprintf(stdout, "reading from %s\n", readPath); |
gmmain.fExpectationsSource.reset(SkNEW_ARGS( |
IndividualImageExpectationsSource, |
- (readPath, FLAGS_enableMissingWarning))); |
+ (readPath, notifyMissingReadReference))); |
} else { |
gm_fprintf(stdout, "reading expectations from JSON summary file %s\n", readPath); |
gmmain.fExpectationsSource.reset(SkNEW_ARGS( |
JsonExpectationsSource, (readPath))); |
} |
} |
- if (FLAGS_writePath.count() == 1) { |
- gm_fprintf(stderr, "writing to %s\n", FLAGS_writePath[0]); |
+ if (writePath) { |
+ gm_fprintf(stdout, "writing to %s\n", writePath); |
} |
- if (FLAGS_writePicturePath.count() == 1) { |
- gm_fprintf(stderr, "writing pictures to %s\n", FLAGS_writePicturePath[0]); |
+ if (writePicturePath) { |
+ gm_fprintf(stdout, "writing pictures to %s\n", writePicturePath); |
} |
- if (FLAGS_resourcePath.count() == 1) { |
- gm_fprintf(stderr, "reading resources from %s\n", FLAGS_resourcePath[0]); |
+ if (resourcePath) { |
+ gm_fprintf(stdout, "reading resources from %s\n", resourcePath); |
} |
if (moduloDivisor <= 0) { |
@@ -1296,15 +1427,15 @@ int tool_main(int argc, char** argv) { |
SkString moduloStr; |
// If we will be writing out files, prepare subdirectories. |
- if (FLAGS_writePath.count() == 1) { |
- if (!sk_mkdir(FLAGS_writePath[0])) { |
+ if (writePath) { |
+ if (!sk_mkdir(writePath)) { |
return -1; |
} |
if (gmmain.fUseFileHierarchy) { |
for (int i = 0; i < configs.count(); i++) { |
ConfigData config = gRec[configs[i]]; |
SkString subdir; |
- subdir.appendf("%s%c%s", FLAGS_writePath[0], SkPATH_SEPARATOR, |
+ subdir.appendf("%s%c%s", writePath, SkPATH_SEPARATOR, |
config.fName); |
if (!sk_mkdir(subdir.c_str())) { |
return -1; |
@@ -1326,7 +1457,7 @@ int tool_main(int argc, char** argv) { |
} |
const char* shortName = gm->shortName(); |
- if (skip_name(FLAGS_match, shortName)) { |
+ if (skip_name(fMatches, shortName)) { |
SkDELETE(gm); |
continue; |
} |
@@ -1343,7 +1474,7 @@ int tool_main(int argc, char** argv) { |
// Skip any tests that we don't even need to try. |
if ((kPDF_Backend == config.fBackend) && |
- (!FLAGS_pdf|| (gmFlags & GM::kSkipPDF_Flag))) |
+ (!doPDF || (gmFlags & GM::kSkipPDF_Flag))) |
{ |
continue; |
} |
@@ -1405,12 +1536,6 @@ int tool_main(int argc, char** argv) { |
SkBitmap comparisonBitmap; |
- const char* writePath; |
- if (FLAGS_writePath.count() == 1) { |
- writePath = FLAGS_writePath[0]; |
- } else { |
- writePath = NULL; |
- } |
if (kEmptyErrorBitfield == renderErrors) { |
renderErrors |= gmmain.test_drawing(gm, config, writePath, |
GetGr(), |
@@ -1418,7 +1543,7 @@ int tool_main(int argc, char** argv) { |
&comparisonBitmap); |
} |
- if (FLAGS_deferred && !renderErrors && |
+ if (doDeferred && !renderErrors && |
(kGPU_Backend == config.fBackend || |
kRaster_Backend == config.fBackend)) { |
renderErrors |= gmmain.test_deferred_drawing(gm, config, |
@@ -1444,7 +1569,7 @@ int tool_main(int argc, char** argv) { |
SkPicture* pict = gmmain.generate_new_picture(gm, kNone_BbhType, 0); |
SkAutoUnref aur(pict); |
- if ((kEmptyErrorBitfield == testErrors) && FLAGS_replay) { |
+ if ((kEmptyErrorBitfield == testErrors) && doReplay) { |
SkBitmap bitmap; |
gmmain.generate_image_from_picture(gm, compareConfig, pict, |
&bitmap); |
@@ -1454,7 +1579,7 @@ int tool_main(int argc, char** argv) { |
if ((kEmptyErrorBitfield == testErrors) && |
(kEmptyErrorBitfield == pictErrors) && |
- FLAGS_serialize) { |
+ doSerialize) { |
SkPicture* repict = gmmain.stream_to_new_picture(*pict); |
SkAutoUnref aurr(repict); |
@@ -1465,9 +1590,9 @@ int tool_main(int argc, char** argv) { |
gm, compareConfig, "-serialize", bitmap, &comparisonBitmap); |
} |
- if (FLAGS_writePicturePath.count() == 1) { |
+ if (writePicturePath) { |
const char* pictureSuffix = "skp"; |
- SkString path = make_filename(FLAGS_writePicturePath[0], "", |
+ SkString path = make_filename(writePicturePath, "", |
gm->shortName(), |
pictureSuffix); |
SkFILEWStream stream(path.c_str()); |
@@ -1481,7 +1606,7 @@ int tool_main(int argc, char** argv) { |
// different bitmap than the standard rendering. It should |
// show up as failed in the JSON summary, and should be listed |
// in the stdout also. |
- if (!(gmFlags & GM::kSkipPicture_Flag) && FLAGS_rtree) { |
+ if (!(gmFlags & GM::kSkipPicture_Flag) && doRTree) { |
SkPicture* pict = gmmain.generate_new_picture( |
gm, kRTree_BbhType, SkPicture::kUsePathBoundsForClip_RecordingFlag); |
SkAutoUnref aur(pict); |
@@ -1492,7 +1617,7 @@ int tool_main(int argc, char** argv) { |
gm, compareConfig, "-rtree", bitmap, &comparisonBitmap); |
} |
- if (!(gmFlags & GM::kSkipPicture_Flag) && FLAGS_tileGrid) { |
+ if (!(gmFlags & GM::kSkipPicture_Flag) && doTileGrid) { |
for(int scaleIndex = 0; scaleIndex < tileGridReplayScales.count(); ++scaleIndex) { |
SkScalar replayScale = tileGridReplayScales[scaleIndex]; |
if ((gmFlags & GM::kSkipScaledReplay_Flag) && replayScale != 1) |
@@ -1523,14 +1648,14 @@ int tool_main(int argc, char** argv) { |
ErrorBitfield pipeErrors = kEmptyErrorBitfield; |
- if ((kEmptyErrorBitfield == testErrors) && FLAGS_pipe) { |
+ if ((kEmptyErrorBitfield == testErrors) && doPipe) { |
pipeErrors |= gmmain.test_pipe_playback(gm, compareConfig, |
comparisonBitmap); |
} |
if ((kEmptyErrorBitfield == testErrors) && |
(kEmptyErrorBitfield == pipeErrors) && |
- FLAGS_tiledPipe && !(gmFlags & GM::kSkipTiled_Flag)) { |
+ doTiledPipe && !(gmFlags & GM::kSkipTiled_Flag)) { |
pipeErrors |= gmmain.test_tiled_pipe_playback(gm, compareConfig, |
comparisonBitmap); |
} |
@@ -1559,7 +1684,7 @@ int tool_main(int argc, char** argv) { |
testsRun, testsPassed, testsFailed, testsMissingReferenceImages); |
gmmain.ListErrors(); |
- if (FLAGS_writeJsonSummaryPath.count() == 1) { |
+ if (NULL != writeJsonSummaryPath) { |
Json::Value actualResults; |
actualResults[kJsonKey_ActualResults_Failed] = |
gmmain.fJsonActualResults_Failed; |
@@ -1573,7 +1698,7 @@ int tool_main(int argc, char** argv) { |
root[kJsonKey_ActualResults] = actualResults; |
root[kJsonKey_ExpectedResults] = gmmain.fJsonExpectedResults; |
std::string jsonStdString = root.toStyledString(); |
- SkFILEWStream stream(FLAGS_writeJsonSummaryPath[0]); |
+ SkFILEWStream stream(writeJsonSummaryPath); |
stream.write(jsonStdString.c_str(), jsonStdString.length()); |
} |
@@ -1599,12 +1724,6 @@ int tool_main(int argc, char** argv) { |
return (0 == testsFailed) ? 0 : -1; |
} |
-void GMMain::installFilter(SkCanvas* canvas) { |
- if (FLAGS_forceBWtext) { |
- canvas->setDrawFilter(SkNEW(BWTextDrawFilter))->unref(); |
- } |
-} |
- |
#if !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_NACL) |
int main(int argc, char * const argv[]) { |
return tool_main(argc, (char**) argv); |