aboutsummaryrefslogtreecommitdiff
path: root/include/render/allocator/gbm.h
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-08-25 09:33:19 +0200
committerSimon Zeni <simon@bl4ckb0ne.ca>2021-08-25 09:57:20 -0400
commit3ce2ea9e16fcd1bfab4ec9d5994fa721c5d58dcd (patch)
tree1bce6445158968c4d73cd73be30c141468dbc84c /include/render/allocator/gbm.h
parentb37731cdbbef4dc52033c2d26b04d2329720fa07 (diff)
Move allocator stuff into new directory
Add render/allocator/ and include/render/allocator/ to hold everything allocator-related.
Diffstat (limited to 'include/render/allocator/gbm.h')
-rw-r--r--include/render/allocator/gbm.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/render/allocator/gbm.h b/include/render/allocator/gbm.h
new file mode 100644
index 00000000..eb112e7c
--- /dev/null
+++ b/include/render/allocator/gbm.h
@@ -0,0 +1,34 @@
+#ifndef RENDER_ALLOCATOR_GBM_H
+#define RENDER_ALLOCATOR_GBM_H
+
+#include <gbm.h>
+#include <wlr/render/dmabuf.h>
+#include <wlr/types/wlr_buffer.h>
+#include "render/allocator/allocator.h"
+
+struct wlr_gbm_buffer {
+ struct wlr_buffer base;
+
+ struct wl_list link; // wlr_gbm_allocator.buffers
+
+ struct gbm_bo *gbm_bo; // NULL if the gbm_device has been destroyed
+ struct wlr_dmabuf_attributes dmabuf;
+};
+
+struct wlr_gbm_allocator {
+ struct wlr_allocator base;
+
+ int fd;
+ struct gbm_device *gbm_device;
+
+ struct wl_list buffers; // wlr_gbm_buffer.link
+};
+
+/**
+ * Creates a new GBM allocator from a DRM FD.
+ *
+ * Does not take ownership over the FD.
+ */
+struct wlr_allocator *wlr_gbm_allocator_create(int drm_fd);
+
+#endif