aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2015-12-14 05:58:25 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2015-12-14 05:58:25 -0800
commit4ff653cab2e1e3cfb02c91df9c9013fc927aa1ee (patch)
tree23d046fed15c4bbfcd1039c92fe6612b8c993694 /tools
parent0b29b728cae6c3f3738b4cda0b786960d05dda2b (diff)
Revert of Add config options to run different GPU APIs to dm and nanobench (patchset #12 id:220001 of https://codereview.chromium.org/1490113005/ )
Reason for revert: speculative revert to see if it unblocks the DEPS roll https://codereview.chromium.org/1529443002 Original issue's description: > Add config options to run different GPU APIs to dm and nanobench > > Add extended config specification form that can be used to run different > gpu backend with different APIs. > > The configs can be specified with the form: > gpu(api=string,dit=bool,nvpr=bool,samples=int) > > This replaces and removes the --gpuAPI flag. > > All existing configs should still work. > > Adds following documentation: > > out/Debug/dm --help config > > Flags: > --config: type: string default: 565 8888 gpu nonrendering > Options: 565 8888 debug gpu gpudebug gpudft gpunull msaa16 msaa4 > nonrendering null nullgpu nvprmsaa16 nvprmsaa4 pdf pdf_poppler skp svg > xps or use extended form 'backend(option=value,...)'. > > Extended form: 'backend(option=value,...)' > > Possible backends and options: > > gpu(api=string,dit=bool,nvpr=bool,samples=int) GPU backend > api type: string default: native. > Select graphics API to use with gpu backend. > Options: > native Use platform default OpenGL or OpenGL ES backend. > gl Use OpenGL. > gles Use OpenGL ES. > debug Use debug OpenGL. > null Use null OpenGL. > dit type: bool default: false. > Use device independent text. > nvpr type: bool default: false. > Use NV_path_rendering OpenGL and OpenGL ES extension. > samples type: int default: 0. > Use multisampling with N samples. > > Predefined configs: > > gpu = gpu() > msaa4 = gpu(samples=4) > msaa16 = gpu(samples=16) > nvprmsaa4 = gpu(nvpr=true,samples=4) > nvprmsaa16 = gpu(nvpr=true,samples=16) > gpudft = gpu(dit=true) > gpudebug = gpu(api=debug) > gpunull = gpu(api=null) > debug = gpu(api=debug) > nullgpu = gpu(api=null) > > BUG=skia:2992 > > Committed: https://skia.googlesource.com/skia/+/e13ca329fca4c28cf4e078561f591ab27b743d23 TBR=bsalomon@google.com,scroggo@google.com,joshualitt@google.com,kkinnunen@nvidia.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia:2992 Review URL: https://codereview.chromium.org/1528473002
Diffstat (limited to 'tools')
-rw-r--r--tools/flags/SkCommandLineFlags.cpp59
-rw-r--r--tools/flags/SkCommandLineFlags.h34
-rw-r--r--tools/flags/SkCommonFlags.cpp10
-rw-r--r--tools/flags/SkCommonFlags.h2
-rw-r--r--tools/flags/SkCommonFlagsConfig.cpp332
-rw-r--r--tools/flags/SkCommonFlagsConfig.h70
6 files changed, 43 insertions, 464 deletions
diff --git a/tools/flags/SkCommandLineFlags.cpp b/tools/flags/SkCommandLineFlags.cpp
index cddf9fb0b3..9b2c9616cb 100644
--- a/tools/flags/SkCommandLineFlags.cpp
+++ b/tools/flags/SkCommandLineFlags.cpp
@@ -22,10 +22,8 @@ template <typename T> static void ignore_result(const T&) {}
bool SkFlagInfo::CreateStringFlag(const char* name, const char* shortName,
SkCommandLineFlags::StringArray* pStrings,
- const char* defaultValue, const char* helpString,
- const char* extendedHelpString) {
- SkFlagInfo* info = new SkFlagInfo(name, shortName, kString_FlagType, helpString,
- extendedHelpString);
+ const char* defaultValue, const char* helpString) {
+ SkFlagInfo* info = new SkFlagInfo(name, shortName, kString_FlagType, helpString);
info->fDefaultString.set(defaultValue);
info->fStrings = pStrings;
@@ -153,16 +151,29 @@ void SkCommandLineFlags::SetUsage(const char* usage) {
// Maximum line length for the help message.
#define LINE_LENGTH 72
-static void print_indented(const SkString& text) {
- size_t length = text.size();
- const char* currLine = text.c_str();
+static void print_help_for_flag(const SkFlagInfo* flag) {
+ SkDebugf(" --%s", flag->name().c_str());
+ const SkString& shortName = flag->shortName();
+ if (shortName.size() > 0) {
+ SkDebugf(" or -%s", shortName.c_str());
+ }
+ SkDebugf(":\ttype: %s", flag->typeAsString().c_str());
+ if (flag->defaultValue().size() > 0) {
+ SkDebugf("\tdefault: %s", flag->defaultValue().c_str());
+ }
+ SkDebugf("\n");
+ const SkString& help = flag->help();
+ size_t length = help.size();
+ const char* currLine = help.c_str();
const char* stop = currLine + length;
while (currLine < stop) {
- int lineBreak = SkStrFind(currLine, "\n");
- if (lineBreak < 0) {
- lineBreak = static_cast<int>(strlen(currLine));
+ if (strlen(currLine) < LINE_LENGTH) {
+ // Only one line length's worth of text left.
+ SkDebugf(" %s\n", currLine);
+ break;
}
- if (lineBreak > LINE_LENGTH) {
+ int lineBreak = SkStrFind(currLine, "\n");
+ if (lineBreak < 0 || lineBreak > LINE_LENGTH) {
// No line break within line length. Will need to insert one.
// Find a space before the line break.
int spaceIndex = LINE_LENGTH - 1;
@@ -187,26 +198,6 @@ static void print_indented(const SkString& text) {
currLine += lineBreak;
}
}
-}
-
-static void print_help_for_flag(const SkFlagInfo* flag) {
- SkDebugf(" --%s", flag->name().c_str());
- const SkString& shortName = flag->shortName();
- if (shortName.size() > 0) {
- SkDebugf(" or -%s", shortName.c_str());
- }
- SkDebugf(":\ttype: %s", flag->typeAsString().c_str());
- if (flag->defaultValue().size() > 0) {
- SkDebugf("\tdefault: %s", flag->defaultValue().c_str());
- }
- SkDebugf("\n");
- const SkString& help = flag->help();
- print_indented(help);
- SkDebugf("\n");
-}
-static void print_extended_help_for_flag(const SkFlagInfo* flag) {
- print_help_for_flag(flag);
- print_indented(flag->extendedHelp());
SkDebugf("\n");
}
@@ -257,10 +248,6 @@ void SkCommandLineFlags::Parse(int argc, char** argv) {
CompareFlagsByName());
for (int i = 0; i < allFlags.count(); ++i) {
print_help_for_flag(allFlags[i]);
- if (allFlags[i]->extendedHelp().size() > 0) {
- SkDebugf(" Use '--help %s' for more information.\n",
- allFlags[i]->name().c_str());
- }
}
} else {
for (SkFlagInfo* flag = SkCommandLineFlags::gHead; flag;
@@ -268,7 +255,7 @@ void SkCommandLineFlags::Parse(int argc, char** argv) {
for (int k = 0; k < helpFlags.count(); k++) {
if (flag->name().equals(helpFlags[k]) ||
flag->shortName().equals(helpFlags[k])) {
- print_extended_help_for_flag(flag);
+ print_help_for_flag(flag);
helpFlags.remove(k);
break;
}
diff --git a/tools/flags/SkCommandLineFlags.h b/tools/flags/SkCommandLineFlags.h
index 460b4c32d2..5909413523 100644
--- a/tools/flags/SkCommandLineFlags.h
+++ b/tools/flags/SkCommandLineFlags.h
@@ -76,11 +76,6 @@
* as its value. All strings that follow the flag on the command line (until
* a string that begins with '-') will be entries in the array.
*
- * DEFINE_extended_string(args, .., .., extendedHelpString);
- *
- * creates a similar string array flag as DEFINE_string. The flag will have extended help text
- * (extendedHelpString) that can the user can see with '--help <args>' flag.
- *
* Any flag can be referenced from another file after using the following:
*
* DECLARE_x(name);
@@ -209,15 +204,7 @@ SK_UNUSED static bool unused_##name = SkFlagInfo::CreateStringFlag(TO_STRING(nam
nullptr, \
&FLAGS_##name, \
defaultValue, \
- helpString, nullptr)
-#define DEFINE_extended_string(name, defaultValue, helpString, extendedHelpString) \
-SkCommandLineFlags::StringArray FLAGS_##name; \
-SK_UNUSED static bool unused_##name = SkFlagInfo::CreateStringFlag(TO_STRING(name), \
- nullptr, \
- &FLAGS_##name, \
- defaultValue, \
- helpString, \
- extendedHelpString)
+ helpString)
// string2 allows specifying a short name. There is an assert that shortName
// is only 1 character.
@@ -227,7 +214,7 @@ SK_UNUSED static bool unused_##name = SkFlagInfo::CreateStringFlag(TO_STRING(nam
TO_STRING(shortName), \
&FLAGS_##name, \
defaultValue, \
- helpString, nullptr)
+ helpString)
#define DECLARE_string(name) extern SkCommandLineFlags::StringArray FLAGS_##name;
@@ -286,7 +273,7 @@ public:
*/
static bool CreateBoolFlag(const char* name, const char* shortName, bool* pBool,
bool defaultValue, const char* helpString) {
- SkFlagInfo* info = new SkFlagInfo(name, shortName, kBool_FlagType, helpString, nullptr);
+ SkFlagInfo* info = new SkFlagInfo(name, shortName, kBool_FlagType, helpString);
info->fBoolValue = pBool;
*info->fBoolValue = info->fDefaultBool = defaultValue;
return true;
@@ -300,15 +287,14 @@ public:
*/
static bool CreateStringFlag(const char* name, const char* shortName,
SkCommandLineFlags::StringArray* pStrings,
- const char* defaultValue, const char* helpString,
- const char* extendedHelpString);
+ const char* defaultValue, const char* helpString);
/**
* See comments for CreateBoolFlag.
*/
static bool CreateIntFlag(const char* name, int32_t* pInt,
int32_t defaultValue, const char* helpString) {
- SkFlagInfo* info = new SkFlagInfo(name, nullptr, kInt_FlagType, helpString, nullptr);
+ SkFlagInfo* info = new SkFlagInfo(name, nullptr, kInt_FlagType, helpString);
info->fIntValue = pInt;
*info->fIntValue = info->fDefaultInt = defaultValue;
return true;
@@ -316,7 +302,7 @@ public:
static bool CreateIntFlag(const char* name, const char* shortName, int32_t* pInt,
int32_t defaultValue, const char* helpString) {
- SkFlagInfo* info = new SkFlagInfo(name, shortName, kInt_FlagType, helpString, nullptr);
+ SkFlagInfo* info = new SkFlagInfo(name, shortName, kInt_FlagType, helpString);
info->fIntValue = pInt;
*info->fIntValue = info->fDefaultInt = defaultValue;
return true;
@@ -327,7 +313,7 @@ public:
*/
static bool CreateDoubleFlag(const char* name, double* pDouble,
double defaultValue, const char* helpString) {
- SkFlagInfo* info = new SkFlagInfo(name, nullptr, kDouble_FlagType, helpString, nullptr);
+ SkFlagInfo* info = new SkFlagInfo(name, nullptr, kDouble_FlagType, helpString);
info->fDoubleValue = pDouble;
*info->fDoubleValue = info->fDefaultDouble = defaultValue;
return true;
@@ -397,7 +383,6 @@ public:
const SkString& shortName() const { return fShortName; }
const SkString& help() const { return fHelpString; }
- const SkString& extendedHelp() const { return fExtendedHelpString; }
SkString defaultValue() const {
SkString result;
@@ -436,13 +421,11 @@ public:
}
private:
- SkFlagInfo(const char* name, const char* shortName, FlagTypes type, const char* helpString,
- const char* extendedHelpString)
+ SkFlagInfo(const char* name, const char* shortName, FlagTypes type, const char* helpString)
: fName(name)
, fShortName(shortName)
, fFlagType(type)
, fHelpString(helpString)
- , fExtendedHelpString(extendedHelpString)
, fBoolValue(nullptr)
, fDefaultBool(false)
, fIntValue(nullptr)
@@ -470,7 +453,6 @@ private:
SkString fShortName;
FlagTypes fFlagType;
SkString fHelpString;
- SkString fExtendedHelpString;
bool* fBoolValue;
bool fDefaultBool;
int32_t* fIntValue;
diff --git a/tools/flags/SkCommonFlags.cpp b/tools/flags/SkCommonFlags.cpp
index a2da1314fc..9783dde373 100644
--- a/tools/flags/SkCommonFlags.cpp
+++ b/tools/flags/SkCommonFlags.cpp
@@ -7,6 +7,11 @@
#include "SkCommonFlags.h"
+DEFINE_string(config, "565 8888 gpu nonrendering angle hwui ", "Options: "
+ "565 8888 angle debug gpu gpudebug gpudft gpunull hwui mesa "
+ "msaa16 msaa4 nonrendering null nullgpu nvprmsaa16 nvprmsaa4 "
+ "pdf skp svg xps (and maybe more)");
+
DEFINE_bool(cpu, true, "master switch for running CPU-bound work.");
DEFINE_bool(dryRun, false,
@@ -14,6 +19,11 @@ DEFINE_bool(dryRun, false,
DEFINE_bool(gpu, true, "master switch for running GPU-bound work.");
+DEFINE_string(gpuAPI, "", "Force use of specific gpu API. Using \"gl\" "
+ "forces OpenGL API. Using \"gles\" forces OpenGL ES API. "
+ "Defaults to empty string, which selects the API native to the "
+ "system.");
+
DEFINE_string(images, "", "Directory of images to decode.");
DEFINE_string2(match, m, nullptr,
diff --git a/tools/flags/SkCommonFlags.h b/tools/flags/SkCommonFlags.h
index ddd8d3a4a2..d6fb2c1d9b 100644
--- a/tools/flags/SkCommonFlags.h
+++ b/tools/flags/SkCommonFlags.h
@@ -10,9 +10,11 @@
#include "SkCommandLineFlags.h"
+DECLARE_string(config);
DECLARE_bool(cpu);
DECLARE_bool(dryRun);
DECLARE_bool(gpu);
+DECLARE_string(gpuAPI);
DECLARE_string(images);
DECLARE_string(match);
DECLARE_bool(quiet);
diff --git a/tools/flags/SkCommonFlagsConfig.cpp b/tools/flags/SkCommonFlagsConfig.cpp
deleted file mode 100644
index 82ac49340e..0000000000
--- a/tools/flags/SkCommonFlagsConfig.cpp
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#include "SkCommonFlagsConfig.h"
-
-#include <stdlib.h>
-
-static const char defaultConfigs[] =
- "565 8888 gpu nonrendering"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- " angle"
-#endif
-#endif
-#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
- " hwui"
-#endif
- ;
-
-static const char configHelp[] =
- "Options: 565 8888 debug gpu gpudebug gpudft gpunull "
- "msaa16 msaa4 nonrendering null nullgpu nvprmsaa16 nvprmsaa4 "
- "pdf pdf_poppler skp svg xps"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- " angle"
-#endif
- " angle-gl"
-#endif
-#if SK_COMMAND_BUFFER
- " commandbuffer"
-#endif
-#if SK_MESA
- " mesa"
-#endif
-#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
- " hwui"
-#endif
- " or use extended form 'backend(option=value,...)'.\n";
-
-static const char configExtendedHelp[] =
- "Extended form: 'backend(option=value,...)'\n\n"
- "Possible backends and options:\n"
-#if SK_SUPPORT_GPU
- "\n"
- "gpu(api=string,dit=bool,nvpr=bool,samples=int)\tGPU backend\n"
- "\tapi\ttype: string\tdefault: native.\n"
- "\t Select graphics API to use with gpu backend.\n"
- "\t Options:\n"
- "\t\tnative\t\t\tUse platform default OpenGL or OpenGL ES backend.\n"
- "\t\tgl \t\t\tUse OpenGL.\n"
- "\t\tgles \t\t\tUse OpenGL ES.\n"
- "\t\tdebug \t\t\tUse debug OpenGL.\n"
- "\t\tnull \t\t\tUse null OpenGL.\n"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- "\t\tangle\t\t\tUse ANGLE DirectX.\n"
-#endif
- "\t\tangle-gl\t\t\tUse ANGLE OpenGL.\n"
-#endif
-#if SK_COMMAND_BUFFER
- "\t\tcommandbuffer\t\tUse command buffer.\n"
-#endif
-#if SK_MESA
- "\t\tmesa\t\t\tUse MESA.\n"
-#endif
- "\tdit\ttype: bool\tdefault: false.\n"
- "\t Use device independent text.\n"
- "\tnvpr\ttype: bool\tdefault: false.\n"
- "\t Use NV_path_rendering OpenGL and OpenGL ES extension.\n"
- "\tsamples\ttype: int\tdefault: 0.\n"
- "\t Use multisampling with N samples.\n"
- "\n"
- "Predefined configs:\n\n"
- "\tgpu \t= gpu()\n"
- "\tmsaa4 \t= gpu(samples=4)\n"
- "\tmsaa16 \t= gpu(samples=16)\n"
- "\tnvprmsaa4\t= gpu(nvpr=true,samples=4)\n"
- "\tnvprmsaa16\t= gpu(nvpr=true,samples=16)\n"
- "\tgpudft \t= gpu(dit=true)\n"
- "\tgpudebug \t= gpu(api=debug)\n"
- "\tgpunull \t= gpu(api=null)\n"
- "\tdebug \t= gpu(api=debug)\n"
- "\tnullgpu \t= gpu(api=null)\n"
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- "\tangle \t= gpu(api=angle)\n"
-#endif
- "\tangle-gl \t= gpu(api=angle-gl)\n"
-#endif
-#if SK_COMMAND_BUFFER
- "\tcommandbuffer\t= gpu(api=commandbuffer)\n"
-#endif
-#if SK_MESA
- "\tmesa \t= gpu(api=mesa)\n"
-#endif
-#endif
- ;
-
-DEFINE_extended_string(config, defaultConfigs, configHelp, configExtendedHelp);
-
-static const struct {
- const char* predefinedConfig;
- const char* backend;
- const char* options;
-} gPredefinedConfigs[] = {
-#if SK_SUPPORT_GPU
- { "gpu", "gpu", "" },
- { "msaa4", "gpu", "samples=4" },
- { "msaa16", "gpu", "samples=16" },
- { "nvprmsaa4", "gpu", "nvpr=true,samples=4" },
- { "nvprmsaa16", "gpu", "nvpr=true,samples=16" },
- { "gpudft", "gpu", "dit=true" },
- { "gpudebug", "gpu", "api=debug" },
- { "gpunull", "gpu", "api=null" },
- { "debug", "gpu", "api=debug" },
- { "nullgpu", "gpu", "api=null" }
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- , { "angle", "gpu", "api=angle" }
-#endif
- , { "angle-gl", "gpu", "api=angle-gl" }
-#endif
-#if SK_COMMAND_BUFFER
- , { "commandbuffer", "gpu", "api=commandbuffer" }
-#endif
-#if SK_MESA
- , { "mesa", "gpu", "api=mesa" }
-#endif
-#else
- { "", "", "" }
-#endif
-};
-
-SkCommandLineConfig::SkCommandLineConfig(const SkString& tag, const SkTArray<SkString>& viaParts)
- : fTag(tag)
- , fViaParts(viaParts) {
-}
-SkCommandLineConfig::~SkCommandLineConfig() {
-}
-
-#if SK_SUPPORT_GPU
-SkCommandLineConfigGpu::SkCommandLineConfigGpu(
- const SkString& tag, const SkTArray<SkString>& viaParts,
- ContextType contextType, bool useNVPR, bool useDIText, int samples)
- : SkCommandLineConfig(tag, viaParts)
- , fContextType(contextType)
- , fUseNVPR(useNVPR)
- , fUseDIText(useDIText)
- , fSamples(samples) {
-}
-static bool parse_option_int(const SkString& value, int* outInt) {
- if (value.isEmpty()) {
- return false;
- }
- char* endptr = nullptr;
- long intValue = strtol(value.c_str(), &endptr, 10);
- if (*endptr != '\0') {
- return false;
- }
- *outInt = static_cast<int>(intValue);
- return true;
-}
-static bool parse_option_bool(const SkString& value, bool* outBool) {
- if (value.equals("true")) {
- *outBool = true;
- return true;
- }
- if (value.equals("false")) {
- *outBool = false;
- return true;
- }
- return false;
-}
-static bool parse_option_gpu_api(const SkString& value,
- SkCommandLineConfigGpu::ContextType* outContextType) {
- if (value.equals("native")) {
- *outContextType = GrContextFactory::kNative_GLContextType;
- return true;
- }
- if (value.equals("gl")) {
- *outContextType = GrContextFactory::kGL_GLContextType;
- return true;
- }
- if (value.equals("gles")) {
- *outContextType = GrContextFactory::kGLES_GLContextType;
- return true;
- }
- if (value.equals("debug")) {
- *outContextType = GrContextFactory::kDebug_GLContextType;
- return true;
- }
- if (value.equals("null")) {
- *outContextType = GrContextFactory::kNull_GLContextType;
- return true;
- }
-#if SK_ANGLE
-#ifdef SK_BUILD_FOR_WIN
- if (value.equals("angle")) {
- *outContextType = GrContextFactory::kANGLE_GLContextType;
- return true;
- }
-#endif
- if (value.equals("angle-gl")) {
- *outContextType = GrContextFactory::kANGLE_GL_GLContextType;
- return true;
- }
-#endif
-#if SK_COMMAND_BUFFER
- if (value.equals("commandbuffer")) {
- *outContextType = GrContextFactory::kCommandBuffer_GLContextType;
- return true;
- }
-#endif
-#if SK_MESA
- if (value.equals("mesa")) {
- *outContextType = GrContextFactory::kMESA_GLContextType;
- return true;
- }
-#endif
- return false;
-}
-
-SkCommandLineConfigGpu* parse_command_line_config_gpu(const SkString& tag,
- const SkTArray<SkString>& vias,
- const SkString& options) {
- // Defaults for GPU backend.
- bool seenAPI = false;
- SkCommandLineConfigGpu::ContextType contextType = GrContextFactory::kNative_GLContextType;
- bool seenUseNVPR = false;
- bool useNVPR = false;
- bool seenUseDIText =false;
- bool useDIText = false;
- bool seenSamples = false;
- int samples = 0;
-
- SkTArray<SkString> optionParts;
- SkStrSplit(options.c_str(), ",", kStrict_SkStrSplitMode, &optionParts);
- for (int i = 0; i < optionParts.count(); ++i) {
- SkTArray<SkString> keyValueParts;
- SkStrSplit(optionParts[i].c_str(), "=", kStrict_SkStrSplitMode, &keyValueParts);
- if (keyValueParts.count() != 2) {
- return nullptr;
- }
- const SkString& key = keyValueParts[0];
- const SkString& value = keyValueParts[1];
- bool valueOk = false;
- if (key.equals("api") && !seenAPI) {
- valueOk = parse_option_gpu_api(value, &contextType);
- seenAPI = true;
- } else if (key.equals("nvpr") && !seenUseNVPR) {
- valueOk = parse_option_bool(value, &useNVPR);
- seenUseNVPR = true;
- } else if (key.equals("dit") && !seenUseDIText) {
- valueOk = parse_option_bool(value, &useDIText);
- seenUseDIText = true;
- } else if (key.equals("samples") && !seenSamples) {
- valueOk = parse_option_int(value, &samples);
- seenSamples = true;
- }
- if (!valueOk) {
- return nullptr;
- }
- }
- return new SkCommandLineConfigGpu(tag, vias, contextType, useNVPR, useDIText, samples);
-}
-#endif
-
-void ParseConfigs(const SkCommandLineFlags::StringArray& configs,
- SkCommandLineConfigArray* outResult) {
- outResult->reset();
- for (int i = 0; i < configs.count(); ++i) {
- SkString extendedConfigBackend;
- SkString extendedConfigOptions;
- SkString tag(configs[i]);
- SkTArray<SkString> vias;
-
- SkTArray<SkString> parts;
- SkStrSplit(tag.c_str(), "(", kStrict_SkStrSplitMode, &parts);
- if (parts.count() == 2) {
- SkTArray<SkString> parts2;
- SkStrSplit(parts[1].c_str(), ")", kStrict_SkStrSplitMode, &parts2);
- if (parts2.count() == 2 && parts2[1].isEmpty()) {
- SkStrSplit(parts[0].c_str(), "-", kStrict_SkStrSplitMode, &vias);
- if (vias.count()) {
- extendedConfigBackend = vias[vias.count() - 1];
- vias.pop_back();
- } else {
- extendedConfigBackend = parts[0];
- }
- extendedConfigOptions = parts2[0];
- tag.printf("%s(%s)", extendedConfigBackend.c_str(), extendedConfigOptions.c_str());
- }
- }
- if (extendedConfigBackend.isEmpty()) {
- SkStrSplit(tag.c_str(), "-", kStrict_SkStrSplitMode, &vias);
- if (vias.count()) {
- tag = vias[vias.count() - 1];
- vias.pop_back();
- }
- // Note: no #if SK_ANGLE: this is a special rule in the via-tag grammar.
- if (vias.count() && tag.equals("gl") && vias[vias.count() - 1].equals("angle")) {
- tag = "angle-gl";
- vias.pop_back();
- }
- }
- if (extendedConfigBackend.isEmpty()) {
- for (auto& predefinedConfig : gPredefinedConfigs) {
- if (tag.equals(predefinedConfig.predefinedConfig)) {
- extendedConfigBackend = predefinedConfig.backend;
- extendedConfigOptions = predefinedConfig.options;
- break;
- }
- }
- }
-
- SkCommandLineConfig* parsedConfig = nullptr;
-#if SK_SUPPORT_GPU
- if (extendedConfigBackend.equals("gpu")) {
- parsedConfig = parse_command_line_config_gpu(tag, vias, extendedConfigOptions);
- }
-#endif
- if (!parsedConfig) {
- parsedConfig = new SkCommandLineConfig(tag, vias);
- }
- outResult->emplace_back(parsedConfig);
- }
-}
diff --git a/tools/flags/SkCommonFlagsConfig.h b/tools/flags/SkCommonFlagsConfig.h
deleted file mode 100644
index 54a076900e..0000000000
--- a/tools/flags/SkCommonFlagsConfig.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SK_COMMON_FLAGS_CONFIG_H
-#define SK_COMMON_FLAGS_CONFIG_H
-
-#include "SkCommandLineFlags.h"
-
-#if SK_SUPPORT_GPU
-#include "GrContextFactory.h"
-#endif
-
-DECLARE_string(config);
-
-#if SK_SUPPORT_GPU
-class SkCommandLineConfigGpu;
-#endif
-
-// SkCommandLineConfig represents a Skia rendering configuration string.
-// The string has following form:
-// [via-]*tag
-// where 'tag' consists of chars excluding hyphen or "angle-gl"
-// and each 'via' consists of chars excluding hyphen.
-class SkCommandLineConfig {
- public:
- SkCommandLineConfig(const SkString& tag, const SkTArray<SkString>& viaParts);
- virtual ~SkCommandLineConfig();
-#if SK_SUPPORT_GPU
- virtual const SkCommandLineConfigGpu* asConfigGpu() const { return nullptr; }
-#endif
- const SkString& getTag() const { return fTag; }
- const SkTArray<SkString>& getViaParts() const { return fViaParts; }
- private:
- SkString fTag;
- SkTArray<SkString> fViaParts;
-};
-
-#if SK_SUPPORT_GPU
-// SkCommandLineConfigGpu is a SkCommandLineConfig that extracts information out of the tag. It is
-// constructed configs that have:
-// * tags of form "gpu(option=value,option2=value,...)"
-// * tags that represent a shorthand of above (such as "msaa16" representing "gpu(samples=16)")
-class SkCommandLineConfigGpu : public SkCommandLineConfig {
- public:
- typedef GrContextFactory::GLContextType ContextType;
- SkCommandLineConfigGpu(const SkString& tag, const SkTArray<SkString>& viaParts,
- ContextType contextType, bool useNVPR, bool useDIText, int samples);
- const SkCommandLineConfigGpu* asConfigGpu() const override { return this; }
- ContextType getContextType() const { return fContextType; }
- bool getUseNVPR() const { return fUseNVPR; }
- bool getUseDIText() const { return fUseDIText; }
- int getSamples() const { return fSamples; }
-
- private:
- ContextType fContextType;
- bool fUseNVPR;
- bool fUseDIText;
- int fSamples;
-};
-#endif
-
-typedef SkTArray<SkAutoTDelete<SkCommandLineConfig>, true> SkCommandLineConfigArray;
-void ParseConfigs(const SkCommandLineFlags::StringArray& configList,
- SkCommandLineConfigArray* outResult);
-
-#endif