7 static void print_usage(const char *argv0);
17 int parse_args(int argc, char **argv)
21 for(i=1; i<argc; i++) {
22 if(strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "-size") == 0) {
23 if(sscanf(argv[++i], "%dx%d", &opt.width, &opt.height) != 2) {
24 fprintf(stderr, "%s must be followed by <width>x<height>\n", argv[-1]);
27 } else if(strcmp(argv[i], "-fs") == 0) {
29 } else if(strcmp(argv[i], "-win") == 0) {
31 } else if(strcmp(argv[i], "-srgb") == 0) {
33 } else if(strcmp(argv[i], "-nosrgb") == 0) {
35 } else if(strcmp(argv[i], "-aa") == 0) {
37 } else if(strcmp(argv[i], "-noaa") == 0) {
39 } else if(strcmp(argv[i], "-music") == 0) {
41 } else if(strcmp(argv[i], "-nomusic") == 0) {
43 } else if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {
47 fprintf(stderr, "invalid argument: %s\n", argv[i]);
55 static void print_usage(const char *argv0)
57 printf("Usage: %s [options]\n", argv0);
58 printf(" -fs: fullscr\n");
59 printf(" -win: windowed\n");
60 printf(" -s,-size <WxH>: windowed resolution\n");
61 printf(" -srgb/-nosrgb: enable/disable sRGB framebuffer\n");
62 printf(" -aa/-noaa: enable/disable multisample anti-aliasing\n");
63 printf(" -music/-nomusic: enable/disable music playback\n");
64 printf(" -h,-help: print usage and exit\n");
67 int read_cfg(const char *fname)
71 if(!(ts = ts_load(fname))) {
74 opt.width = ts_lookup_int(ts, "demo.width", opt.width);
75 opt.height = ts_lookup_int(ts, "demo.height", opt.height);
76 opt.fullscr = ts_lookup_int(ts, "demo.fullscreen", opt.fullscr);
77 opt.music = ts_lookup_int(ts, "demo.music", opt.music);
78 opt.srgb = ts_lookup_int(ts, "demo.srgb", opt.srgb);
79 opt.msaa = ts_lookup_int(ts, "demo.aa", opt.msaa);