xwayland: Use the pixmap release callback with EGLStream
Commit 77658741
- "xwayland: Add buffer release callback" added an API
to deal with Wayland buffer release callbacks.
The EGLstream implementation has its own wl_buffer callback, move that
to the buffer release API instead so we don't have to deal with Wayland
buffers directly and match the other Xwayland pixmap backend
implementations.
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Erik Kurzinger <ekurzinger@nvidia.com>
This commit is contained in:
parent
e538601128
commit
662b2bcb84
|
@ -465,14 +465,14 @@ xwl_eglstream_queue_pending_stream(struct xwl_screen *xwl_screen,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xwl_eglstream_buffer_release_callback(void *data, struct wl_buffer *wl_buffer)
|
xwl_eglstream_buffer_release_callback(void *data)
|
||||||
{
|
{
|
||||||
/* drop the reference we took in post_damage, freeing if necessary */
|
/* drop the reference we took in post_damage, freeing if necessary */
|
||||||
dixDestroyPixmap(data, 0);
|
dixDestroyPixmap(data, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct wl_buffer_listener xwl_eglstream_buffer_release_listener = {
|
static const struct wl_buffer_listener xwl_eglstream_buffer_release_listener = {
|
||||||
xwl_eglstream_buffer_release_callback
|
xwl_pixmap_buffer_release_cb,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -511,6 +511,10 @@ xwl_eglstream_create_pending_stream(struct xwl_screen *xwl_screen,
|
||||||
&xwl_eglstream_buffer_release_listener,
|
&xwl_eglstream_buffer_release_listener,
|
||||||
pixmap);
|
pixmap);
|
||||||
|
|
||||||
|
xwl_pixmap_set_buffer_release_cb(pixmap,
|
||||||
|
xwl_eglstream_buffer_release_callback,
|
||||||
|
pixmap);
|
||||||
|
|
||||||
wl_eglstream_controller_attach_eglstream_consumer(
|
wl_eglstream_controller_attach_eglstream_consumer(
|
||||||
xwl_eglstream->controller, xwl_window->surface, xwl_pixmap->buffer);
|
xwl_eglstream->controller, xwl_window->surface, xwl_pixmap->buffer);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue