Commit 74b85ef7 authored by Sam Lantinga's avatar Sam Lantinga

Added an environment variable to select which driver the software renderer will use.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401974
parent 1d8a5a23
...@@ -159,6 +159,7 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags) ...@@ -159,6 +159,7 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags)
int bpp; int bpp;
Uint32 Rmask, Gmask, Bmask, Amask; Uint32 Rmask, Gmask, Bmask, Amask;
Uint32 renderer_flags; Uint32 renderer_flags;
const char *desired_driver;
if (!SDL_PixelFormatEnumToMasks if (!SDL_PixelFormatEnumToMasks
(displayMode->format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) { (displayMode->format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) {
...@@ -216,15 +217,21 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags) ...@@ -216,15 +217,21 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags)
if (flags & SDL_Renderer_PresentVSync) { if (flags & SDL_Renderer_PresentVSync) {
renderer_flags |= SDL_Renderer_PresentVSync; renderer_flags |= SDL_Renderer_PresentVSync;
} }
desired_driver = SDL_getenv("SDL_VIDEO_RENDERER_SWDRIVER");
for (i = 0; i < display->num_render_drivers; ++i) { for (i = 0; i < display->num_render_drivers; ++i) {
SDL_RenderDriver *driver = &display->render_drivers[i]; SDL_RenderDriver *driver = &display->render_drivers[i];
if (driver->info.name != SW_RenderDriver.info.name) { if (driver->info.name == SW_RenderDriver.info.name) {
continue;
}
if (desired_driver
&& SDL_strcasecmp(desired_driver, driver->info.name) != 0) {
continue;
}
data->renderer = driver->CreateRenderer(window, renderer_flags); data->renderer = driver->CreateRenderer(window, renderer_flags);
if (data->renderer) { if (data->renderer) {
break; break;
} }
} }
}
if (i == display->num_render_drivers) { if (i == display->num_render_drivers) {
SW_DestroyRenderer(renderer); SW_DestroyRenderer(renderer);
SDL_SetError("Couldn't find display render driver"); SDL_SetError("Couldn't find display render driver");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment