Mercurial > hg > forks > gldragon
comparison gldragon.cpp @ 94:5191f8e571d1
Add manual control mode.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 25 May 2021 00:58:02 +0300 |
parents | 9fee97e7c5b6 |
children | 59195e95c080 |
comparison
equal
deleted
inserted
replaced
93:9fee97e7c5b6 | 94:5191f8e571d1 |
---|---|
97 int frameDeltas[SET_FRAMES + 1]; | 97 int frameDeltas[SET_FRAMES + 1]; |
98 | 98 |
99 bool | 99 bool |
100 exitFlag = false, | 100 exitFlag = false, |
101 pauseFlag = false, | 101 pauseFlag = false, |
102 manualFlag = false, | |
102 optShowHelp = false, | 103 optShowHelp = false, |
103 optSetInputFilename = false, | 104 optSetInputFilename = false, |
104 optUseShaders = false; | 105 optUseShaders = false; |
105 | 106 |
106 int optWidth = SET_DEF_WIDTH, | 107 int optWidth = SET_DEF_WIDTH, |
328 case SDL_KEYDOWN: | 329 case SDL_KEYDOWN: |
329 switch (event.key.keysym.sym) | 330 switch (event.key.keysym.sym) |
330 { | 331 { |
331 case SDLK_SPACE: | 332 case SDLK_SPACE: |
332 case SDLK_p: | 333 case SDLK_p: |
333 pauseFlag = !pauseFlag; | 334 if (manualFlag) |
335 pauseFlag = manualFlag = false; | |
336 else | |
337 pauseFlag = !pauseFlag; | |
334 break; | 338 break; |
335 | 339 |
336 case SDLK_ESCAPE: | 340 case SDLK_ESCAPE: |
337 case SDLK_q: | 341 case SDLK_q: |
338 exitFlag = true; | 342 exitFlag = true; |
343 break; | |
344 | |
345 case SDLK_RIGHT: | |
346 manualFlag = true; | |
347 cycleFrames++; | |
348 break; | |
349 | |
350 case SDLK_LEFT: | |
351 manualFlag = true; | |
352 cycleFrames--; | |
339 break; | 353 break; |
340 } | 354 } |
341 } | 355 } |
342 | 356 |
343 // Render the frame | 357 // Render the frame |
349 // Check for errors | 363 // Check for errors |
350 renderer.checkErrors(); | 364 renderer.checkErrors(); |
351 | 365 |
352 frameDelta = frameEnd - frameStart; | 366 frameDelta = frameEnd - frameStart; |
353 | 367 |
354 // Return true if a full rotation was done | 368 // Handle automatic mode |
355 if (!pauseFlag) | 369 if (!pauseFlag && !manualFlag) |
356 { | 370 { |
357 totalFrames++; | 371 totalFrames++; |
358 cycleFrames++; | 372 cycleFrames++; |
359 | 373 |
360 cycleTime += frameDelta; | 374 cycleTime += frameDelta; |
390 cycleTime = 0; | 404 cycleTime = 0; |
391 } | 405 } |
392 } | 406 } |
393 else | 407 else |
394 { | 408 { |
395 SDL_Delay(100); | 409 SDL_Delay(manualFlag ? 25 : 100); |
396 } | 410 } |
397 } | 411 } |
398 | 412 |
399 // Show totals | 413 // Show totals |
400 printf("%d ms total for %d total frames = %.2lf FPS average\n", | 414 printf("%d ms total for %d total frames = %.2lf FPS average\n", |