Mercurial > hg > forks > gldragon
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; |