[KMSDRM] Modify SDL_CreateRenderer() to create an opengles2 renderer when the KMSDRM backend is being used and no renderer name has been specified.

This commit is contained in:
Vanfanel 2021-03-16 00:51:17 +01:00 committed by Sam Lantinga
parent e213f37a45
commit 108bb5aabe

View File

@ -838,6 +838,28 @@ SDL_CreateRenderer(SDL_Window * window, int index, Uint32 flags)
} }
} }
#if SDL_VIDEO_DRIVER_KMSDRM
/* Even if full OpenGL works with the KMSDRM backend, GLES2 renderer is still preferred. */
if ((SDL_strcmp(SDL_GetCurrentVideoDriver(), "KMSDRM") == 0) && (!renderer)) {
for (index = 0; index < n; ++index) {
const SDL_RenderDriver *driver = render_drivers[index];
if ((SDL_strcmp(driver->info.name, "opengles2") == 0) && (!renderer)) {
/* Create a new renderer instance */
renderer = driver->CreateRenderer(window, flags);
if (renderer) {
/* Got an OpenGL_ES2 renderer as expected for KMSDRM by default. */
break;
}
}
}
}
#endif
if (!renderer) { if (!renderer) {
for (index = 0; index < n; ++index) { for (index = 0; index < n; ++index) {
const SDL_RenderDriver *driver = render_drivers[index]; const SDL_RenderDriver *driver = render_drivers[index];