Documentation for <wlr/render/interface.h>

Back to index

Table of contents

struct wlr_renderer_impl

struct wlr_renderer_impl {
	bool (*bind_buffer)(​struct wlr_renderer *renderer, struct wlr_buffer *buffer);
	void (*begin)(​struct wlr_renderer *renderer, uint32_t width, uint32_t height);
	void (*end)(​struct wlr_renderer *renderer);
	void (*clear)(​struct wlr_renderer *renderer, const float color[]);
	void (*scissor)(​struct wlr_renderer *renderer, struct wlr_box *box);
	bool (*render_subtexture_with_matrix)(​struct wlr_renderer *renderer, struct wlr_texture *texture, const struct wlr_fbox *box, const float matrix[], float alpha);
	void (*render_quad_with_matrix)(​struct wlr_renderer *renderer, const float color[], const float matrix[]);
	const uint32_t *(*get_shm_texture_formats)(​struct wlr_renderer *renderer, size_t *len);
	const struct wlr_drm_format_set *(*get_dmabuf_texture_formats)(​struct wlr_renderer *renderer);
	const struct wlr_drm_format_set *(*get_render_formats)(​struct wlr_renderer *renderer);
	uint32_t (*preferred_read_format)(​struct wlr_renderer *renderer);
	bool (*read_pixels)(​struct wlr_renderer *renderer, uint32_t fmt, uint32_t *flags, uint32_t stride, uint32_t width, uint32_t height, uint32_t src_x, uint32_t src_y, uint32_t dst_x, uint32_t dst_y, void *data);
	void (*destroy)(​struct wlr_renderer *renderer);
	int (*get_drm_fd)(​struct wlr_renderer *renderer);
	uint32_t (*get_render_buffer_caps)(​struct wlr_renderer *renderer);
	struct wlr_texture *(*texture_from_buffer)(​struct wlr_renderer *renderer, struct wlr_buffer *buffer);
};

wlr_renderer_init()

void wlr_renderer_init(​struct wlr_renderer *renderer, const struct wlr_renderer_impl *impl);

struct wlr_texture_impl

struct wlr_texture_impl {
	bool (*is_opaque)(​struct wlr_texture *texture);
	bool (*write_pixels)(​struct wlr_texture *texture, uint32_t stride, uint32_t width, uint32_t height, uint32_t src_x, uint32_t src_y, uint32_t dst_x, uint32_t dst_y, const void *data);
	void (*destroy)(​struct wlr_texture *texture);
};

wlr_texture_init()

void wlr_texture_init(​struct wlr_texture *texture, const struct wlr_texture_impl *impl, uint32_t width, uint32_t height);