From 08e5b909f94a0f8661e1455575bacbad8c79ae77 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 29 Jun 2021 21:01:11 +0200 Subject: buffer: add wlr_dmabuf_buffer --- include/types/wlr_buffer.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'include') diff --git a/include/types/wlr_buffer.h b/include/types/wlr_buffer.h index 85a8d8b4..b5210bfb 100644 --- a/include/types/wlr_buffer.h +++ b/include/types/wlr_buffer.h @@ -53,6 +53,25 @@ struct wlr_readonly_data_buffer *readonly_data_buffer_create(uint32_t format, */ bool readonly_data_buffer_drop(struct wlr_readonly_data_buffer *buffer); +struct wlr_dmabuf_buffer { + struct wlr_buffer base; + struct wlr_dmabuf_attributes dmabuf; + bool saved; +}; + +/** + * Wraps a DMA-BUF into a wlr_buffer. The DMA-BUF may be accessed until + * dmabuf_buffer_drop() is called. + */ +struct wlr_dmabuf_buffer *dmabuf_buffer_create( + struct wlr_dmabuf_attributes *dmabuf); +/** + * Drops ownership of the buffer (see wlr_buffer_drop() for more details) and + * takes a reference to the DMA-BUF (by dup'ing its file descriptors) if a + * consumer still has the buffer locked. + */ +bool dmabuf_buffer_drop(struct wlr_dmabuf_buffer *buffer); + /** * Buffer capabilities. * -- cgit v1.2.3