Browse Source

ui: add gd_gl_area_scanout_disable

Require the callback, drop the fallback path.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210204105232.834642-8-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
pull/109/head
Marc-André Lureau 5 years ago
committed by Gerd Hoffmann
parent
commit
568b12fccf
  1. 1
      include/ui/gtk.h
  2. 7
      ui/console.c
  3. 7
      ui/gtk-gl-area.c
  4. 1
      ui/gtk.c

1
include/ui/gtk.h

@ -140,6 +140,7 @@ void gd_gl_area_scanout_texture(DisplayChangeListener *dcl,
uint32_t backing_height,
uint32_t x, uint32_t y,
uint32_t w, uint32_t h);
void gd_gl_area_scanout_disable(DisplayChangeListener *dcl);
void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,
uint32_t x, uint32_t y, uint32_t w, uint32_t h);
void gtk_gl_area_init(void);

7
ui/console.c

@ -1806,12 +1806,7 @@ int dpy_gl_ctx_make_current(QemuConsole *con, QEMUGLContext ctx)
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);
}
con->gl->ops->dpy_gl_scanout_disable(con->gl);
}
void dpy_gl_scanout_texture(QemuConsole *con,

7
ui/gtk-gl-area.c

@ -198,6 +198,13 @@ void gd_gl_area_scanout_texture(DisplayChangeListener *dcl,
backing_id, false);
}
void gd_gl_area_scanout_disable(DisplayChangeListener *dcl)
{
VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl);
gtk_gl_area_set_scanout_mode(vc, false);
}
void gd_gl_area_scanout_flush(DisplayChangeListener *dcl,
uint32_t x, uint32_t y, uint32_t w, uint32_t h)
{

1
ui/gtk.c

@ -638,6 +638,7 @@ static const DisplayChangeListenerOps dcl_gl_area_ops = {
.dpy_gl_ctx_destroy = gd_gl_area_destroy_context,
.dpy_gl_ctx_make_current = gd_gl_area_make_current,
.dpy_gl_scanout_texture = gd_gl_area_scanout_texture,
.dpy_gl_scanout_disable = gd_gl_area_scanout_disable,
.dpy_gl_update = gd_gl_area_scanout_flush,
};

Loading…
Cancel
Save