ui/sdl2: OpenGL window context

When OpenGL is enabled, create only the OpenGL context, ignoring the SDL
renderer as it is unused anyway.

Signed-off-by: Antonio Caggiano <quic_acaggian@quicinc.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20230612091959.2983-1-quic_acaggian@quicinc.com>
This commit is contained in:
Antonio Caggiano 2023-06-12 11:19:59 +02:00 committed by Marc-André Lureau
parent 72cbcead96
commit 176e3783f2

View File

@ -113,11 +113,11 @@ void sdl2_window_create(struct sdl2_console *scon)
SDL_SetHint(SDL_HINT_RENDER_DRIVER, driver);
SDL_SetHint(SDL_HINT_RENDER_BATCHING, "1");
}
scon->real_renderer = SDL_CreateRenderer(scon->real_window, -1, 0);
if (scon->opengl) {
scon->winctx = SDL_GL_CreateContext(scon->real_window);
} else {
/* The SDL renderer is only used by sdl2-2D, when OpenGL is disabled */
scon->real_renderer = SDL_CreateRenderer(scon->real_window, -1, 0);
}
sdl_update_caption(scon);
}
@ -128,10 +128,14 @@ void sdl2_window_destroy(struct sdl2_console *scon)
return;
}
SDL_GL_DeleteContext(scon->winctx);
scon->winctx = NULL;
SDL_DestroyRenderer(scon->real_renderer);
scon->real_renderer = NULL;
if (scon->winctx) {
SDL_GL_DeleteContext(scon->winctx);
scon->winctx = NULL;
}
if (scon->real_renderer) {
SDL_DestroyRenderer(scon->real_renderer);
scon->real_renderer = NULL;
}
SDL_DestroyWindow(scon->real_window);
scon->real_window = NULL;
}