diff --git a/include/wlr/types/wlr_scene.h b/include/wlr/types/wlr_scene.h index 7dde17b3a..ee07c69f9 100644 --- a/include/wlr/types/wlr_scene.h +++ b/include/wlr/types/wlr_scene.h @@ -401,6 +401,12 @@ void wlr_scene_buffer_set_buffer(struct wlr_scene_buffer *scene_buffer, void wlr_scene_buffer_set_buffer_with_damage(struct wlr_scene_buffer *scene_buffer, struct wlr_buffer *buffer, const pixman_region32_t *region); +/** + * Sets the buffer's backing texture. + */ +void wlr_scene_buffer_set_texture(struct wlr_scene_buffer *scene_buffer, + struct wlr_texture *texture); + /** * Sets the buffer's opaque region. This is an optimization hint used to * determine if buffers which reside under this one need to be rendered or not. diff --git a/types/scene/wlr_scene.c b/types/scene/wlr_scene.c index 52f577cd8..3ae7db5fa 100644 --- a/types/scene/wlr_scene.c +++ b/types/scene/wlr_scene.c @@ -837,6 +837,11 @@ void wlr_scene_buffer_set_buffer(struct wlr_scene_buffer *scene_buffer, wlr_scene_buffer_set_buffer_with_damage(scene_buffer, buffer, NULL); } +void wlr_scene_buffer_set_texture(struct wlr_scene_buffer *scene_buffer, + struct wlr_texture *texture) { + scene_buffer_set_buffer_and_texture(scene_buffer, NULL, texture, NULL); +} + void wlr_scene_buffer_set_opaque_region(struct wlr_scene_buffer *scene_buffer, const pixman_region32_t *region) { if (pixman_region32_equal(&scene_buffer->opaque_region, region)) {