From 74b85ef7fec82010b31c5ab840d8782b241e837c Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 23 Jul 2006 00:48:12 +0000 Subject: [PATCH] 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 --- src/video/SDL_renderer_sw.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/video/SDL_renderer_sw.c b/src/video/SDL_renderer_sw.c index 4d211587c..95f6892cd 100644 --- a/src/video/SDL_renderer_sw.c +++ b/src/video/SDL_renderer_sw.c @@ -159,6 +159,7 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags) int bpp; Uint32 Rmask, Gmask, Bmask, Amask; Uint32 renderer_flags; + const char *desired_driver; if (!SDL_PixelFormatEnumToMasks (displayMode->format, &bpp, &Rmask, &Gmask, &Bmask, &Amask)) { @@ -216,13 +217,19 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags) if (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) { SDL_RenderDriver *driver = &display->render_drivers[i]; - if (driver->info.name != SW_RenderDriver.info.name) { - data->renderer = driver->CreateRenderer(window, renderer_flags); - if (data->renderer) { - break; - } + 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); + if (data->renderer) { + break; } } if (i == display->num_render_drivers) {