int main(int argc, char **argv) { assert(compare_frequency.empty()); assert(snapshot_frequency.empty()); int i; for (i = 1; i < argc; ++i) { const char *arg = argv[i]; if (arg[0] != '-') { break; } if (!strcmp(arg, "--")) { break; } else if (!strcmp(arg, "-b")) { benchmark = true; retrace::verbosity = -1; glws::debug = false; } else if (!strcmp(arg, "-p")) { retrace::profiling = true; retrace::verbosity = -1; glws::debug = false; } else if (!strcmp(arg, "-c")) { compare_prefix = argv[++i]; if (compare_frequency.empty()) { compare_frequency = trace::CallSet(trace::FREQUENCY_FRAME); } } else if (!strcmp(arg, "-C")) { compare_frequency = trace::CallSet(argv[++i]); if (compare_prefix == NULL) { compare_prefix = ""; } } else if (!strcmp(arg, "-D")) { dump_state = atoi(argv[++i]); retrace::verbosity = -2; } else if (!strcmp(arg, "-core")) { defaultProfile = glws::PROFILE_CORE; } else if (!strcmp(arg, "-db")) { double_buffer = true; } else if (!strcmp(arg, "-sb")) { double_buffer = false; } else if (!strcmp(arg, "--help")) { usage(); return 0; } else if (!strcmp(arg, "-s")) { snapshot_prefix = argv[++i]; if (snapshot_frequency.empty()) { snapshot_frequency = trace::CallSet(trace::FREQUENCY_FRAME); } if (snapshot_prefix[0] == '-' && snapshot_prefix[1] == 0) { os::setBinaryMode(stdout); retrace::verbosity = -2; } } else if (!strcmp(arg, "-S")) { snapshot_frequency = trace::CallSet(argv[++i]); if (snapshot_prefix == NULL) { snapshot_prefix = ""; } } else if (!strcmp(arg, "-v")) { ++retrace::verbosity; } else if (!strcmp(arg, "-w")) { wait = true; } else { std::cerr << "error: unknown option " << arg << "\n"; usage(); return 1; } } glws::init(); visual[glws::PROFILE_COMPAT] = glws::createVisual(double_buffer, glws::PROFILE_COMPAT); visual[glws::PROFILE_CORE] = glws::createVisual(double_buffer, glws::PROFILE_CORE); visual[glws::PROFILE_ES1] = glws::createVisual(double_buffer, glws::PROFILE_ES1); visual[glws::PROFILE_ES2] = glws::createVisual(double_buffer, glws::PROFILE_ES2); for ( ; i < argc; ++i) { if (!parser.open(argv[i])) { std::cerr << "error: failed to open " << argv[i] << "\n"; return 1; } display(); parser.close(); } for (int n = 0; n < glws::PROFILE_MAX; n++) { delete visual[n]; } glws::cleanup(); return 0; }
int main(int argc, char **argv) { int i; for (i = 1; i < argc; ++i) { const char *arg = argv[i]; if (arg[0] != '-') { break; } if (!strcmp(arg, "--")) { break; } else if (!strcmp(arg, "-b")) { benchmark = true; retrace::verbosity = -1; } else if (!strcmp(arg, "-c")) { compare_prefix = argv[++i]; if (snapshot_frequency == FREQUENCY_NEVER) { snapshot_frequency = FREQUENCY_FRAME; } } else if (!strcmp(arg, "-D")) { dump_state = atoi(argv[++i]); retrace::verbosity = -2; } else if (!strcmp(arg, "-db")) { double_buffer = true; } else if (!strcmp(arg, "-sb")) { double_buffer = false; } else if (!strcmp(arg, "--help")) { usage(); return 0; } else if (!strcmp(arg, "-s")) { snapshot_prefix = argv[++i]; if (snapshot_frequency == FREQUENCY_NEVER) { snapshot_frequency = FREQUENCY_FRAME; } } else if (!strcmp(arg, "-S")) { arg = argv[++i]; if (!strcmp(arg, "frame")) { snapshot_frequency = FREQUENCY_FRAME; } else if (!strcmp(arg, "framebuffer")) { snapshot_frequency = FREQUENCY_FRAMEBUFFER; } else if (!strcmp(arg, "draw")) { snapshot_frequency = FREQUENCY_DRAW; } else { std::cerr << "error: unknown frequency " << arg << "\n"; usage(); return 1; } if (snapshot_prefix == NULL) { snapshot_prefix = ""; } } else if (!strcmp(arg, "-v")) { ++retrace::verbosity; } else if (!strcmp(arg, "-w")) { wait = true; } else { std::cerr << "error: unknown option " << arg << "\n"; usage(); return 1; } } ws = glws::createNativeWindowSystem(); visual = ws->createVisual(double_buffer); for ( ; i < argc; ++i) { if (!parser.open(argv[i])) { std::cerr << "error: failed to open " << argv[i] << "\n"; return 1; } display(); parser.close(); } return 0; }