mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
ui/dbus: restrict opengl to gbm-enabled config
We can enable EGL later for non-GBM hosts. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
84a0a2ef0a
commit
4814d3cbf9
2 changed files with 16 additions and 6 deletions
|
@ -50,7 +50,7 @@ struct _DBusDisplayListener {
|
|||
|
||||
G_DEFINE_TYPE(DBusDisplayListener, dbus_display_listener, G_TYPE_OBJECT)
|
||||
|
||||
#ifdef CONFIG_OPENGL
|
||||
#ifdef CONFIG_GBM
|
||||
static void dbus_update_gl_cb(GObject *source_object,
|
||||
GAsyncResult *res,
|
||||
gpointer user_data)
|
||||
|
@ -239,7 +239,7 @@ static void dbus_refresh(DisplayChangeListener *dcl)
|
|||
graphic_hw_update(dcl->con);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OPENGL
|
||||
#ifdef CONFIG_GBM
|
||||
static void dbus_gl_gfx_update(DisplayChangeListener *dcl,
|
||||
int x, int y, int w, int h)
|
||||
{
|
||||
|
@ -302,7 +302,7 @@ static void dbus_gfx_update(DisplayChangeListener *dcl,
|
|||
DBUS_DEFAULT_TIMEOUT, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OPENGL
|
||||
#ifdef CONFIG_GBM
|
||||
static void dbus_gl_gfx_switch(DisplayChangeListener *dcl,
|
||||
struct DisplaySurface *new_surface)
|
||||
{
|
||||
|
@ -369,7 +369,7 @@ static void dbus_cursor_define(DisplayChangeListener *dcl,
|
|||
NULL);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_OPENGL
|
||||
#ifdef CONFIG_GBM
|
||||
const DisplayChangeListenerOps dbus_gl_dcl_ops = {
|
||||
.dpy_name = "dbus-gl",
|
||||
.dpy_gfx_update = dbus_gl_gfx_update,
|
||||
|
@ -417,7 +417,7 @@ dbus_display_listener_constructed(GObject *object)
|
|||
DBusDisplayListener *ddl = DBUS_DISPLAY_LISTENER(object);
|
||||
|
||||
ddl->dcl.ops = &dbus_dcl_ops;
|
||||
#ifdef CONFIG_OPENGL
|
||||
#ifdef CONFIG_GBM
|
||||
if (display_opengl) {
|
||||
ddl->dcl.ops = &dbus_gl_dcl_ops;
|
||||
}
|
||||
|
|
12
ui/dbus.c
12
ui/dbus.c
|
@ -47,8 +47,10 @@ static DBusDisplay *dbus_display;
|
|||
static QEMUGLContext dbus_create_context(DisplayGLCtx *dgc,
|
||||
QEMUGLParams *params)
|
||||
{
|
||||
#ifdef CONFIG_GBM
|
||||
eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
|
||||
qemu_egl_rn_ctx);
|
||||
#endif
|
||||
return qemu_egl_create_context(dgc, params);
|
||||
}
|
||||
|
||||
|
@ -56,7 +58,11 @@ static bool
|
|||
dbus_is_compatible_dcl(DisplayGLCtx *dgc,
|
||||
DisplayChangeListener *dcl)
|
||||
{
|
||||
return dcl->ops == &dbus_gl_dcl_ops || dcl->ops == &dbus_console_dcl_ops;
|
||||
return
|
||||
#ifdef CONFIG_GBM
|
||||
dcl->ops == &dbus_gl_dcl_ops ||
|
||||
#endif
|
||||
dcl->ops == &dbus_console_dcl_ops;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -459,7 +465,11 @@ early_dbus_init(DisplayOptions *opts)
|
|||
DisplayGLMode mode = opts->has_gl ? opts->gl : DISPLAYGL_MODE_OFF;
|
||||
|
||||
if (mode != DISPLAYGL_MODE_OFF) {
|
||||
#ifdef CONFIG_OPENGL
|
||||
egl_init(opts->u.dbus.rendernode, mode, &error_fatal);
|
||||
#else
|
||||
error_report("dbus: GL rendering is not supported");
|
||||
#endif
|
||||
}
|
||||
|
||||
type_register(&dbus_vc_type_info);
|
||||
|
|
Loading…
Reference in a new issue