scene: add support for viewporter

If the surface has a source box set, use that.

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3172
This commit is contained in:
Simon Ser 2021-11-26 10:26:01 +01:00 committed by Kirill Primak
parent 83d78f9fd4
commit 254ab890e7
1 changed files with 5 additions and 1 deletions

View File

@ -715,7 +715,11 @@ static void render_node_iterator(struct wlr_scene_node *node,
wlr_matrix_project_box(matrix, &dst_box, transform, 0.0, wlr_matrix_project_box(matrix, &dst_box, transform, 0.0,
output->transform_matrix); output->transform_matrix);
render_texture(output, output_damage, texture, NULL, &dst_box, matrix); struct wlr_fbox src_box = {0};
wlr_surface_get_buffer_source_box(surface, &src_box);
render_texture(output, output_damage, texture,
&src_box, &dst_box, matrix);
break; break;
case WLR_SCENE_NODE_RECT:; case WLR_SCENE_NODE_RECT:;
struct wlr_scene_rect *scene_rect = scene_rect_from_node(node); struct wlr_scene_rect *scene_rect = scene_rect_from_node(node);