diff options
author | Simon Ser <contact@emersion.fr> | 2022-03-03 15:38:26 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2022-03-03 15:39:05 +0100 |
commit | 39b68ea47a661b1f7562ce283652de08f222b2be (patch) | |
tree | ef00d4ccae8e112de3753c9e5203c34921d09090 /include | |
parent | d0718a9b32dc9d80b35eae269b60a22caa9c268f (diff) |
buffer: extract interface to separate header
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3389
Diffstat (limited to 'include')
-rw-r--r-- | include/wlr/interfaces/wlr_buffer.h | 48 | ||||
-rw-r--r-- | include/wlr/types/wlr_buffer.h | 32 |
2 files changed, 48 insertions, 32 deletions
diff --git a/include/wlr/interfaces/wlr_buffer.h b/include/wlr/interfaces/wlr_buffer.h new file mode 100644 index 00000000..05ccc1e7 --- /dev/null +++ b/include/wlr/interfaces/wlr_buffer.h @@ -0,0 +1,48 @@ +/* + * This an unstable interface of wlroots. No guarantees are made regarding the + * future consistency of this API. + */ +#ifndef WLR_USE_UNSTABLE +#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features" +#endif + +#ifndef WLR_INTERFACES_WLR_BUFFER_H +#define WLR_INTERFACES_WLR_BUFFER_H + +#include <wlr/types/wlr_buffer.h> + +struct wlr_buffer_impl { + void (*destroy)(struct wlr_buffer *buffer); + bool (*get_dmabuf)(struct wlr_buffer *buffer, + struct wlr_dmabuf_attributes *attribs); + bool (*get_shm)(struct wlr_buffer *buffer, + struct wlr_shm_attributes *attribs); + bool (*begin_data_ptr_access)(struct wlr_buffer *buffer, uint32_t flags, + void **data, uint32_t *format, size_t *stride); + void (*end_data_ptr_access)(struct wlr_buffer *buffer); +}; + +struct wlr_buffer_resource_interface { + const char *name; + bool (*is_instance)(struct wl_resource *resource); + struct wlr_buffer *(*from_resource)(struct wl_resource *resource); +}; + +/** + * Initialize a buffer. This function should be called by producers. The + * initialized buffer is referenced: once the producer is done with the buffer + * they should call wlr_buffer_drop. + */ +void wlr_buffer_init(struct wlr_buffer *buffer, + const struct wlr_buffer_impl *impl, int width, int height); + +/** + * Allows the registration of a wl_resource implementation. + * + * The matching function will be called for the wl_resource when creating a + * wlr_buffer from a wl_resource. + */ +void wlr_buffer_register_resource_interface( + const struct wlr_buffer_resource_interface *iface); + +#endif diff --git a/include/wlr/types/wlr_buffer.h b/include/wlr/types/wlr_buffer.h index 60dbb5c3..604dc17a 100644 --- a/include/wlr/types/wlr_buffer.h +++ b/include/wlr/types/wlr_buffer.h @@ -24,17 +24,6 @@ struct wlr_shm_attributes { off_t offset; }; -struct wlr_buffer_impl { - void (*destroy)(struct wlr_buffer *buffer); - bool (*get_dmabuf)(struct wlr_buffer *buffer, - struct wlr_dmabuf_attributes *attribs); - bool (*get_shm)(struct wlr_buffer *buffer, - struct wlr_shm_attributes *attribs); - bool (*begin_data_ptr_access)(struct wlr_buffer *buffer, uint32_t flags, - void **data, uint32_t *format, size_t *stride); - void (*end_data_ptr_access)(struct wlr_buffer *buffer); -}; - /** * Buffer capabilities. * @@ -72,19 +61,6 @@ struct wlr_buffer { struct wlr_addon_set addons; }; -struct wlr_buffer_resource_interface { - const char *name; - bool (*is_instance)(struct wl_resource *resource); - struct wlr_buffer *(*from_resource)(struct wl_resource *resource); -}; - -/** - * Initialize a buffer. This function should be called by producers. The - * initialized buffer is referenced: once the producer is done with the buffer - * they should call wlr_buffer_drop. - */ -void wlr_buffer_init(struct wlr_buffer *buffer, - const struct wlr_buffer_impl *impl, int width, int height); /** * Unreference the buffer. This function should be called by producers when * they are done with the buffer. @@ -122,14 +98,6 @@ bool wlr_buffer_get_dmabuf(struct wlr_buffer *buffer, bool wlr_buffer_get_shm(struct wlr_buffer *buffer, struct wlr_shm_attributes *attribs); /** - * Allows the registration of a wl_resource implementation. - * - * The matching function will be called for the wl_resource when creating a - * wlr_buffer from a wl_resource. - */ -void wlr_buffer_register_resource_interface( - const struct wlr_buffer_resource_interface *iface); -/** * Transforms a wl_resource into a wlr_buffer and locks it. Once the caller is * done with the buffer, they must call wlr_buffer_unlock. * |