7 static void print_usage(const char *argv0);
14 1, /* anti-aliasing */
18 int parse_args(int argc, char **argv)
22 for(i=1; i<argc; i++) {
23 if(strcmp(argv[i], "-s") == 0 || strcmp(argv[i], "-size") == 0) {
24 if(sscanf(argv[++i], "%dx%d", &opt.width, &opt.height) != 2) {
25 fprintf(stderr, "%s must be followed by <width>x<height>\n", argv[-1]);
28 } else if(strcmp(argv[i], "-fs") == 0) {
30 } else if(strcmp(argv[i], "-win") == 0) {
32 } else if(strcmp(argv[i], "-srgb") == 0) {
34 } else if(strcmp(argv[i], "-nosrgb") == 0) {
36 } else if(strcmp(argv[i], "-aa") == 0) {
38 } else if(strcmp(argv[i], "-noaa") == 0) {
40 } else if(strcmp(argv[i], "-music") == 0) {
42 } else if(strcmp(argv[i], "-nomusic") == 0) {
44 } else if(strcmp(argv[i], "-vsync") == 0) {
46 } else if(strcmp(argv[i], "-novsync") == 0) {
48 } else if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-help") == 0) {
52 fprintf(stderr, "invalid argument: %s\n", argv[i]);
60 static void print_usage(const char *argv0)
62 printf("Usage: %s [options]\n", argv0);
63 printf(" -fs: fullscr\n");
64 printf(" -win: windowed\n");
65 printf(" -s,-size <WxH>: windowed resolution\n");
66 printf(" -srgb/-nosrgb: enable/disable sRGB framebuffer\n");
67 printf(" -aa/-noaa: enable/disable multisample anti-aliasing\n");
68 printf(" -music/-nomusic: enable/disable music playback\n");
69 printf(" -vsync/-novsync: enable/disable vertical sync\n");
70 printf(" -h,-help: print usage and exit\n");
73 int read_cfg(const char *fname)
77 if(!(ts = ts_load(fname))) {
80 opt.width = ts_lookup_int(ts, "demo.width", opt.width);
81 opt.height = ts_lookup_int(ts, "demo.height", opt.height);
82 opt.fullscr = ts_lookup_int(ts, "demo.fullscreen", opt.fullscr);
83 opt.music = ts_lookup_int(ts, "demo.music", opt.music);
84 opt.srgb = ts_lookup_int(ts, "demo.srgb", opt.srgb);
85 opt.msaa = ts_lookup_int(ts, "demo.aa", opt.msaa);
86 opt.vsync = ts_lookup_int(ts, "demo.vsync", opt.vsync);