Mercurial > hg > dmlib
comparison src/dmsimple.c @ 1102:e06abfde6c39
Cosmetics pass: Remove excess whitespace.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 03 Mar 2015 23:22:36 +0200 |
parents | 47c0514d9ba4 |
children | 007a9446256c |
comparison
equal
deleted
inserted
replaced
1101:0577f10dc3de | 1102:e06abfde6c39 |
---|---|
54 break; | 54 break; |
55 | 55 |
56 case 1: | 56 case 1: |
57 dmVerbosity++; | 57 dmVerbosity++; |
58 break; | 58 break; |
59 | 59 |
60 default: | 60 default: |
61 dmErrorDBGMsg("Unknown option '%s'.\n", currArg); | 61 dmErrorDBGMsg("Unknown option '%s'.\n", currArg); |
62 return FALSE; | 62 return FALSE; |
63 } | 63 } |
64 | 64 |
65 return TRUE; | 65 return TRUE; |
66 } | 66 } |
67 | 67 |
68 | 68 |
69 static int engineShowProgress(int loaded, int total) | 69 static int engineShowProgress(int loaded, int total) |
70 { | 70 { |
71 int dx = 60, | 71 int dx = 60, |
72 dh = 20, | 72 dh = 20, |
73 dw = engine.screen->w - (2 * dx), | 73 dw = engine.screen->w - (2 * dx), |
74 dy = (engine.screen->h - dh) / 2; | 74 dy = (engine.screen->h - dh) / 2; |
75 | 75 |
76 if (SDL_MUSTLOCK(engine.screen) != 0 && SDL_LockSurface(engine.screen) != 0) | 76 if (SDL_MUSTLOCK(engine.screen) != 0 && SDL_LockSurface(engine.screen) != 0) |
77 return DMERR_INIT_FAIL; | 77 return DMERR_INIT_FAIL; |
78 | 78 |
79 // Draw the progress bar | 79 // Draw the progress bar |
80 dmClearSurface(engine.screen, dmMapRGBA(engine.screen, 0,0,0,0)); | 80 dmClearSurface(engine.screen, dmMapRGBA(engine.screen, 0,0,0,0)); |
81 dmFillRect(engine.screen, dx, dy, dx+dw, dy+dh, dmMapRGB(engine.screen, 255,255,255)); | 81 dmFillRect(engine.screen, dx, dy, dx+dw, dy+dh, dmMapRGB(engine.screen, 255,255,255)); |
82 dmFillRect(engine.screen, dx+1, dy+1, dx+dw-1, dy+dh-1, dmMapRGB(engine.screen, 0,0,0)); | 82 dmFillRect(engine.screen, dx+1, dy+1, dx+dw-1, dy+dh-1, dmMapRGB(engine.screen, 0,0,0)); |
83 | 83 |
112 | 112 |
113 err = dmResourcesPreload(engine.resources, first, &loaded, &total); | 113 err = dmResourcesPreload(engine.resources, first, &loaded, &total); |
114 first = FALSE; | 114 first = FALSE; |
115 } | 115 } |
116 while (err == DMERR_PROGRESS); | 116 while (err == DMERR_PROGRESS); |
117 | 117 |
118 return err; | 118 return err; |
119 } | 119 } |
120 | 120 |
121 | 121 |
122 static BOOL engineGenInitializeVideo(int width, int height, int depth, Uint32 flags) | 122 static BOOL engineGenInitializeVideo(int width, int height, int depth, Uint32 flags) |
169 | 169 |
170 int engineAddModeToList(int w, int h) | 170 int engineAddModeToList(int w, int h) |
171 { | 171 { |
172 DMModeEntry *mode; | 172 DMModeEntry *mode; |
173 int i, aspect = engineGetVideoAspect(w, h); | 173 int i, aspect = engineGetVideoAspect(w, h); |
174 | 174 |
175 dmPrint(2, " - Proposed %d x %d\n", w, h); | 175 dmPrint(2, " - Proposed %d x %d\n", w, h); |
176 if (aspect <= 0) | 176 if (aspect <= 0) |
177 return DMERR_INVALID_ARGS; | 177 return DMERR_INVALID_ARGS; |
178 | 178 |
179 // Check if the mode is already in our list | 179 // Check if the mode is already in our list |
180 for (i = 0; i < nengineModeList; i++) | 180 for (i = 0; i < nengineModeList; i++) |
181 { | 181 { |
182 mode = &engineModeList[i]; | 182 mode = &engineModeList[i]; |
183 if (mode->w == w && mode->h == h) | 183 if (mode->w == w && mode->h == h) |
189 { | 189 { |
190 case DM_VSETUP_ASPECT: | 190 case DM_VSETUP_ASPECT: |
191 if (aspect != engine.optVidAspect) | 191 if (aspect != engine.optVidAspect) |
192 return DMERR_OK; | 192 return DMERR_OK; |
193 break; | 193 break; |
194 | 194 |
195 case DM_VSETUP_ANY: | 195 case DM_VSETUP_ANY: |
196 break; | 196 break; |
197 } | 197 } |
198 | 198 |
199 // Reallocate array if needed | 199 // Reallocate array if needed |
202 aengineModeList += 16; | 202 aengineModeList += 16; |
203 engineModeList = dmRealloc(engineModeList, sizeof(DMModeEntry) * aengineModeList); | 203 engineModeList = dmRealloc(engineModeList, sizeof(DMModeEntry) * aengineModeList); |
204 if (engineModeList == NULL) | 204 if (engineModeList == NULL) |
205 return DMERR_MALLOC; | 205 return DMERR_MALLOC; |
206 } | 206 } |
207 | 207 |
208 // Store | 208 // Store |
209 mode = &engineModeList[nengineModeList]; | 209 mode = &engineModeList[nengineModeList]; |
210 mode->w = w; | 210 mode->w = w; |
211 mode->h = h; | 211 mode->h = h; |
212 mode->aspect = engineGetVideoAspect(w, h); | 212 mode->aspect = engineGetVideoAspect(w, h); |
213 dmPrint(2, " - %d x %d, %d\n", w, h, mode->aspect); | 213 dmPrint(2, " - %d x %d, %d\n", w, h, mode->aspect); |
214 | 214 |
215 nengineModeList++; | 215 nengineModeList++; |
216 | 216 |
217 return DMERR_OK; | 217 return DMERR_OK; |
218 } | 218 } |
219 | 219 |
220 | 220 |
221 int engineParseSetupConfig(const char *filename) | 221 int engineParseSetupConfig(const char *filename) |
238 for (pos = strlen(buf) - 1; pos >= 0 && isspace(buf[pos]); pos--) | 238 for (pos = strlen(buf) - 1; pos >= 0 && isspace(buf[pos]); pos--) |
239 buf[pos] = 0; | 239 buf[pos] = 0; |
240 | 240 |
241 // Find start of the line | 241 // Find start of the line |
242 for (pos = 0; isspace(buf[pos]); pos++); | 242 for (pos = 0; isspace(buf[pos]); pos++); |
243 | 243 |
244 // Skip empty lines and comments | 244 // Skip empty lines and comments |
245 if (buf[pos] == 0 || buf[pos] == '#') | 245 if (buf[pos] == 0 || buf[pos] == '#') |
246 continue; | 246 continue; |
247 | 247 |
248 // XXX TODO FIXME: Needs better parsing, with size checks etc. | 248 // XXX TODO FIXME: Needs better parsing, with size checks etc. |
308 { | 308 { |
309 dmError(DMERR_INIT_FAIL, | 309 dmError(DMERR_INIT_FAIL, |
310 "No compatible video resolutions/depths available at all. Bailing out.\n"); | 310 "No compatible video resolutions/depths available at all. Bailing out.\n"); |
311 goto out; | 311 goto out; |
312 } | 312 } |
313 | 313 |
314 if (modes != (SDL_Rect**) -1) | 314 if (modes != (SDL_Rect**) -1) |
315 { | 315 { |
316 int i; | 316 int i; |
317 dmPrint(1, "Enumerating modes.\n"); | 317 dmPrint(1, "Enumerating modes.\n"); |
318 for (i = 0; modes[i] != NULL; i++) | 318 for (i = 0; modes[i] != NULL; i++) |
384 dmErrorDBGMsg( | 384 dmErrorDBGMsg( |
385 "Could not instantiate setup screen images, %d: %s\n", | 385 "Could not instantiate setup screen images, %d: %s\n", |
386 result, dmErrorStr(result)); | 386 result, dmErrorStr(result)); |
387 goto out; | 387 goto out; |
388 } | 388 } |
389 | 389 |
390 if (menuBgImage->w != DM_VSETUP_WIDTH || | 390 if (menuBgImage->w != DM_VSETUP_WIDTH || |
391 menuBgImage->h != DM_VSETUP_HEIGHT) | 391 menuBgImage->h != DM_VSETUP_HEIGHT) |
392 { | 392 { |
393 dmErrorDBGMsg( | 393 dmErrorDBGMsg( |
394 "Setup screen background image does not match " | 394 "Setup screen background image does not match " |
507 goto out; | 507 goto out; |
508 } | 508 } |
509 | 509 |
510 // Render the menu | 510 // Render the menu |
511 dmDirectBlitSurface(menuBgImage, engine.screen); | 511 dmDirectBlitSurface(menuBgImage, engine.screen); |
512 | 512 |
513 // XXX/TODO: Some hardcoded bits here ... | 513 // XXX/TODO: Some hardcoded bits here ... |
514 float t = engineGetTimeDT(&engine); | 514 float t = engineGetTimeDT(&engine); |
515 int index, entry; | 515 int index, entry; |
516 | 516 |
517 for (index = 0, entry = menuOffset; entry < nengineModeList && index < menuHeight; index++, entry++) | 517 for (index = 0, entry = menuOffset; entry < nengineModeList && index < menuHeight; index++, entry++) |
536 mode->aspect % 1000); | 536 mode->aspect % 1000); |
537 | 537 |
538 DMFloat posX = engine.setupMenuCenter ? | 538 DMFloat posX = engine.setupMenuCenter ? |
539 2.0f + (vsX(engine.setupMenuDim) - menuFont->width * strlen(menuStr)) / 2.0f : | 539 2.0f + (vsX(engine.setupMenuDim) - menuFont->width * strlen(menuStr)) / 2.0f : |
540 2.0f; | 540 2.0f; |
541 | 541 |
542 dmDrawBMTextConst( | 542 dmDrawBMTextConst( |
543 engine.screen, menuFont, | 543 engine.screen, menuFont, |
544 engine.setupTextCondensed, DMD_TRANSPARENT, | 544 engine.setupTextCondensed, DMD_TRANSPARENT, |
545 vsX(engine.setupMenuPos) + posX, | 545 vsX(engine.setupMenuPos) + posX, |
546 vsY(engine.setupMenuPos) + (index * menuEntryHeight), | 546 vsY(engine.setupMenuPos) + (index * menuEntryHeight), |
547 menuStr); | 547 menuStr); |
548 } | 548 } |
549 | 549 |
550 dmDrawBMTextConst( | 550 dmDrawBMTextConst( |
551 engine.screen, menuFont, | 551 engine.screen, menuFont, |
552 engine.setupTextCondensed, DMD_TRANSPARENT, | 552 engine.setupTextCondensed, DMD_TRANSPARENT, |
553 vsX(engine.setupText2Pos), | 553 vsX(engine.setupText2Pos), |
554 vsY(engine.setupText2Pos), | 554 vsY(engine.setupText2Pos), |
592 | 592 |
593 out: | 593 out: |
594 SDL_FreeSurface(menuBgImage); | 594 SDL_FreeSurface(menuBgImage); |
595 SDL_FreeSurface(menuBarImage); | 595 SDL_FreeSurface(menuBarImage); |
596 dmFreeBitmapFont(menuFont); | 596 dmFreeBitmapFont(menuFont); |
597 | 597 |
598 return menuState; | 598 return menuState; |
599 } | 599 } |
600 | 600 |
601 | 601 |
602 int main(int argc, char *argv[]) | 602 int main(int argc, char *argv[]) |
680 { | 680 { |
681 engine.optAfmt.freq = 44100; | 681 engine.optAfmt.freq = 44100; |
682 engine.optAfmt.format = AUDIO_S16SYS; | 682 engine.optAfmt.format = AUDIO_S16SYS; |
683 engine.optAfmt.channels = 2; | 683 engine.optAfmt.channels = 2; |
684 } | 684 } |
685 | 685 |
686 if (engine.optAfmt.samples == 0) | 686 if (engine.optAfmt.samples == 0) |
687 engine.optAfmt.samples = engine.optAfmt.freq / 50; | 687 engine.optAfmt.samples = engine.optAfmt.freq / 50; |
688 | 688 |
689 switch (engine.optAudioSetup) | 689 switch (engine.optAudioSetup) |
690 { | 690 { |
833 switch (engine.event.key.keysym.sym) | 833 switch (engine.event.key.keysym.sym) |
834 { | 834 { |
835 case SDLK_ESCAPE: | 835 case SDLK_ESCAPE: |
836 engine.exitFlag = TRUE; | 836 engine.exitFlag = TRUE; |
837 break; | 837 break; |
838 | 838 |
839 case SDLK_SPACE: | 839 case SDLK_SPACE: |
840 engine.pauseFlag = !engine.pauseFlag; | 840 engine.pauseFlag = !engine.pauseFlag; |
841 break; | 841 break; |
842 | 842 |
843 case SDLK_f: | 843 case SDLK_f: |
874 if (engine.pauseFlag != engine.paused) | 874 if (engine.pauseFlag != engine.paused) |
875 { | 875 { |
876 engine.paused = engine.pauseFlag; | 876 engine.paused = engine.pauseFlag; |
877 engine.pauseTime = engineGetTick(&engine); | 877 engine.pauseTime = engineGetTick(&engine); |
878 } | 878 } |
879 | 879 |
880 if (engine.paused) | 880 if (engine.paused) |
881 { | 881 { |
882 engine.startTime = engine.frameTime - engine.pauseTime; | 882 engine.startTime = engine.frameTime - engine.pauseTime; |
883 } | 883 } |
884 | 884 |
944 dmMutexUnlock(engine.audioStreamMutex); | 944 dmMutexUnlock(engine.audioStreamMutex); |
945 SDL_WaitThread(engine.audioSimThread, NULL); | 945 SDL_WaitThread(engine.audioSimThread, NULL); |
946 } | 946 } |
947 | 947 |
948 SDL_UnlockAudio(); | 948 SDL_UnlockAudio(); |
949 | 949 |
950 if (engine.audioStreamMutex != NULL) | 950 if (engine.audioStreamMutex != NULL) |
951 dmDestroyMutex(engine.audioStreamMutex); | 951 dmDestroyMutex(engine.audioStreamMutex); |
952 | 952 |
953 #ifdef DM_USE_TIMELINE | 953 #ifdef DM_USE_TIMELINE |
954 dmFreeTimeline(engine.tl); | 954 dmFreeTimeline(engine.tl); |