From 737e6b265c7b282ab560e98be0de6eb95b529066 Mon Sep 17 00:00:00 2001 From: Holger Schemel Date: Fri, 4 Sep 2020 01:44:27 +0200 Subject: [PATCH] added option for setting hint for render driver to setup config file --- src/files.c | 5 +++++ src/libgame/sdl.c | 4 ++++ src/libgame/system.h | 1 + src/screens.c | 2 +- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/files.c b/src/files.c index c0704345..ba5b8f58 100644 --- a/src/files.c +++ b/src/files.c @@ -8888,6 +8888,10 @@ static struct TokenInfo player_setup_tokens[] = static struct TokenInfo system_setup_tokens[] = { + { + TYPE_STRING, + &setup.system.sdl_renderdriver, "system.sdl_renderdriver" + }, { TYPE_STRING, &setup.system.sdl_videodriver, "system.sdl_videodriver" @@ -9334,6 +9338,7 @@ static void setSetupInfoToDefaults(struct SetupInfo *si) si->input[i].key.drop = (i == 0 ? DEFAULT_KEY_DROP : KSYM_UNDEFINED); } + si->system.sdl_renderdriver = getStringCopy(ARG_DEFAULT); si->system.sdl_videodriver = getStringCopy(ARG_DEFAULT); si->system.sdl_audiodriver = getStringCopy(ARG_DEFAULT); si->system.audio_fragment_size = DEFAULT_AUDIO_FRAGMENT_SIZE; diff --git a/src/libgame/sdl.c b/src/libgame/sdl.c index 990054de..e561b177 100644 --- a/src/libgame/sdl.c +++ b/src/libgame/sdl.c @@ -437,6 +437,10 @@ void SDLFreeBitmapTextures(Bitmap *bitmap) void SDLInitVideoDisplay(void) { + // set hint to select render driver as specified in setup config file + if (!strEqual(setup.system.sdl_renderdriver, ARG_DEFAULT)) + SDL_SetHint(SDL_HINT_RENDER_DRIVER, setup.system.sdl_renderdriver); + // initialize SDL video if (SDL_InitSubSystem(SDL_INIT_VIDEO) < 0) Error(ERR_EXIT, "SDL_InitSubSystem() failed: %s", SDL_GetError()); diff --git a/src/libgame/system.h b/src/libgame/system.h index da86181f..e3f0fba9 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -1296,6 +1296,7 @@ struct SetupShortcutInfo struct SetupSystemInfo { + char *sdl_renderdriver; char *sdl_videodriver; char *sdl_audiodriver; int audio_fragment_size; diff --git a/src/screens.c b/src/screens.c index 01b8031b..9c5a86fd 100644 --- a/src/screens.c +++ b/src/screens.c @@ -3768,7 +3768,7 @@ static void DrawInfoScreen_Version(void) getStringCopyNStatic(SDLGetRendererName(), driver_name_len); DrawTextF(xstart1, ystart, font_text, "Render Driver"); - DrawTextF(xstart2, ystart, font_text, "%s", ARG_DEFAULT); + DrawTextF(xstart2, ystart, font_text, "%s", setup.system.sdl_renderdriver); DrawTextF(xstart3, ystart, font_text, "%s", driver_name); ystart += ystep_line; -- 2.34.1