ui: switch gtk display to qapi parser

Drop the gtk option parser from parse_display(), so parse_display_qapi()
will handle it instead.

With this change the parser will accept gl=core and gl=es too, gtk
must catch the unsupported gles variant now.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180507095539.19584-4-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2018-05-07 11:55:38 +02:00
parent 2c9498c3e4
commit 002b2902f3
2 changed files with 5 additions and 33 deletions

View File

@ -2478,7 +2478,11 @@ static void early_gtk_display_init(DisplayOptions *opts)
}
assert(opts->type == DISPLAY_TYPE_GTK);
if (opts->has_gl && opts->gl) {
if (opts->has_gl && opts->gl != DISPLAYGL_MODE_OFF) {
if (opts->gl == DISPLAYGL_MODE_ES) {
error_report("gtk: opengl es not supported");
return;
}
#if defined(CONFIG_OPENGL)
#if defined(CONFIG_GTK_GL) && defined(GDK_WINDOWING_WAYLAND)
if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {

32
vl.c
View File

@ -2185,38 +2185,6 @@ static void parse_display(const char *p)
error_report("VNC requires a display argument vnc=<display>");
exit(1);
}
} else if (strstart(p, "gtk", &opts)) {
dpy.type = DISPLAY_TYPE_GTK;
while (*opts) {
const char *nextopt;
if (strstart(opts, ",grab_on_hover=", &nextopt)) {
opts = nextopt;
dpy.u.gtk.has_grab_on_hover = true;
if (strstart(opts, "on", &nextopt)) {
dpy.u.gtk.grab_on_hover = true;
} else if (strstart(opts, "off", &nextopt)) {
dpy.u.gtk.grab_on_hover = false;
} else {
goto invalid_gtk_args;
}
} else if (strstart(opts, ",gl=", &nextopt)) {
opts = nextopt;
dpy.has_gl = true;
if (strstart(opts, "on", &nextopt)) {
dpy.gl = DISPLAYGL_MODE_ON;
} else if (strstart(opts, "off", &nextopt)) {
dpy.gl = DISPLAYGL_MODE_OFF;
} else {
goto invalid_gtk_args;
}
} else {
invalid_gtk_args:
error_report("invalid GTK option string");
exit(1);
}
opts = nextopt;
}
} else {
parse_display_qapi(p);
}