[Qemu-devel] [PATCH 2/6] console: add dpy_gl_scanout_disable

Gerd Hoffmann posted 6 patches 146 weeks ago

[Qemu-devel] [PATCH 2/6] console: add dpy_gl_scanout_disable

Posted by Gerd Hoffmann 146 weeks ago
Helper function (and DisplayChangeListenerOps ptr) to disable scanouts.
Replaces using dpy_gl_scanout_texture with 0x0 size and no texture
specified.

Allows cleanups to make the io and gfx emulation code more readable.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 include/ui/console.h |  2 ++
 ui/console.c         | 11 +++++++++++
 2 files changed, 13 insertions(+)

diff --git a/include/ui/console.h b/include/ui/console.h
index e6ae637..ac2895c 100644
--- a/include/ui/console.h
+++ b/include/ui/console.h
@@ -215,6 +215,7 @@ typedef struct DisplayChangeListenerOps {
                                    QEMUGLContext ctx);
     QEMUGLContext (*dpy_gl_ctx_get_current)(DisplayChangeListener *dcl);
 
+    void (*dpy_gl_scanout_disable)(DisplayChangeListener *dcl);
     void (*dpy_gl_scanout_texture)(DisplayChangeListener *dcl,
                                    uint32_t backing_id,
                                    bool backing_y_0_top,
@@ -287,6 +288,7 @@ bool dpy_cursor_define_supported(QemuConsole *con);
 bool dpy_gfx_check_format(QemuConsole *con,
                           pixman_format_code_t format);
 
+void dpy_gl_scanout_disable(QemuConsole *con);
 void dpy_gl_scanout_texture(QemuConsole *con,
                             uint32_t backing_id, bool backing_y_0_top,
                             uint32_t backing_width, uint32_t backing_height,
diff --git a/ui/console.c b/ui/console.c
index 22c3c7d..d1ff750 100644
--- a/ui/console.c
+++ b/ui/console.c
@@ -1735,6 +1735,17 @@ QEMUGLContext dpy_gl_ctx_get_current(QemuConsole *con)
     return con->gl->ops->dpy_gl_ctx_get_current(con->gl);
 }
 
+void dpy_gl_scanout_disable(QemuConsole *con)
+{
+    assert(con->gl);
+    if (con->gl->ops->dpy_gl_scanout_disable) {
+        con->gl->ops->dpy_gl_scanout_disable(con->gl);
+    } else {
+        con->gl->ops->dpy_gl_scanout_texture(con->gl, 0, false, 0, 0,
+                                             0, 0, 0, 0);
+    }
+}
+
 void dpy_gl_scanout_texture(QemuConsole *con,
                             uint32_t backing_id,
                             bool backing_y_0_top,
-- 
1.8.3.1