ui/gtk-egl: add scanout_dmabuf support
Add support for dmabuf scanouts to gtk-egl. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20180306090951.22932-6-kraxel@redhat.com
This commit is contained in:
parent
4c70280592
commit
70763fea4f
@ -113,6 +113,10 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl,
|
||||
uint32_t backing_height,
|
||||
uint32_t x, uint32_t y,
|
||||
uint32_t w, uint32_t h);
|
||||
void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
|
||||
QemuDmaBuf *dmabuf);
|
||||
void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
|
||||
QemuDmaBuf *dmabuf);
|
||||
void gd_egl_scanout_flush(DisplayChangeListener *dcl,
|
||||
uint32_t x, uint32_t y, uint32_t w, uint32_t h);
|
||||
void gtk_egl_init(void);
|
||||
|
23
ui/gtk-egl.c
23
ui/gtk-egl.c
@ -194,6 +194,29 @@ void gd_egl_scanout_texture(DisplayChangeListener *dcl,
|
||||
backing_id, false);
|
||||
}
|
||||
|
||||
void gd_egl_scanout_dmabuf(DisplayChangeListener *dcl,
|
||||
QemuDmaBuf *dmabuf)
|
||||
{
|
||||
#ifdef CONFIG_OPENGL_DMABUF
|
||||
egl_dmabuf_import_texture(dmabuf);
|
||||
if (!dmabuf->texture) {
|
||||
return;
|
||||
}
|
||||
|
||||
gd_egl_scanout_texture(dcl, dmabuf->texture,
|
||||
false, dmabuf->width, dmabuf->height,
|
||||
0, 0, dmabuf->width, dmabuf->height);
|
||||
#endif
|
||||
}
|
||||
|
||||
void gd_egl_release_dmabuf(DisplayChangeListener *dcl,
|
||||
QemuDmaBuf *dmabuf)
|
||||
{
|
||||
#ifdef CONFIG_OPENGL_DMABUF
|
||||
egl_dmabuf_release_texture(dmabuf);
|
||||
#endif
|
||||
}
|
||||
|
||||
void gd_egl_scanout_flush(DisplayChangeListener *dcl,
|
||||
uint32_t x, uint32_t y, uint32_t w, uint32_t h)
|
||||
{
|
||||
|
2
ui/gtk.c
2
ui/gtk.c
@ -744,6 +744,8 @@ static const DisplayChangeListenerOps dcl_egl_ops = {
|
||||
.dpy_gl_ctx_get_current = qemu_egl_get_current_context,
|
||||
.dpy_gl_scanout_disable = gd_egl_scanout_disable,
|
||||
.dpy_gl_scanout_texture = gd_egl_scanout_texture,
|
||||
.dpy_gl_scanout_dmabuf = gd_egl_scanout_dmabuf,
|
||||
.dpy_gl_release_dmabuf = gd_egl_release_dmabuf,
|
||||
.dpy_gl_update = gd_egl_scanout_flush,
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user