aboutsummaryrefslogtreecommitdiff
path: root/include/render/shm_allocator.h
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2021-02-09 20:57:47 +0100
committerSimon Ser <contact@emersion.fr>2021-04-17 09:54:39 +0200
commitc6b009ef85fce07f490378e63ac8f3d17b5db92f (patch)
tree043e67fb82f4febe8586c697860250c226594e92 /include/render/shm_allocator.h
parent6c61de996c14047c5f82ee9f29ddb90b341c160a (diff)
render: introduce shared memory allocator
It allocates in local main memory via shm_open, and provides a FD to allow sharing with other processes. This is suitable for software rendering under the Wayland and X11 backends.
Diffstat (limited to 'include/render/shm_allocator.h')
-rw-r--r--include/render/shm_allocator.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/render/shm_allocator.h b/include/render/shm_allocator.h
new file mode 100644
index 00000000..e6cba83b
--- /dev/null
+++ b/include/render/shm_allocator.h
@@ -0,0 +1,23 @@
+#ifndef RENDER_SHM_ALLOCATOR_H
+#define RENDER_SHM_ALLOCATOR_H
+
+#include <wlr/types/wlr_buffer.h>
+#include "render/allocator.h"
+
+struct wlr_shm_buffer {
+ struct wlr_buffer base;
+ struct wlr_shm_attributes shm;
+ void *data;
+ size_t size;
+};
+
+struct wlr_shm_allocator {
+ struct wlr_allocator base;
+};
+
+/**
+ * Creates a new shared memory allocator.
+ */
+struct wlr_shm_allocator *wlr_shm_allocator_create(void);
+
+#endif