diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2022-02-16 17:35:28 +0400 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2022-03-14 15:15:34 +0400 |
commit | 398d1c91ed58fb7fe3dd3e9596519678c816bb69 (patch) | |
tree | 56b9241729a2887479de47afc032329270cae1ad /ui | |
parent | 1416688c53be6535be755b44c15fb2eb9defd20f (diff) | |
download | qemu-398d1c91ed58fb7fe3dd3e9596519678c816bb69.zip qemu-398d1c91ed58fb7fe3dd3e9596519678c816bb69.tar.gz qemu-398d1c91ed58fb7fe3dd3e9596519678c816bb69.tar.bz2 |
ui/console: move check for compatible GL context
Move GL context compatibility check in dpy_compatible_with(), and use
recommended error reporting.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/console.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/ui/console.c b/ui/console.c index 365a2c1..57e431d 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1482,6 +1482,12 @@ static bool dpy_compatible_with(QemuConsole *con, flags = con->hw_ops->get_flags ? con->hw_ops->get_flags(con->hw) : 0; + if (console_has_gl(con) && con->gl->ops->compatible_dcl != dcl->ops) { + error_setg(errp, "Display %s is incompatible with the GL context", + dcl->ops->dpy_name); + return false; + } + if (flags & GRAPHIC_FLAGS_GL && !console_has_gl(con)) { error_setg(errp, "The console requires a GL context."); @@ -1509,27 +1515,12 @@ void qemu_console_set_display_gl_ctx(QemuConsole *con, DisplayGLCtx *gl) con->gl = gl; } -static bool dpy_gl_compatible_with(QemuConsole *con, DisplayChangeListener *dcl) -{ - if (!con->gl) { - return true; - } - - return con->gl->ops->compatible_dcl == dcl->ops; -} - void register_displaychangelistener(DisplayChangeListener *dcl) { QemuConsole *con; assert(!dcl->ds); - if (dcl->con && !dpy_gl_compatible_with(dcl->con, dcl)) { - error_report("Display %s is incompatible with the GL context", - dcl->ops->dpy_name); - exit(1); - } - if (dcl->con) { dpy_compatible_with(dcl->con, dcl, &error_fatal); } |