From 3ce2ea9e16fcd1bfab4ec9d5994fa721c5d58dcd Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 25 Aug 2021 09:33:19 +0200 Subject: Move allocator stuff into new directory Add render/allocator/ and include/render/allocator/ to hold everything allocator-related. --- include/render/allocator.h | 55 ------------------------------------ include/render/allocator/allocator.h | 54 +++++++++++++++++++++++++++++++++++ include/render/allocator/drm_dumb.h | 37 ++++++++++++++++++++++++ include/render/allocator/gbm.h | 34 ++++++++++++++++++++++ include/render/allocator/shm.h | 23 +++++++++++++++ include/render/drm_dumb_allocator.h | 37 ------------------------ include/render/gbm_allocator.h | 33 ---------------------- include/render/shm_allocator.h | 23 --------------- 8 files changed, 148 insertions(+), 148 deletions(-) delete mode 100644 include/render/allocator.h create mode 100644 include/render/allocator/allocator.h create mode 100644 include/render/allocator/drm_dumb.h create mode 100644 include/render/allocator/gbm.h create mode 100644 include/render/allocator/shm.h delete mode 100644 include/render/drm_dumb_allocator.h delete mode 100644 include/render/gbm_allocator.h delete mode 100644 include/render/shm_allocator.h (limited to 'include') diff --git a/include/render/allocator.h b/include/render/allocator.h deleted file mode 100644 index c33ab126..00000000 --- a/include/render/allocator.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef RENDER_ALLOCATOR -#define RENDER_ALLOCATOR - -#include -#include -#include -#include - -struct wlr_allocator; -struct wlr_backend; -struct wlr_renderer; - -struct wlr_allocator_interface { - struct wlr_buffer *(*create_buffer)(struct wlr_allocator *alloc, - int width, int height, const struct wlr_drm_format *format); - void (*destroy)(struct wlr_allocator *alloc); -}; - -struct wlr_allocator { - const struct wlr_allocator_interface *impl; - - // Capabilites of the buffers created with this allocator - uint32_t buffer_caps; - - struct { - struct wl_signal destroy; - } events; -}; - -/** - * Creates the adequate wlr_allocator given a backend and a renderer - */ -struct wlr_allocator *wlr_allocator_autocreate(struct wlr_backend *backend, - struct wlr_renderer *renderer); -/** - * Destroy the allocator. - */ -void wlr_allocator_destroy(struct wlr_allocator *alloc); -/** - * Allocate a new buffer. - * - * When the caller is done with it, they must unreference it by calling - * wlr_buffer_drop. - */ -struct wlr_buffer *wlr_allocator_create_buffer(struct wlr_allocator *alloc, - int width, int height, const struct wlr_drm_format *format); - -// For wlr_allocator implementors -void wlr_allocator_init(struct wlr_allocator *alloc, - const struct wlr_allocator_interface *impl, uint32_t buffer_caps); - -struct wlr_allocator *allocator_autocreate_with_drm_fd( - struct wlr_backend *backend, struct wlr_renderer *renderer, int drm_fd); - -#endif diff --git a/include/render/allocator/allocator.h b/include/render/allocator/allocator.h new file mode 100644 index 00000000..d67116cd --- /dev/null +++ b/include/render/allocator/allocator.h @@ -0,0 +1,54 @@ +#ifndef RENDER_ALLOCATOR_ALLOCATOR_H +#define RENDER_ALLOCATOR_ALLOCATOR_H + +#include +#include +#include + +struct wlr_allocator; +struct wlr_backend; +struct wlr_renderer; + +struct wlr_allocator_interface { + struct wlr_buffer *(*create_buffer)(struct wlr_allocator *alloc, + int width, int height, const struct wlr_drm_format *format); + void (*destroy)(struct wlr_allocator *alloc); +}; + +struct wlr_allocator { + const struct wlr_allocator_interface *impl; + + // Capabilites of the buffers created with this allocator + uint32_t buffer_caps; + + struct { + struct wl_signal destroy; + } events; +}; + +/** + * Creates the adequate wlr_allocator given a backend and a renderer + */ +struct wlr_allocator *wlr_allocator_autocreate(struct wlr_backend *backend, + struct wlr_renderer *renderer); +/** + * Destroy the allocator. + */ +void wlr_allocator_destroy(struct wlr_allocator *alloc); +/** + * Allocate a new buffer. + * + * When the caller is done with it, they must unreference it by calling + * wlr_buffer_drop. + */ +struct wlr_buffer *wlr_allocator_create_buffer(struct wlr_allocator *alloc, + int width, int height, const struct wlr_drm_format *format); + +// For wlr_allocator implementors +void wlr_allocator_init(struct wlr_allocator *alloc, + const struct wlr_allocator_interface *impl, uint32_t buffer_caps); + +struct wlr_allocator *allocator_autocreate_with_drm_fd( + struct wlr_backend *backend, struct wlr_renderer *renderer, int drm_fd); + +#endif diff --git a/include/render/allocator/drm_dumb.h b/include/render/allocator/drm_dumb.h new file mode 100644 index 00000000..7e37acfb --- /dev/null +++ b/include/render/allocator/drm_dumb.h @@ -0,0 +1,37 @@ +#ifndef RENDER_ALLOCATOR_DRM_DUMB_H +#define RENDER_ALLOCATOR_DRM_DUMB_H + +#include +#include +#include "render/allocator/allocator.h" + +struct wlr_drm_dumb_buffer { + struct wlr_buffer base; + struct wl_list link; // wlr_drm_dumb_allocator::buffers + + int drm_fd; // -1 if the allocator has been destroyed + struct wlr_dmabuf_attributes dmabuf; + + uint32_t format; + uint32_t handle; + uint32_t stride; + uint32_t width, height; + + uint64_t size; + void *data; +}; + +struct wlr_drm_dumb_allocator { + struct wlr_allocator base; + struct wl_list buffers; // wlr_drm_dumb_buffer::link + int drm_fd; +}; + +/** + * Creates a new drm dumb allocator from a DRM FD. + * + * Does not take ownership over the FD. + */ +struct wlr_allocator *wlr_drm_dumb_allocator_create(int fd); + +#endif 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 +#include +#include +#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 diff --git a/include/render/allocator/shm.h b/include/render/allocator/shm.h new file mode 100644 index 00000000..4b80e475 --- /dev/null +++ b/include/render/allocator/shm.h @@ -0,0 +1,23 @@ +#ifndef RENDER_ALLOCATOR_SHM_H +#define RENDER_ALLOCATOR_SHM_H + +#include +#include "render/allocator/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_allocator *wlr_shm_allocator_create(void); + +#endif diff --git a/include/render/drm_dumb_allocator.h b/include/render/drm_dumb_allocator.h deleted file mode 100644 index ff10d54b..00000000 --- a/include/render/drm_dumb_allocator.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef RENDER_DRM_DUMB_ALLOCATOR_H -#define RENDER_DRM_DUMB_ALLOCATOR_H - -#include "render/allocator.h" - -#include - -struct wlr_drm_dumb_buffer { - struct wlr_buffer base; - struct wl_list link; // wlr_drm_dumb_allocator::buffers - - int drm_fd; // -1 if the allocator has been destroyed - struct wlr_dmabuf_attributes dmabuf; - - uint32_t format; - uint32_t handle; - uint32_t stride; - uint32_t width, height; - - uint64_t size; - void *data; -}; - -struct wlr_drm_dumb_allocator { - struct wlr_allocator base; - struct wl_list buffers; // wlr_drm_dumb_buffer::link - int drm_fd; -}; - -/** - * Creates a new drm dumb allocator from a DRM FD. - * - * Does not take ownership over the FD. - */ -struct wlr_allocator *wlr_drm_dumb_allocator_create(int fd); - -#endif diff --git a/include/render/gbm_allocator.h b/include/render/gbm_allocator.h deleted file mode 100644 index df6b5e39..00000000 --- a/include/render/gbm_allocator.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef RENDER_GBM_ALLOCATOR_H -#define RENDER_GBM_ALLOCATOR_H - -#include -#include -#include "render/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 diff --git a/include/render/shm_allocator.h b/include/render/shm_allocator.h deleted file mode 100644 index d1f48f7f..00000000 --- a/include/render/shm_allocator.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef RENDER_SHM_ALLOCATOR_H -#define RENDER_SHM_ALLOCATOR_H - -#include -#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_allocator *wlr_shm_allocator_create(void); - -#endif -- cgit v1.2.3