From 9fefeb69d6fc1136cfad7d690e1d7385c058fd72 Mon Sep 17 00:00:00 2001 From: Kirill Primak Date: Sat, 5 Nov 2022 09:41:57 +0300 Subject: [PATCH] render/pixman: apply source image cropping --- render/pixman/renderer.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/render/pixman/renderer.c b/render/pixman/renderer.c index d7ed3eae..960f14a3 100644 --- a/render/pixman/renderer.c +++ b/render/pixman/renderer.c @@ -260,10 +260,11 @@ static bool pixman_render_subtexture_with_matrix( pixman_image_set_transform(texture->image, &transform); - // TODO clip properly with src_x and src_y - pixman_image_composite32(PIXMAN_OP_OVER, texture->image, mask, - buffer->image, 0, 0, 0, 0, 0, 0, renderer->width, - renderer->height); + double x = fbox->x * m[0] + fbox->y * m[1] + 1.0 * m[6]; + double y = fbox->x * m[3] + fbox->y * m[4] + 1.0 * m[7]; + + pixman_image_composite32(PIXMAN_OP_OVER, texture->image, mask, buffer->image, + x, y, 0, 0, 0, 0, renderer->width, renderer->height); if (texture->buffer != NULL) { wlr_buffer_end_data_ptr_access(texture->buffer);