diff --git a/doc/man/pview.1 b/doc/man/pview.1 index a45fb8110f..7b5a5520c0 100644 --- a/doc/man/pview.1 +++ b/doc/man/pview.1 @@ -1,4 +1,4 @@ -.TH PVIEW 1 "27 December 2014" "" Panda3D +.TH PVIEW 1 "1 May 2015" "" Panda3D .SH NAME pview \- quickly view a Panda model and/or animation .SH SYNOPSIS @@ -43,6 +43,15 @@ exit. Delete the model files after loading them (presumably this option will only be used when loading a temporary model file). .TP +.B \-L +Enable lighting in the scene. This can also be achieved with +the 'l' hotkey at runtime. +.TP +.BI "\-P " pipename +Select the given graphics pipe for the window, rather than using +the platform default. The allowed values for are those +from the Config.prc variables 'load-display' and 'aux-display'. +.TP .B \-V Report the current version of Panda, and exit. .TP diff --git a/panda/src/testbed/pview.cxx b/panda/src/testbed/pview.cxx index 5d5b9ba113..e92df5d220 100644 --- a/panda/src/testbed/pview.cxx +++ b/panda/src/testbed/pview.cxx @@ -26,6 +26,7 @@ #include "virtualFileSystem.h" #include "panda_getopt.h" #include "preprocess_argv.h" +#include "graphicsPipeSelection.h" // By including checkPandaVersion.h, we guarantee that runtime // attempts to run pview will fail if it inadvertently links with the @@ -209,6 +210,15 @@ help() { " Delete the model files after loading them (presumably this option\n" " will only be used when loading a temporary model file).\n\n" + " -L\n" + " Enable lighting in the scene. This can also be achieved with\n" + " the 'l' hotkey at runtime.\n\n" + + " -P \n" + " Select the given graphics pipe for the window, rather than using\n" + " the platform default. The allowed values for are those\n" + " from the Config.prc variables 'load-display' and 'aux-display'.\n\n" + " -V\n" " Report the current version of Panda, and exit.\n\n" @@ -241,10 +251,12 @@ main(int argc, char **argv) { PartGroup::HMF_ok_anim_extra; Filename screenshotfn; bool delete_models = false; + bool apply_lighting = false; + PointerTo pipe = NULL; extern char *optarg; extern int optind; - static const char *optflags = "acls:DVhi"; + static const char *optflags = "acls:DVhiLP:"; int flag = getopt(argc, argv, optflags); while (flag != EOF) { @@ -275,6 +287,19 @@ main(int argc, char **argv) { delete_models = true; break; + case 'L': + apply_lighting = true; + break; + + case 'P': { + pipe = GraphicsPipeSelection::get_global_ptr()->make_module_pipe(optarg); + if (!pipe) { + cerr << "No such pipe '" << optarg << "' available." << endl; + return 1; + } + break; + } + case 'V': report_version(); return 1; @@ -296,7 +321,7 @@ main(int argc, char **argv) { argc -= (optind - 1); argv += (optind - 1); - WindowFramework *window = framework.open_window(); + WindowFramework *window = framework.open_window(pipe, NULL); if (window != (WindowFramework *)NULL) { // We've successfully opened a window. @@ -348,6 +373,10 @@ main(int argc, char **argv) { loading_np.remove_node(); + if (apply_lighting) { + window->set_lighting(true); + } + if (auto_center) { window->center_trackball(framework.get_models()); }