This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository legacy-imlib2.

View the commit online.

commit f7a61bff9f223e4bafe3d2a0a9f12aace02a7525
Author: NRK <[email protected]>
AuthorDate: Sun Apr 26 23:36:04 2026 +0000

    scale: support flips with uscaler
---
 src/lib/scale.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/lib/scale.c b/src/lib/scale.c
index bc93a5e..44663cc 100644
--- a/src/lib/scale.c
+++ b/src/lib/scale.c
@@ -232,13 +232,13 @@ __imlib_CalcScaleInfo(const ImlibImage *im, int sw, int sh, int dw, int dh,
     isi->pix_assert = im->data + im->w * im->h;
 
 #ifdef ENABLE_USCALER
-    if (aa && dw > 0 && dh > 0 && scw > 0 && sch > 0 &&
-        !im->border.left && !im->border.right &&
+    if (aa && !im->border.left && !im->border.right &&
         !im->border.top && !im->border.bottom)
     {
         static float    weights[256][4];
         static int      weights_initialized;
         UscExtra        extra = {.bicubic_weights = weights };
+        UscFlipFlags    flip = USC_FLIP_NONE;
 
         if (!weights_initialized)
         {
@@ -250,13 +250,21 @@ __imlib_CalcScaleInfo(const ImlibImage *im, int sw, int sh, int dw, int dh,
         if (!isi->usc_ctx)
             goto bail;
 
-        if (usc_ctx_init(isi->usc_ctx, im->w, im->h, scw, sch, &extra) < 0)
+        if (dw < 0)
+            flip |= USC_FLIP_X;
+        if (dh < 0)
+            flip |= USC_FLIP_Y;
+
+        if (usc_ctx_init(isi->usc_ctx, im->w, im->h,
+                         abs(scw), abs(sch), &extra) < 0)
         {
             free(isi->usc_ctx);
             isi->usc_ctx = NULL;
             goto bail;
         }
 
+        usc_ctx_set_flip(isi->usc_ctx, flip);
+
         return isi;
     }
 #endif

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to