Documentation for <wlr/render/wlr_texture.h>

Back to index

Table of contents

struct wlr_texture

struct wlr_texture {
	const struct wlr_texture_impl *impl;
	uint32_t width, height;


void wlr_texture_destroy(​struct wlr_texture *texture);

Destroys the texture.


struct wlr_texture *wlr_texture_from_buffer(​struct wlr_renderer *renderer, struct wlr_buffer *buffer);

Create a new texture from a buffer.


struct wlr_texture *wlr_texture_from_dmabuf(​struct wlr_renderer *renderer, struct wlr_dmabuf_attributes *attribs);

Create a new texture from a DMA-BUF. The returned texture is immutable.


struct wlr_texture *wlr_texture_from_pixels(​struct wlr_renderer *renderer, uint32_t fmt, uint32_t stride, uint32_t width, uint32_t height, const void *data);

Create a new texture from raw pixel data. `stride` is in bytes. The returned texture is mutable.


bool wlr_texture_update_from_buffer(​struct wlr_texture *texture, struct wlr_buffer *buffer, pixman_region32_t *damage);

Update a texture with a struct wlr_buffer's contents.

The update might be rejected (in case the texture is immutable, the buffer has an unsupported type/format, etc), so callers must be prepared to fall back to re-creating the texture from scratch via wlr_texture_from_buffer().

The damage can be used by the renderer as an optimization: only the supplied region needs to be updated.