From: Marc-André Lureau Date: Thu, 4 Feb 2021 10:52:24 +0000 (+0400) Subject: ui: add a DCLOps callback to check dmabuf support X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d0e137bc9ac9447e669879db4f59eb7f9f961383;p=qemu.git ui: add a DCLOps callback to check dmabuf support Signed-off-by: Marc-André Lureau Message-Id: <20210204105232.834642-13-marcandre.lureau@redhat.com> Signed-off-by: Gerd Hoffmann --- diff --git a/include/ui/console.h b/include/ui/console.h index 0595aa9953..875885d9c7 100644 --- a/include/ui/console.h +++ b/include/ui/console.h @@ -224,6 +224,8 @@ typedef struct DisplayChangeListenerOps { uint32_t backing_height, uint32_t x, uint32_t y, uint32_t w, uint32_t h); + /* optional (default to true if has dpy_gl_scanout_dmabuf) */ + bool (*dpy_has_dmabuf)(DisplayChangeListener *dcl); /* optional */ void (*dpy_gl_scanout_dmabuf)(DisplayChangeListener *dcl, QemuDmaBuf *dmabuf); diff --git a/ui/console.c b/ui/console.c index b5bc3f7699..a645418ada 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1463,6 +1463,19 @@ bool console_has_gl(QemuConsole *con) return con->gl != NULL; } +static bool displaychangelistener_has_dmabuf(DisplayChangeListener *dcl) +{ + if (dcl->ops->dpy_has_dmabuf) { + return dcl->ops->dpy_has_dmabuf(dcl); + } + + if (dcl->ops->dpy_gl_scanout_dmabuf) { + return true; + } + + return false; +} + void register_displaychangelistener(DisplayChangeListener *dcl) { static const char nodev[] =