Allow SDL_HINT_FRAMEBUFFER_ACCELERATION to specify the renderer to use.
This commit is contained in:
parent
ce1ef46aeb
commit
37f40cdb19
1 changed files with 20 additions and 6 deletions
|
@ -203,8 +203,21 @@ SDL_CreateWindowTexture(_THIS, SDL_Window * window, Uint32 * format, void ** pix
|
||||||
if (!renderer) {
|
if (!renderer) {
|
||||||
SDL_RendererInfo info;
|
SDL_RendererInfo info;
|
||||||
int i;
|
int i;
|
||||||
|
const char *hint = SDL_GetHint(SDL_HINT_FRAMEBUFFER_ACCELERATION);
|
||||||
|
|
||||||
/* We need to make sure we don't get a software renderer */
|
/* Check to see if there's a specific driver requested */
|
||||||
|
if (hint && *hint != '0' && *hint != '1' &&
|
||||||
|
SDL_strcasecmp(hint, "software") != 0) {
|
||||||
|
for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) {
|
||||||
|
SDL_GetRenderDriverInfo(i, &info);
|
||||||
|
if (SDL_strcasecmp(info.name, hint) == 0) {
|
||||||
|
renderer = SDL_CreateRenderer(window, i, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!renderer) {
|
||||||
for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) {
|
for (i = 0; i < SDL_GetNumRenderDrivers(); ++i) {
|
||||||
SDL_GetRenderDriverInfo(i, &info);
|
SDL_GetRenderDriverInfo(i, &info);
|
||||||
if (SDL_strcmp(info.name, "software") != 0) {
|
if (SDL_strcmp(info.name, "software") != 0) {
|
||||||
|
@ -214,6 +227,7 @@ SDL_CreateWindowTexture(_THIS, SDL_Window * window, Uint32 * format, void ** pix
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!renderer) {
|
if (!renderer) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue