Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package swaybg for openSUSE:Factory checked 
in at 2021-07-20 15:39:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/swaybg (Old)
 and      /work/SRC/openSUSE:Factory/.swaybg.new.2632 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "swaybg"

Tue Jul 20 15:39:35 2021 rev:3 rq:907254 version:1.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/swaybg/swaybg.changes    2020-05-07 
14:55:51.682441363 +0200
+++ /work/SRC/openSUSE:Factory/.swaybg.new.2632/swaybg.changes  2021-07-20 
15:40:19.745565204 +0200
@@ -1,0 +2,7 @@
+Tue Jul 20 07:48:35 UTC 2021 - Michael Vetter <mvet...@suse.com>
+
+- Update to 1.1:
+  * This release contains performance improvements: swaybg should use less
+    memory and load faster.
+
+-------------------------------------------------------------------

Old:
----
  swaybg-1.0.tar.gz

New:
----
  swaybg-1.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ swaybg.spec ++++++
--- /var/tmp/diff_new_pack.FNvhDu/_old  2021-07-20 15:40:20.177565977 +0200
+++ /var/tmp/diff_new_pack.FNvhDu/_new  2021-07-20 15:40:20.177565977 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package swaybg
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,13 +17,13 @@
 
 
 Name:           swaybg
-Version:        1.0
+Version:        1.1
 Release:        0
 Summary:        Wallpaper tool for Wayland compositors
 License:        MIT
 Group:          System/GUI/Other
 URL:            https://github.com/swaywm/swaybg
-Source0:        
https://github.com/swaywm/swaybg/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
+Source0:        
https://github.com/swaywm/swaybg/releases/download/v%{version}/swaybg-%{version}.tar.gz
 BuildRequires:  gcc-c++
 BuildRequires:  meson >= 0.48.0
 BuildRequires:  pkgconfig

++++++ swaybg-1.0.tar.gz -> swaybg-1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/.build.yml new/swaybg-1.1/.build.yml
--- old/swaybg-1.0/.build.yml   1970-01-01 01:00:00.000000000 +0100
+++ new/swaybg-1.1/.build.yml   2021-07-19 13:27:09.000000000 +0200
@@ -0,0 +1,17 @@
+image: alpine/edge
+packages:
+  - cairo-dev
+  - gdk-pixbuf-dev
+  - meson
+  - scdoc
+  - wayland-dev
+  - wayland-protocols
+sources:
+  - https://github.com/swaywm/swaybg
+tasks:
+  - setup: |
+      cd swaybg
+      meson build/ --fatal-meson-warnings -Dauto_features=enabled
+  - build: |
+      cd swaybg
+      ninja -C build/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/README.md new/swaybg-1.1/README.md
--- old/swaybg-1.0/README.md    2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/README.md    2021-07-19 13:27:09.000000000 +0200
@@ -11,8 +11,8 @@
 
 ## Release Signatures
 
-Releases are signed with 
[B22DA89A](http://pgp.mit.edu/pks/lookup?op=vindex&search=0x52CB6609B22DA89A)
-and published [on GitHub](https://github.com/swaywm/swaylock/releases). swaybg
+Releases are signed with 
[E88F5E48](https://keys.openpgp.org/search?q=34FF9526CFEF0E97A340E2E40FDE7BE0E88F5E48)
+and published [on GitHub](https://github.com/swaywm/swaybg/releases). swaybg
 releases are managed independently of sway releases.
 
 ## Installation
@@ -33,16 +33,14 @@
 * wayland
 * wayland-protocols \*
 * cairo
-* gdk-pixbuf2 \*\*
+* gdk-pixbuf2 (optional: image formats other than PNG)
 * [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (optional: man pages) \*
-* git \*
+* git (optional: version information) \*
 
-_\*Compile-time dep_
-
-_\*\*optional: required for background images other than PNG_
+_\* Compile-time dep_
 
 Run these commands:
 
-    meson build
-    ninja -C build
-    sudo ninja -C build install
+    meson build/
+    ninja -C build/
+    sudo ninja -C build/ install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/background-image.c 
new/swaybg-1.1/background-image.c
--- old/swaybg-1.0/background-image.c   2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/background-image.c   2021-07-19 13:27:09.000000000 +0200
@@ -1,6 +1,6 @@
 #include <assert.h>
 #include "background-image.h"
-#include "cairo.h"
+#include "cairo_util.h"
 #include "log.h"
 
 enum background_mode parse_background_mode(const char *mode) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/cairo.c new/swaybg-1.1/cairo.c
--- old/swaybg-1.0/cairo.c      2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/cairo.c      2021-07-19 13:27:09.000000000 +0200
@@ -1,6 +1,6 @@
 #include <stdint.h>
-#include <cairo/cairo.h>
-#include "cairo.h"
+#include <cairo.h>
+#include "cairo_util.h"
 #if HAVE_GDK_PIXBUF
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/include/background-image.h 
new/swaybg-1.1/include/background-image.h
--- old/swaybg-1.0/include/background-image.h   2019-04-26 19:27:16.000000000 
+0200
+++ new/swaybg-1.1/include/background-image.h   2021-07-19 13:27:09.000000000 
+0200
@@ -1,6 +1,6 @@
 #ifndef _SWAY_BACKGROUND_IMAGE_H
 #define _SWAY_BACKGROUND_IMAGE_H
-#include "cairo.h"
+#include "cairo_util.h"
 
 enum background_mode {
        BACKGROUND_MODE_STRETCH,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/include/cairo.h 
new/swaybg-1.1/include/cairo.h
--- old/swaybg-1.0/include/cairo.h      2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/include/cairo.h      1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-#ifndef _SWAY_CAIRO_H
-#define _SWAY_CAIRO_H
-
-#include "config.h"
-#include <stdint.h>
-#include <cairo/cairo.h>
-#include <wayland-client.h>
-#if HAVE_GDK_PIXBUF
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#endif
-
-void cairo_set_source_u32(cairo_t *cairo, uint32_t color);
-cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel 
subpixel);
-
-cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image,
-               int width, int height);
-
-#if HAVE_GDK_PIXBUF
-
-cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(
-               const GdkPixbuf *gdkbuf);
-
-#endif // HAVE_GDK_PIXBUF
-
-#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/include/cairo_util.h 
new/swaybg-1.1/include/cairo_util.h
--- old/swaybg-1.0/include/cairo_util.h 1970-01-01 01:00:00.000000000 +0100
+++ new/swaybg-1.1/include/cairo_util.h 2021-07-19 13:27:09.000000000 +0200
@@ -0,0 +1,24 @@
+#ifndef _SWAY_CAIRO_UTIL_H
+#define _SWAY_CAIRO_UTIL_H
+
+#include <stdint.h>
+#include <cairo.h>
+#include <wayland-client.h>
+#if HAVE_GDK_PIXBUF
+#include <gdk-pixbuf/gdk-pixbuf.h>
+#endif
+
+void cairo_set_source_u32(cairo_t *cairo, uint32_t color);
+cairo_subpixel_order_t to_cairo_subpixel_order(enum wl_output_subpixel 
subpixel);
+
+cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image,
+               int width, int height);
+
+#if HAVE_GDK_PIXBUF
+
+cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(
+               const GdkPixbuf *gdkbuf);
+
+#endif // HAVE_GDK_PIXBUF
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/include/meson.build 
new/swaybg-1.1/include/meson.build
--- old/swaybg-1.0/include/meson.build  2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/include/meson.build  1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-configure_file(output: 'config.h',  configuration: conf_data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/include/pool-buffer.h 
new/swaybg-1.1/include/pool-buffer.h
--- old/swaybg-1.0/include/pool-buffer.h        2019-04-26 19:27:16.000000000 
+0200
+++ new/swaybg-1.1/include/pool-buffer.h        2021-07-19 13:27:09.000000000 
+0200
@@ -1,6 +1,6 @@
 #ifndef _SWAY_BUFFERS_H
 #define _SWAY_BUFFERS_H
-#include <cairo/cairo.h>
+#include <cairo.h>
 #include <stdbool.h>
 #include <stdint.h>
 #include <wayland-client.h>
@@ -9,14 +9,12 @@
        struct wl_buffer *buffer;
        cairo_surface_t *surface;
        cairo_t *cairo;
-       uint32_t width, height;
        void *data;
        size_t size;
-       bool busy;
 };
 
-struct pool_buffer *get_next_buffer(struct wl_shm *shm,
-               struct pool_buffer pool[static 2], uint32_t width, uint32_t 
height);
+bool create_buffer(struct pool_buffer *buffer, struct wl_shm *shm,
+               int32_t width, int32_t height, uint32_t format);
 void destroy_buffer(struct pool_buffer *buffer);
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/main.c new/swaybg-1.1/main.c
--- old/swaybg-1.0/main.c       2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/main.c       2021-07-19 13:27:09.000000000 +0200
@@ -9,7 +9,7 @@
 #include <strings.h>
 #include <wayland-client.h>
 #include "background-image.h"
-#include "cairo.h"
+#include "cairo_util.h"
 #include "log.h"
 #include "pool-buffer.h"
 #include "wlr-layer-shell-unstable-v1-client-protocol.h"
@@ -41,12 +41,20 @@
        struct zxdg_output_manager_v1 *xdg_output_manager;
        struct wl_list configs;  // struct swaybg_output_config::link
        struct wl_list outputs;  // struct swaybg_output::link
+       struct wl_list images;   // struct swaybg_image::link
        bool run_display;
 };
 
+struct swaybg_image {
+       struct wl_list link;
+       const char *path;
+       bool load_required;
+};
+
 struct swaybg_output_config {
        char *output;
-       cairo_surface_t *image;
+       const char *image_path;
+       struct swaybg_image *image;
        enum background_mode mode;
        uint32_t color;
        struct wl_list link;
@@ -64,12 +72,13 @@
 
        struct wl_surface *surface;
        struct zwlr_layer_surface_v1 *layer_surface;
-       struct pool_buffer buffers[2];
-       struct pool_buffer *current_buffer;
 
        uint32_t width, height;
        int32_t scale;
 
+       uint32_t configure_serial;
+       bool dirty, needs_ack;
+
        struct wl_list link;
 };
 
@@ -91,15 +100,16 @@
        return true;
 }
 
-static void render_frame(struct swaybg_output *output) {
+static void render_frame(struct swaybg_output *output, cairo_surface_t 
*surface) {
        int buffer_width = output->width * output->scale,
                buffer_height = output->height * output->scale;
-       output->current_buffer = get_next_buffer(output->state->shm,
-                       output->buffers, buffer_width, buffer_height);
-       if (!output->current_buffer) {
+       struct pool_buffer buffer;
+       if (!create_buffer(&buffer, output->state->shm,
+                       buffer_width, buffer_height, WL_SHM_FORMAT_ARGB8888)) {
                return;
        }
-       cairo_t *cairo = output->current_buffer->cairo;
+
+       cairo_t *cairo = buffer.cairo;
        cairo_save(cairo);
        cairo_set_operator(cairo, CAIRO_OPERATOR_CLEAR);
        cairo_paint(cairo);
@@ -112,14 +122,27 @@
                        cairo_set_source_u32(cairo, output->config->color);
                        cairo_paint(cairo);
                }
-               render_background_image(cairo, output->config->image,
+
+               if (surface) {
+                       render_background_image(cairo, surface,
                                output->config->mode, buffer_width, 
buffer_height);
+               }
        }
 
        wl_surface_set_buffer_scale(output->surface, output->scale);
-       wl_surface_attach(output->surface, output->current_buffer->buffer, 0, 
0);
+       wl_surface_attach(output->surface, buffer.buffer, 0, 0);
        wl_surface_damage_buffer(output->surface, 0, 0, INT32_MAX, INT32_MAX);
        wl_surface_commit(output->surface);
+       // we will not reuse the buffer, so destroy it immediately
+       destroy_buffer(&buffer);
+}
+
+static void destroy_swaybg_image(struct swaybg_image *image) {
+       if (!image) {
+               return;
+       }
+       wl_list_remove(&image->link);
+       free(image);
 }
 
 static void destroy_swaybg_output_config(struct swaybg_output_config *config) {
@@ -144,8 +167,6 @@
        }
        zxdg_output_v1_destroy(output->xdg_output);
        wl_output_destroy(output->wl_output);
-       destroy_buffer(&output->buffers[0]);
-       destroy_buffer(&output->buffers[1]);
        free(output->name);
        free(output->identifier);
        free(output);
@@ -157,8 +178,9 @@
        struct swaybg_output *output = data;
        output->width = width;
        output->height = height;
-       zwlr_layer_surface_v1_ack_configure(surface, serial);
-       render_frame(output);
+       output->dirty = true;
+       output->configure_serial = serial;
+       output->needs_ack = true;
 }
 
 static void layer_surface_closed(void *data,
@@ -194,7 +216,7 @@
        struct swaybg_output *output = data;
        output->scale = scale;
        if (output->state->run_display && output->width > 0 && output->height > 
0) {
-               render_frame(output);
+               output->dirty = true;
        }
 }
 
@@ -367,10 +389,8 @@
        wl_list_for_each(oc, &state->configs, link) {
                if (strcmp(config->output, oc->output) == 0) {
                        // Merge on top
-                       if (config->image) {
-                               free(oc->image);
-                               oc->image = config->image;
-                               config->image = NULL;
+                       if (config->image_path) {
+                               oc->image_path = config->image_path;
                        }
                        if (config->color) {
                                oc->color = config->color;
@@ -432,11 +452,7 @@
                        config->color = parse_color(optarg);
                        break;
                case 'i':  // image
-                       free(config->image);
-                       config->image = load_background_image(optarg);
-                       if (!config->image) {
-                               swaybg_log(LOG_ERROR, "Failed to load image: 
%s", optarg);
-                       }
+                       config->image_path = optarg;
                        break;
                case 'm':  // mode
                        config->mode = parse_background_mode(optarg);
@@ -486,10 +502,10 @@
        config = NULL;
        struct swaybg_output_config *tmp = NULL;
        wl_list_for_each_safe(config, tmp, &state->configs, link) {
-               if (!config->image && !config->color) {
+               if (!config->image_path && !config->color) {
                        destroy_swaybg_output_config(config);
                } else if (config->mode == BACKGROUND_MODE_INVALID) {
-                       config->mode = config->image
+                       config->mode = config->image_path
                                ? BACKGROUND_MODE_STRETCH
                                : BACKGROUND_MODE_SOLID_COLOR;
                }
@@ -502,9 +518,32 @@
        struct swaybg_state state = {0};
        wl_list_init(&state.configs);
        wl_list_init(&state.outputs);
+       wl_list_init(&state.images);
 
        parse_command_line(argc, argv, &state);
 
+       // Identify distinct image paths which will need to be loaded
+       struct swaybg_image *image;
+       struct swaybg_output_config *config;
+       wl_list_for_each(config, &state.configs, link) {
+               if (!config->image_path) {
+                       continue;
+               }
+               wl_list_for_each(image, &state.images, link) {
+                       if (strcmp(image->path, config->image_path) == 0) {
+                               config->image = image;
+                               break;
+                       }
+               }
+               if (config->image) {
+                       continue;
+               }
+               image = calloc(1, sizeof(struct swaybg_image));
+               image->path = config->image_path;
+               wl_list_insert(&state.images, &image->link);
+               config->image = image;
+       }
+
        state.display = wl_display_connect(NULL);
        if (!state.display) {
                swaybg_log(LOG_ERROR, "Unable to connect to the compositor. "
@@ -532,7 +571,50 @@
 
        state.run_display = true;
        while (wl_display_dispatch(state.display) != -1 && state.run_display) {
-               // This space intentionally left blank
+               // Send acks, and determine which images need to be loaded
+               wl_list_for_each(output, &state.outputs, link) {
+                       if (output->needs_ack) {
+                               output->needs_ack = false;
+                               zwlr_layer_surface_v1_ack_configure(
+                                               output->layer_surface,
+                                               output->configure_serial);
+                       }
+
+                       if (output->dirty && output->config->image) {
+                               output->config->image->load_required = true;
+                       }
+               }
+
+               // Load images, render associated frames, and unload
+               wl_list_for_each(image, &state.images, link) {
+                       if (!image->load_required) {
+                               continue;
+                       }
+
+                       cairo_surface_t *surface = 
load_background_image(image->path);
+                       if (!surface) {
+                               swaybg_log(LOG_ERROR, "Failed to load image: 
%s", image->path);
+                               continue;
+                       }
+
+                       wl_list_for_each(output, &state.outputs, link) {
+                               if (output->dirty && output->config->image == 
image) {
+                                       output->dirty = false;
+                                       render_frame(output, surface);
+                               }
+                       }
+
+                       image->load_required = false;
+                       cairo_surface_destroy(surface);
+               }
+
+               // Redraw outputs without associated image
+               wl_list_for_each(output, &state.outputs, link) {
+                       if (output->dirty) {
+                               output->dirty = false;
+                               render_frame(output, NULL);
+                       }
+               }
        }
 
        struct swaybg_output *tmp_output;
@@ -540,10 +622,15 @@
                destroy_swaybg_output(output);
        }
 
-       struct swaybg_output_config *config = NULL, *tmp_config = NULL;
+       struct swaybg_output_config *tmp_config = NULL;
        wl_list_for_each_safe(config, tmp_config, &state.configs, link) {
                destroy_swaybg_output_config(config);
        }
 
+       struct swaybg_image *tmp_image;
+       wl_list_for_each_safe(image, tmp_image, &state.images, link) {
+               destroy_swaybg_image(image);
+       }
+
        return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/meson.build new/swaybg-1.1/meson.build
--- old/swaybg-1.0/meson.build  2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/meson.build  2021-07-19 13:27:09.000000000 +0200
@@ -1,7 +1,7 @@
 project(
        'swaybg',
        'c',
-       version: '1.0',
+       version: '1.1',
        license: 'MIT',
        meson_version: '>=0.48.0',
        default_options: [
@@ -28,39 +28,39 @@
 
 wayland_client = dependency('wayland-client')
 wayland_protos = dependency('wayland-protocols', version: '>=1.14')
-cairo          = dependency('cairo')
-gdk_pixbuf     = dependency('gdk-pixbuf-2.0', required: 
get_option('gdk-pixbuf'))
+wayland_scanner = dependency('wayland-scanner', version: '>=1.14.91', native: 
true)
+cairo = dependency('cairo')
+gdk_pixbuf = dependency('gdk-pixbuf-2.0', required: get_option('gdk-pixbuf'))
 
-git = find_program('git', required: false)
-scdoc = find_program('scdoc', required: get_option('man-pages'))
-wayland_scanner = find_program('wayland-scanner')
+git = find_program('git', required: false, native: true)
+scdoc = find_program('scdoc', required: get_option('man-pages'), native: true)
 
 version = '"@0@"'.format(meson.project_version())
 if git.found()
-       git_commit_hash = run_command([git.path(), 'describe', '--always', 
'--tags'])
-       git_branch = run_command([git.path(), 'rev-parse', '--abbrev-ref', 
'HEAD'])
+       git_commit_hash = run_command([git, 'describe', '--always', '--tags'])
+       git_branch = run_command([git, 'rev-parse', '--abbrev-ref', 'HEAD'])
        if git_commit_hash.returncode() == 0 and git_branch.returncode() == 0
                version = '"@0@ (" __DATE__ ", branch 
\'@1@\')"'.format(git_commit_hash.stdout().strip(), git_branch.stdout().strip())
        endif
 endif
-add_project_arguments('-DSWAYBG_VERSION=@0@'.format(version), language: 'c')
+
+add_project_arguments([
+       '-DSWAYBG_VERSION=@0@'.format(version),
+       '-DHAVE_GDK_PIXBUF=@0@'.format(gdk_pixbuf.found().to_int()),
+], language: 'c')
 
 wl_protocol_dir = wayland_protos.get_pkgconfig_variable('pkgdatadir')
 
-if wayland_client.version().version_compare('>=1.14.91')
-       code_type = 'private-code'
-else
-       code_type = 'code'
-endif
+wayland_scanner_prog = 
find_program(wayland_scanner.get_pkgconfig_variable('wayland_scanner'))
 
 wayland_scanner_code = generator(
-       wayland_scanner,
+       wayland_scanner_prog,
        output: '@BASENAME@-protocol.c',
-       arguments: [code_type, '@INPUT@', '@OUTPUT@'],
+       arguments: ['private-code', '@INPUT@', '@OUTPUT@'],
 )
 
 wayland_scanner_client = generator(
-       wayland_scanner,
+       wayland_scanner_prog,
        output: '@BASENAME@-client-protocol.h',
        arguments: ['client-header', '@INPUT@', '@OUTPUT@'],
 )
@@ -91,11 +91,6 @@
        sources: client_protos_headers,
 )
 
-conf_data = configuration_data()
-conf_data.set10('HAVE_GDK_PIXBUF', gdk_pixbuf.found())
-
-subdir('include')
-
 dependencies = [
        cairo,
        client_protos,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/pool-buffer.c new/swaybg-1.1/pool-buffer.c
--- old/swaybg-1.0/pool-buffer.c        2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/pool-buffer.c        2021-07-19 13:27:09.000000000 +0200
@@ -1,6 +1,6 @@
 #define _POSIX_C_SOURCE 200809
 #include <assert.h>
-#include <cairo/cairo.h>
+#include <cairo.h>
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -57,18 +57,8 @@
        return fd;
 }
 
-static void buffer_release(void *data, struct wl_buffer *wl_buffer) {
-       struct pool_buffer *buffer = data;
-       buffer->busy = false;
-}
-
-static const struct wl_buffer_listener buffer_listener = {
-       .release = buffer_release
-};
-
-static struct pool_buffer *create_buffer(struct wl_shm *shm,
-               struct pool_buffer *buf, int32_t width, int32_t height,
-               uint32_t format) {
+bool create_buffer(struct pool_buffer *buf, struct wl_shm *shm,
+               int32_t width, int32_t height, uint32_t format) {
        uint32_t stride = width * 4;
        size_t size = stride * height;
 
@@ -86,15 +76,11 @@
        fd = -1;
 
        buf->size = size;
-       buf->width = width;
-       buf->height = height;
        buf->data = data;
        buf->surface = cairo_image_surface_create_for_data(data,
                        CAIRO_FORMAT_ARGB32, width, height, stride);
        buf->cairo = cairo_create(buf->surface);
-
-       wl_buffer_add_listener(buf->buffer, &buffer_listener, buf);
-       return buf;
+       return true;
 }
 
 void destroy_buffer(struct pool_buffer *buffer) {
@@ -110,34 +96,4 @@
        if (buffer->data) {
                munmap(buffer->data, buffer->size);
        }
-       memset(buffer, 0, sizeof(struct pool_buffer));
-}
-
-struct pool_buffer *get_next_buffer(struct wl_shm *shm,
-               struct pool_buffer pool[static 2], uint32_t width, uint32_t 
height) {
-       struct pool_buffer *buffer = NULL;
-
-       for (size_t i = 0; i < 2; ++i) {
-               if (pool[i].busy) {
-                       continue;
-               }
-               buffer = &pool[i];
-       }
-
-       if (!buffer) {
-               return NULL;
-       }
-
-       if (buffer->width != width || buffer->height != height) {
-               destroy_buffer(buffer);
-       }
-
-       if (!buffer->buffer) {
-               if (!create_buffer(shm, buffer, width, height,
-                                       WL_SHM_FORMAT_ARGB8888)) {
-                       return NULL;
-               }
-       }
-       buffer->busy = true;
-       return buffer;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/swaybg.1.scd new/swaybg-1.1/swaybg.1.scd
--- old/swaybg-1.0/swaybg.1.scd 2019-04-26 19:27:16.000000000 +0200
+++ new/swaybg-1.1/swaybg.1.scd 2021-07-19 13:27:09.000000000 +0200
@@ -41,4 +41,4 @@
 
 Maintained by Drew DeVault <s...@cmpwn.com>, who is assisted by other open
 source contributors. For more information about swaybg development, see
-https://github.com/swaywm/sway.
+https://github.com/swaywm/swaybg.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/swaybg-1.0/wlr-layer-shell-unstable-v1.xml 
new/swaybg-1.1/wlr-layer-shell-unstable-v1.xml
--- old/swaybg-1.0/wlr-layer-shell-unstable-v1.xml      2019-04-26 
19:27:16.000000000 +0200
+++ new/swaybg-1.1/wlr-layer-shell-unstable-v1.xml      2021-07-19 
13:27:09.000000000 +0200
@@ -140,7 +140,7 @@
         how they should interact with surfaces that do. If set to zero, the
         surface indicates that it would like to be moved to avoid occluding
         surfaces with a positive excluzive zone. If set to -1, the surface
-        indicates that it would not like to be moved to accomodate for other
+        indicates that it would not like to be moved to accommodate for other
         surfaces, and the compositor should extend it all the way to the edges
         it is anchored to.
 

Reply via email to