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 b1bbe1d9e8cea98fe68efee0aa286d601ea7bf33
Author: Kim Woelders <[email protected]>
AuthorDate: Mon Nov 14 19:21:04 2022 +0100

    multiframe: Centralize handling of frame update offsets
---
 src/lib/image.c                   | 8 +++++++-
 src/modules/loaders/loader_gif.c  | 2 +-
 src/modules/loaders/loader_png.c  | 6 +++---
 src/modules/loaders/loader_webp.c | 2 +-
 4 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/lib/image.c b/src/lib/image.c
index f73890f..820de3a 100644
--- a/src/lib/image.c
+++ b/src/lib/image.c
@@ -729,6 +729,9 @@ __imlib_LoadProgress(ImlibImage * im, int x, int y, int w, int h)
    lc->area += w * h;
    lc->pct = (100. * lc->area + .1) / (im->w * im->h);
 
+   x += im->frame_x;
+   y += im->frame_y;
+
    rc = !lc->progress(im, lc->pct, x, y, w, h);
 
    return rc;
@@ -738,6 +741,7 @@ __EXPORT__ int
 __imlib_LoadProgressRows(ImlibImage * im, int row, int nrows)
 {
    ImlibLdCtx         *lc = im->lc;
+   int                 col = 0;
    int                 rc = 0;
    int                 pct, nrtot;
 
@@ -758,7 +762,9 @@ __imlib_LoadProgressRows(ImlibImage * im, int row, int nrows)
    pct = (100 * nrtot * (lc->pass + 1)) / (im->h * lc->n_pass);
    if (pct == 100 || pct >= lc->pct + lc->granularity)
      {
-        rc = !lc->progress(im, pct, 0, row, im->w, nrows);
+        col += im->frame_x;
+        row += im->frame_y;
+        rc = !lc->progress(im, pct, col, row, im->w, nrows);
         lc->row = nrtot;
         lc->pct += lc->granularity;
      }
diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c
index 7e81726..aac328a 100644
--- a/src/modules/loaders/loader_gif.c
+++ b/src/modules/loaders/loader_gif.c
@@ -278,7 +278,7 @@ _load(ImlibImage * im, int load_data)
      }
 
    if (multiframe && im->lc)
-      __imlib_LoadProgress(im, im->frame_x, im->frame_y, im->w, im->h);
+      __imlib_LoadProgress(im, 0, 0, im->w, im->h);
 
    rc = LOAD_SUCCESS;
 
diff --git a/src/modules/loaders/loader_png.c b/src/modules/loaders/loader_png.c
index 16cf268..79f5b02 100644
--- a/src/modules/loaders/loader_png.c
+++ b/src/modules/loaders/loader_png.c
@@ -261,7 +261,7 @@ row_callback(png_struct * png_ptr, png_byte * new_row,
 
         done = pass >= 6 && (int)row_num >= PNG_PASS_ROWS(im->h, pass) - 1;
         if (im->lc && done)
-           __imlib_LoadProgress(im, im->frame_x, im->frame_y, im->w, im->h);
+           __imlib_LoadProgress(im, 0, 0, im->w, im->h);
      }
    else
      {
@@ -277,9 +277,9 @@ row_callback(png_struct * png_ptr, png_byte * new_row,
              if (im->frame_count > 1)
                {
                   if (done)
-                     __imlib_LoadProgress(im, im->frame_x, im->frame_y, im->w,
-                                          im->h);
+                     __imlib_LoadProgress(im, 0, 0, im->w, im->h);
                }
+
              else if (__imlib_LoadProgressRows(im, y, 1))
                {
                   png_process_data_pause(png_ptr, 0);
diff --git a/src/modules/loaders/loader_webp.c b/src/modules/loaders/loader_webp.c
index 1b773a1..963cec2 100644
--- a/src/modules/loaders/loader_webp.c
+++ b/src/modules/loaders/loader_webp.c
@@ -93,7 +93,7 @@ _load(ImlibImage * im, int load_data)
       goto quit;
 
    if (im->lc)
-      __imlib_LoadProgress(im, im->frame_x, im->frame_y, im->w, im->h);
+      __imlib_LoadProgress(im, 0, 0, im->w, im->h);
 
    rc = LOAD_SUCCESS;
 

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

Reply via email to