aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/types/wlr_buffer.h19
1 files changed, 19 insertions, 0 deletions
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.
*