aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/render_pictures_main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render_pictures_main.cpp')
-rw-r--r--tools/render_pictures_main.cpp47
1 files changed, 45 insertions, 2 deletions
diff --git a/tools/render_pictures_main.cpp b/tools/render_pictures_main.cpp
index e1a1eff6eb..48139cebff 100644
--- a/tools/render_pictures_main.cpp
+++ b/tools/render_pictures_main.cpp
@@ -23,7 +23,12 @@ static void usage(const char* argv0) {
SkDebugf("\n"
"Usage: \n"
" %s <input>... <outputDir> \n"
-" [--mode pipe | simple | tile width[%] height[%]]"
+" [--mode pipe | simple | tile width[%] height[%]]\n"
+" [--device bitmap"
+#if SK_SUPPORT_GPU
+" | gpu"
+#endif
+"]"
, argv0);
SkDebugf("\n\n");
SkDebugf(
@@ -41,6 +46,19 @@ static void usage(const char* argv0) {
SkDebugf(
" tile width[%] height[%], Do a simple render using tiles\n"
" with the given dimensions.\n");
+ SkDebugf("\n");
+ SkDebugf(
+" --device bitmap"
+#if SK_SUPPORT_GPU
+" | gpu"
+#endif
+": Use the corresponding device. Default is bitmap.\n");
+ SkDebugf(
+" bitmap, Render to a bitmap.\n");
+ SkDebugf(
+#if SK_SUPPORT_GPU
+" gpu, Render to the GPU.\n");
+#endif
}
static void make_output_filepath(SkString* path, const SkString& dir,
@@ -129,6 +147,9 @@ static void parse_commandline(int argc, char* const argv[], SkTArray<SkString>*
const char* argv0 = argv[0];
char* const* stop = argv + argc;
+ sk_tools::PictureRenderer::SkDeviceTypes deviceType =
+ sk_tools::PictureRenderer::kBitmap_DeviceType;
+
for (++argv; argv < stop; ++argv) {
if (0 == strcmp(*argv, "--mode")) {
SkDELETE(renderer);
@@ -202,6 +223,28 @@ static void parse_commandline(int argc, char* const argv[], SkTArray<SkString>*
usage(argv0);
exit(-1);
}
+ } else if (0 == strcmp(*argv, "--device")) {
+ ++argv;
+ if (argv >= stop) {
+ SkDebugf("Missing mode for --deivce\n");
+ usage(argv0);
+ exit(-1);
+ }
+
+ if (0 == strcmp(*argv, "bitmap")) {
+ deviceType = sk_tools::PictureRenderer::kBitmap_DeviceType;
+ }
+#if SK_SUPPORT_GPU
+ else if (0 == strcmp(*argv, "gpu")) {
+ deviceType = sk_tools::PictureRenderer::kGPU_DeviceType;
+ }
+#endif
+ else {
+ SkDebugf("%s is not a valid mode for --device\n", *argv);
+ usage(argv0);
+ exit(-1);
+ }
+
} else if ((0 == strcmp(*argv, "-h")) || (0 == strcmp(*argv, "--help"))) {
SkDELETE(renderer);
usage(argv0);
@@ -221,7 +264,7 @@ static void parse_commandline(int argc, char* const argv[], SkTArray<SkString>*
renderer = SkNEW(sk_tools::SimplePictureRenderer);
}
- renderer->setUseGpuDevice();
+ renderer->setDeviceType(deviceType);
}
int main(int argc, char* const argv[]) {