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
@ -50,7 +50,7 @@ struct _DBusDisplayListener {
|
|||||||
|
|
||||||
G_DEFINE_TYPE(DBusDisplayListener, dbus_display_listener, G_TYPE_OBJECT)
|
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,
|
static void dbus_update_gl_cb(GObject *source_object,
|
||||||
GAsyncResult *res,
|
GAsyncResult *res,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
@ -239,7 +239,7 @@ static void dbus_refresh(DisplayChangeListener *dcl)
|
|||||||
graphic_hw_update(dcl->con);
|
graphic_hw_update(dcl->con);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GBM
|
||||||
static void dbus_gl_gfx_update(DisplayChangeListener *dcl,
|
static void dbus_gl_gfx_update(DisplayChangeListener *dcl,
|
||||||
int x, int y, int w, int h)
|
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);
|
DBUS_DEFAULT_TIMEOUT, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GBM
|
||||||
static void dbus_gl_gfx_switch(DisplayChangeListener *dcl,
|
static void dbus_gl_gfx_switch(DisplayChangeListener *dcl,
|
||||||
struct DisplaySurface *new_surface)
|
struct DisplaySurface *new_surface)
|
||||||
{
|
{
|
||||||
@ -369,7 +369,7 @@ static void dbus_cursor_define(DisplayChangeListener *dcl,
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GBM
|
||||||
const DisplayChangeListenerOps dbus_gl_dcl_ops = {
|
const DisplayChangeListenerOps dbus_gl_dcl_ops = {
|
||||||
.dpy_name = "dbus-gl",
|
.dpy_name = "dbus-gl",
|
||||||
.dpy_gfx_update = dbus_gl_gfx_update,
|
.dpy_gfx_update = dbus_gl_gfx_update,
|
||||||
@ -417,7 +417,7 @@ dbus_display_listener_constructed(GObject *object)
|
|||||||
DBusDisplayListener *ddl = DBUS_DISPLAY_LISTENER(object);
|
DBusDisplayListener *ddl = DBUS_DISPLAY_LISTENER(object);
|
||||||
|
|
||||||
ddl->dcl.ops = &dbus_dcl_ops;
|
ddl->dcl.ops = &dbus_dcl_ops;
|
||||||
#ifdef CONFIG_OPENGL
|
#ifdef CONFIG_GBM
|
||||||
if (display_opengl) {
|
if (display_opengl) {
|
||||||
ddl->dcl.ops = &dbus_gl_dcl_ops;
|
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,
|
static QEMUGLContext dbus_create_context(DisplayGLCtx *dgc,
|
||||||
QEMUGLParams *params)
|
QEMUGLParams *params)
|
||||||
{
|
{
|
||||||
|
#ifdef CONFIG_GBM
|
||||||
eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
|
eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
|
||||||
qemu_egl_rn_ctx);
|
qemu_egl_rn_ctx);
|
||||||
|
#endif
|
||||||
return qemu_egl_create_context(dgc, params);
|
return qemu_egl_create_context(dgc, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -56,7 +58,11 @@ static bool
|
|||||||
dbus_is_compatible_dcl(DisplayGLCtx *dgc,
|
dbus_is_compatible_dcl(DisplayGLCtx *dgc,
|
||||||
DisplayChangeListener *dcl)
|
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
|
static void
|
||||||
@ -459,7 +465,11 @@ early_dbus_init(DisplayOptions *opts)
|
|||||||
DisplayGLMode mode = opts->has_gl ? opts->gl : DISPLAYGL_MODE_OFF;
|
DisplayGLMode mode = opts->has_gl ? opts->gl : DISPLAYGL_MODE_OFF;
|
||||||
|
|
||||||
if (mode != DISPLAYGL_MODE_OFF) {
|
if (mode != DISPLAYGL_MODE_OFF) {
|
||||||
|
#ifdef CONFIG_OPENGL
|
||||||
egl_init(opts->u.dbus.rendernode, mode, &error_fatal);
|
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);
|
type_register(&dbus_vc_type_info);
|
||||||
|
Loading…
Reference in New Issue
Block a user