mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-05 03:15:07 -04:00
add -l option
This commit is contained in:
parent
f367e64cb5
commit
f4b1a218d6
@ -17,6 +17,7 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include "pandaFramework.h"
|
#include "pandaFramework.h"
|
||||||
|
#include "textNode.h"
|
||||||
|
|
||||||
#ifndef HAVE_GETOPT
|
#ifndef HAVE_GETOPT
|
||||||
#include "gnu_getopt.h"
|
#include "gnu_getopt.h"
|
||||||
@ -72,6 +73,11 @@ help() {
|
|||||||
" Automatically center models within the viewing window on startup.\n"
|
" Automatically center models within the viewing window on startup.\n"
|
||||||
" This can also be achieved with the 'c' hotkey at runtime.\n\n"
|
" This can also be achieved with the 'c' hotkey at runtime.\n\n"
|
||||||
|
|
||||||
|
" -l\n"
|
||||||
|
" Open the window before loading any models with the text \"Loading\"\n"
|
||||||
|
" displayed in the window. The default is not to open the window\n"
|
||||||
|
" until all models are loaded.\n\n"
|
||||||
|
|
||||||
" -h\n"
|
" -h\n"
|
||||||
" Display this help text.\n\n";
|
" Display this help text.\n\n";
|
||||||
}
|
}
|
||||||
@ -82,10 +88,11 @@ main(int argc, char *argv[]) {
|
|||||||
framework.set_window_title("Panda Viewer");
|
framework.set_window_title("Panda Viewer");
|
||||||
|
|
||||||
bool auto_center = false;
|
bool auto_center = false;
|
||||||
|
bool show_loading = false;
|
||||||
|
|
||||||
// extern char *optarg;
|
// extern char *optarg;
|
||||||
extern int optind;
|
extern int optind;
|
||||||
static const char *optflags = "ch";
|
static const char *optflags = "clh";
|
||||||
int flag = getopt(argc, argv, optflags);
|
int flag = getopt(argc, argv, optflags);
|
||||||
|
|
||||||
while (flag != EOF) {
|
while (flag != EOF) {
|
||||||
@ -94,6 +101,10 @@ main(int argc, char *argv[]) {
|
|||||||
auto_center = true;
|
auto_center = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'l':
|
||||||
|
show_loading = true;
|
||||||
|
break;
|
||||||
|
|
||||||
case 'h':
|
case 'h':
|
||||||
help();
|
help();
|
||||||
return 1;
|
return 1;
|
||||||
@ -113,6 +124,26 @@ main(int argc, char *argv[]) {
|
|||||||
if (window != (WindowFramework *)NULL) {
|
if (window != (WindowFramework *)NULL) {
|
||||||
// We've successfully opened a window.
|
// We've successfully opened a window.
|
||||||
|
|
||||||
|
NodePath loading_np;
|
||||||
|
|
||||||
|
if (show_loading) {
|
||||||
|
// Put up a "loading" message for the user's benefit.
|
||||||
|
NodePath aspect_2d = window->get_aspect_2d();
|
||||||
|
PT(TextNode) loading = new TextNode("loading");
|
||||||
|
loading_np = aspect_2d.attach_new_node(loading);
|
||||||
|
loading_np.set_scale(0.125f);
|
||||||
|
loading->set_text_color(1.0f, 1.0f, 1.0f, 1.0f);
|
||||||
|
loading->set_shadow_color(0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
|
loading->set_shadow(0.04f, 0.04f);
|
||||||
|
loading->set_align(TextNode::A_center);
|
||||||
|
loading->set_text("Loading...");
|
||||||
|
|
||||||
|
// Allow a couple of frames to go by so the window will be fully
|
||||||
|
// created and the text will be visible.
|
||||||
|
framework.do_frame();
|
||||||
|
framework.do_frame();
|
||||||
|
}
|
||||||
|
|
||||||
window->enable_keyboard();
|
window->enable_keyboard();
|
||||||
window->setup_trackball();
|
window->setup_trackball();
|
||||||
framework.get_models().instance_to(window->get_render());
|
framework.get_models().instance_to(window->get_render());
|
||||||
@ -123,6 +154,7 @@ main(int argc, char *argv[]) {
|
|||||||
window->load_models(framework.get_models(), argc, argv);
|
window->load_models(framework.get_models(), argc, argv);
|
||||||
}
|
}
|
||||||
window->loop_animations();
|
window->loop_animations();
|
||||||
|
loading_np.remove_node();
|
||||||
|
|
||||||
if (auto_center) {
|
if (auto_center) {
|
||||||
window->center_trackball(framework.get_models());
|
window->center_trackball(framework.get_models());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user