Skip to content

Commit

Permalink
added pref, "sdlrender", which can force a specific, SDL2 renderer (s…
Browse files Browse the repository at this point in the history
…oftware can be faster in some cases, such as on VirtualBox hosts)
  • Loading branch information
DavidLudwig committed Sep 9, 2017
1 parent cbda575 commit 1eb824a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 1 deletion.
1 change: 1 addition & 0 deletions BasiliskII/src/SDL/prefs_sdl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
// Platform-specific preferences items
prefs_desc platform_prefs_items[] = {
{"idlewait", TYPE_BOOLEAN, false, "sleep when idle"},
{"sdlrender", TYPE_STRING, false, "SDL_Renderer driver (\"auto\", \"software\" (may be faster), etc.)"},
{NULL, TYPE_END, false} // End of list
};

Expand Down
16 changes: 15 additions & 1 deletion BasiliskII/src/SDL/video_sdl2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -754,12 +754,26 @@ static SDL_Surface * init_sdl_video(int width, int height, int bpp, Uint32 flags
}

if (!sdl_renderer) {
sdl_renderer = SDL_CreateRenderer(sdl_window, -1, SDL_RENDERER_ACCELERATED);
const char *render_driver = PrefsFindString("sdlrender");
if (render_driver) {
if (SDL_strcmp(render_driver, "auto") == 0) {
SDL_SetHint(SDL_HINT_RENDER_DRIVER, "");
} else {
SDL_SetHint(SDL_HINT_RENDER_DRIVER, render_driver);
}
}

sdl_renderer = SDL_CreateRenderer(sdl_window, -1, 0);
if (!sdl_renderer) {
shutdown_sdl_video();
return NULL;
}
sdl_renderer_thread_id = SDL_ThreadID();

SDL_RendererInfo info;
memset(&info, 0, sizeof(info));
SDL_GetRendererInfo(sdl_renderer, &info);
printf("Using SDL_Renderer driver: %s\n", (info.name ? info.name : "(null)"));
}

SDL_assert(sdl_texture == NULL);
Expand Down
3 changes: 3 additions & 0 deletions BasiliskII/src/Unix/prefs_unix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ prefs_desc platform_prefs_items[] = {
{"ignoresegv", TYPE_BOOLEAN, false, "ignore illegal memory accesses"},
#endif
{"idlewait", TYPE_BOOLEAN, false, "sleep when idle"},
#ifdef USE_SDL_VIDEO
{"sdlrender", TYPE_STRING, false, "SDL_Renderer driver (\"auto\", \"software\" (may be faster), etc.)"},
#endif
{NULL, TYPE_END, false, NULL} // End of list
};

Expand Down

0 comments on commit 1eb824a

Please sign in to comment.