SDL: Properly check for initialization

This commit is contained in:
Jeffrey Pfau 2015-06-12 00:53:15 -07:00
parent f2e298f78d
commit d09d0e505f
2 changed files with 22 additions and 17 deletions

View File

@ -66,6 +66,7 @@ Misc:
- GBA: SIO logging layer
- Qt: Add application icon and XDG desktop files
- GBA Thread: Split GBASync into a separate file
- SDL: Properly check for initialization
0.2.1: (2015-05-13)
Bugfixes:

View File

@ -107,8 +107,12 @@ int main(int argc, char** argv) {
GBAMapOptionsToContext(&opts, &context);
GBAMapArgumentsToContext(&args, &context);
bool didFail = false;
renderer.audio.samples = context.audioBuffers;
GBASDLInitAudio(&renderer.audio, &context);
if (!GBASDLInitAudio(&renderer.audio, &context)) {
didFail = true;
}
renderer.player.bindings = &inputMap;
GBASDLInitBindings(&inputMap);
@ -118,28 +122,28 @@ int main(int argc, char** argv) {
GBASDLPlayerLoadConfig(&renderer.player, GBAConfigGetInput(&config));
context.overrides = GBAConfigGetOverrides(&config);
if (!didFail) {
#if SDL_VERSION_ATLEAST(2, 0, 0)
GBASDLSetScreensaverSuspendable(&renderer.events, opts.suspendScreensaver);
GBASDLSuspendScreensaver(&renderer.events);
GBASDLSetScreensaverSuspendable(&renderer.events, opts.suspendScreensaver);
GBASDLSuspendScreensaver(&renderer.events);
#endif
int didFail = 0;
if (GBAThreadStart(&context)) {
renderer.runloop(&context, &renderer);
GBAThreadJoin(&context);
} else {
didFail = 1;
printf("Could not run game. Are you sure the file exists and is a Game Boy Advance game?\n");
}
if (GBAThreadStart(&context)) {
renderer.runloop(&context, &renderer);
GBAThreadJoin(&context);
} else {
didFail = true;
printf("Could not run game. Are you sure the file exists and is a Game Boy Advance game?\n");
}
#if SDL_VERSION_ATLEAST(2, 0, 0)
GBASDLResumeScreensaver(&renderer.events);
GBASDLSetScreensaverSuspendable(&renderer.events, false);
GBASDLResumeScreensaver(&renderer.events);
GBASDLSetScreensaverSuspendable(&renderer.events, false);
#endif
if (GBAThreadHasCrashed(&context)) {
didFail = 1;
printf("The game crashed!\n");
if (GBAThreadHasCrashed(&context)) {
didFail = true;
printf("The game crashed!\n");
}
}
freeArguments(&args);
GBAConfigFreeOpts(&opts);