console: add dpy_gl_scanout_disable

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>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 1487669841-13668-3-git-send-email-kraxel@redhat.com
This commit is contained in:
Gerd Hoffmann 2017-02-21 10:37:17 +01:00
parent f4c36bdab6
commit eaa92c76ce
2 changed files with 13 additions and 0 deletions

View File

@ -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,

View File

@ -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,