# HG changeset patch # User Matti Hamalainen # Date 1576444589 -7200 # Node ID 1327ef5dc9fb4f311a3699b83ea37c03831c3cfc # Parent 1d24faa5bfb96dae1c7c4b305847a6cf7cad2fcb Remove -w and -h options and replace them with -s x. diff -r 1d24faa5bfb9 -r 1327ef5dc9fb gldragon.cpp --- a/gldragon.cpp Sun Dec 15 22:28:48 2019 +0200 +++ b/gldragon.cpp Sun Dec 15 23:16:29 2019 +0200 @@ -134,21 +134,43 @@ optUseShaders = true; break; - case 'w': - case 'h': + case 's': case 'm': case 'v': - if (opt[1] == 0) { - printf("Option '%s' requires an argument.\n", opt); - goto exit; - } + std::string marg; + if (opt[1] == 0) + { + if (narg < argc) + marg = std::string(argv[++narg]); + else + { + printf("Option '%s' requires an argument.\n", opt); + goto exit; + } + } + else + marg = std::string(opt + 1); - switch (opt[0]) - { - case 'w': optWidth = atoi(opt + 1); break; - case 'h': optHeight = atoi(opt + 1); break; - case 'v': optVSyncMode = atoi(opt + 1); break; + switch (opt[0]) + { + case 's': + { + std::vector mtokens = dmStrSplit(marg, "xX:"); + if (mtokens.size() != 2) + { + printf("Option expects argument of format x in pixels.\n" + "For example: -s 640x480\n"); + goto exit; + } + + optWidth = std::stoi(mtokens[0], 0, 0); + optHeight = std::stoi(mtokens[1], 0, 0); + } + break; + + case 'v': optVSyncMode = std::stoi(marg, 0, 0); break; + } } break; @@ -182,8 +204,7 @@ "Usage: %s [options] []\n" "-? Show this help\n" "-g Use GLSL shader instead of basic OpenGL lighting\n" - "-w Window width (default %d)\n" - "-h Window height (default %d)\n" + "-sx Set window dimensions (default %d x %d)\n" "-v<0-3> Set vsync mode: 0 = do not attempt to set vsync mode\n" " (may be required for software rendering backends),\n" " 1 = no vsync, 2 = vsync, 3 = adaptive.\n"