From 61097080e53b4950bde87cd532e9498a630bd07a Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Fri, 17 Feb 2023 14:30:26 +0100 Subject: [PATCH] x11_grab: Eliminate unnecessary pixmap copy Speeds up 1:1 scaling with non-zero source offset in imlib_create_scaled_image_from_drawable(). --- src/lib/x11_grab.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/lib/x11_grab.c b/src/lib/x11_grab.c index f535fe4..1484526 100644 --- a/src/lib/x11_grab.c +++ b/src/lib/x11_grab.c @@ -833,15 +833,7 @@ __imlib_GrabDrawableScaledToRGBA(uint32_t * data, int nu_x_dst, int nu_y_dst, if (w_dst == w_src && h_dst == h_src) { - if (x_src == 0 && y_src == 0) - { - psc = p; - } - else - { - psc = XCreatePixmap(d, p, w_src, h_tmp, depth); - XCopyArea(d, p, psc, gc, x_src, y_src, w_src, h_src, 0, 0); - } + psc = p; msc = m; } else @@ -887,10 +879,11 @@ __imlib_GrabDrawableScaledToRGBA(uint32_t * data, int nu_x_dst, int nu_y_dst, XCopyArea(d, msc, msc, mgc, 0, xx, w_dst, 1, 0, i); } } + x_src = y_src = 0; } rc = __imlib_GrabDrawableToRGBA(data, 0, 0, w_dst, h_dst, d, psc, msc, - v, cm, depth, 0, 0, w_dst, h_dst, + v, cm, depth, x_src, y_src, w_dst, h_dst, pdomask, grab); if (mgc)