aboutsummaryrefslogtreecommitdiff
path: root/ui/sdl2.c
diff options
context:
space:
mode:
authorAntonio Caggiano <quic_acaggian@quicinc.com>2023-06-12 11:19:59 +0200
committerMarc-André Lureau <marcandre.lureau@redhat.com>2023-06-27 12:31:15 +0200
commit176e3783f2ab1476cdfd18a12bd2cfbe42e6b573 (patch)
treea6f5739dfa30936c33de601f1bdcfbda305fdcd6 /ui/sdl2.c
parent72cbcead969de5b34709ac706a3881636010b6f7 (diff)
downloadqemu-176e3783f2ab1476cdfd18a12bd2cfbe42e6b573.zip
qemu-176e3783f2ab1476cdfd18a12bd2cfbe42e6b573.tar.gz
qemu-176e3783f2ab1476cdfd18a12bd2cfbe42e6b573.tar.bz2
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>
Diffstat (limited to 'ui/sdl2.c')
-rw-r--r--ui/sdl2.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/ui/sdl2.c b/ui/sdl2.c
index 9d70320..0d91b55 100644
--- a/ui/sdl2.c
+++ b/ui/sdl2.c
@@ -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;
}