comparison gldragon.cpp @ 64:e8100c1c5d99

Move option settings from globals to main().
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 15 Dec 2019 02:53:49 +0200
parents d6ffc59bb84d
children 1327ef5dc9fb
comparison
equal deleted inserted replaced
63:d6ffc59bb84d 64:e8100c1c5d99
18 #define SET_DEF_HEIGHT 960 18 #define SET_DEF_HEIGHT 960
19 #define SET_FRAMES (180) 19 #define SET_FRAMES (180)
20 #define SET_MAX_SHADER_SIZE (128 * 1024) 20 #define SET_MAX_SHADER_SIZE (128 * 1024)
21 21
22 22
23 /* Options
24 */
25 bool optUseShaders = false;
26 int optWidth = SET_DEF_WIDTH,
27 optHeight = SET_DEF_HEIGHT,
28 optVSyncMode = 1;
29 23
30 24
31 /* Helpers 25 /* Helpers
32 */ 26 */
33 bool dmInitSDL(DMSimpleRenderer &renderer, const int width, const int height, const char *title) 27 bool dmInitSDL(DMSimpleRenderer &renderer,
28 const int width, const int height,
29 const int vsyncMode,
30 const char *title)
34 { 31 {
35 int ret; 32 int ret;
36 std::string msg; 33 std::string msg;
37 34
38 // Attempt to initialize libSDL 35 // Attempt to initialize libSDL
48 SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 45 SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
49 SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE)) 46 SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE))
50 return false; 47 return false;
51 48
52 // Check if we want to attempt to use vsync 49 // Check if we want to attempt to use vsync
53 switch (optVSyncMode) 50 switch (vsyncMode)
54 { 51 {
55 case 3: 52 case 3:
56 ret = SDL_GL_SetSwapInterval(-1); 53 ret = SDL_GL_SetSwapInterval(-1);
57 msg = "adaptive vsync"; 54 msg = "adaptive vsync";
58 break; 55 break;
95 } 92 }
96 93
97 94
98 int main(int argc, char *argv[]) 95 int main(int argc, char *argv[])
99 { 96 {
100 int startTime, cycleStart, cycleFrames = 0, totalFrames = 0;
101 double totalTime;
102 bool 97 bool
103 exitFlag = false, 98 exitFlag = false,
104 optShowHelp = false, 99 optShowHelp = false,
105 optSetInputFilename = false; 100 optSetInputFilename = false,
101 optUseShaders = false;
102
103 int optWidth = SET_DEF_WIDTH,
104 optHeight = SET_DEF_HEIGHT,
105 optVSyncMode = 1;
106
106 std::string optInputFilename = "dragon.scene", basePath; 107 std::string optInputFilename = "dragon.scene", basePath;
107 DMGLSimpleRenderer renderer; 108 DMGLSimpleRenderer renderer;
108 DMSimpleScene scene; 109 DMSimpleScene scene;
110 int startTime, cycleStart, cycleFrames = 0, totalFrames = 0;
111 double totalTime;
109 112
110 // Check commandline argument for enabling shaders 113 // Check commandline argument for enabling shaders
111 for (int narg = 1; narg < argc; narg++) 114 for (int narg = 1; narg < argc; narg++)
112 { 115 {
113 char *arg = argv[narg]; 116 char *arg = argv[narg];
245 248
246 // Set shader usage 249 // Set shader usage
247 renderer.useShaders = optUseShaders; 250 renderer.useShaders = optUseShaders;
248 251
249 // Initialize SDL + OpenGL 252 // Initialize SDL + OpenGL
250 if (!dmInitSDL(renderer, optWidth, optHeight, "GLDragon")) 253 if (!dmInitSDL(renderer, optWidth, optHeight, optVSyncMode, "GLDragon"))
251 goto exit; 254 goto exit;
252 255
253 // Compile shaders for scene 256 // Compile shaders for scene
254 if (!renderer.compileSceneShaders(scene)) 257 if (!renderer.compileSceneShaders(scene))
255 goto exit; 258 goto exit;