Documentation for <wlr/interfaces/wlr_buffer.h>

Back to index

Table of contents

struct wlr_buffer_impl

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);


void wlr_buffer_init(​struct wlr_buffer *buffer, const struct wlr_buffer_impl *impl, int width, int height);

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_register_resource_interface(​const struct wlr_buffer_resource_interface *iface);

Allows the registration of a struct wl_resource implementation.

The matching function will be called for the struct wl_resource when creating a struct wlr_buffer from a struct wl_resource.

struct wlr_buffer_resource_interface

struct wlr_buffer_resource_interface {
	const char *name;
	bool (*is_instance)(​struct wl_resource *resource);
	struct wlr_buffer *(*from_resource)(​struct wl_resource *resource);