From 7c9e981f1863428492babb2903a97e7a4834d915 Mon Sep 17 00:00:00 2001 From: Sergei Slipchenko Date: Sun, 22 Feb 2026 06:31:33 +0400 Subject: [PATCH 1/4] fix: avoid segfault if overlay wasn't created --- overlay.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/overlay.c b/overlay.c index 3ef07ca..8945deb 100644 --- a/overlay.c +++ b/overlay.c @@ -81,8 +81,18 @@ void overlay_show(struct overlay *overlay) { void overlay_destroy(struct overlay *overlay) { buffer_destroy(overlay->buffer); - wp_viewport_destroy(overlay->wp_viewport); - wl_surface_destroy(overlay->wl_surface); - zwlr_layer_surface_v1_destroy(overlay->wlr_layer_surface); + + if (overlay->wp_viewport) { + wp_viewport_destroy(overlay->wp_viewport); + } + + if (overlay->wl_surface) { + wl_surface_destroy(overlay->wl_surface); + } + + if (overlay->wlr_layer_surface) { + zwlr_layer_surface_v1_destroy(overlay->wlr_layer_surface); + } + wl_output_release(overlay->wl_output); } From 4f059e85337d068c618bc682a511bb1272e89cc7 Mon Sep 17 00:00:00 2001 From: Sergei Slipchenko Date: Sun, 22 Feb 2026 06:24:40 +0400 Subject: [PATCH 2/4] fix: add more pixel formats --- capture.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 10 deletions(-) diff --git a/capture.c b/capture.c index e5f27c4..e7fe757 100644 --- a/capture.c +++ b/capture.c @@ -21,22 +21,65 @@ static void screencopy_handle_flags( static pixman_format_code_t wl2pixman_format(enum wl_shm_format wl_shm_format) { switch (wl_shm_format) { + + case WL_SHM_FORMAT_ABGR1555: + return PIXMAN_a1b5g5r5; + case WL_SHM_FORMAT_ABGR4444: + return PIXMAN_a4b4g4r4; + case WL_SHM_FORMAT_ABGR8888: + return PIXMAN_a8b8g8r8; + case WL_SHM_FORMAT_ABGR2101010: + return PIXMAN_a2b10g10r10; + + case WL_SHM_FORMAT_ARGB1555: + return PIXMAN_a1r5g5b5; + case WL_SHM_FORMAT_ARGB4444: + return PIXMAN_a4r4g4b4; case WL_SHM_FORMAT_ARGB8888: return PIXMAN_a8r8g8b8; - case WL_SHM_FORMAT_XRGB8888: - return PIXMAN_x8r8g8b8; + case WL_SHM_FORMAT_ARGB2101010: + return PIXMAN_a2r10g10b10; + + case WL_SHM_FORMAT_BGR233: + return PIXMAN_b2g3r3; + case WL_SHM_FORMAT_BGR565: + return PIXMAN_b5g6r5; + case WL_SHM_FORMAT_BGR888: + return PIXMAN_b8g8r8; + case WL_SHM_FORMAT_BGRA8888: + return PIXMAN_b8g8r8a8; + case WL_SHM_FORMAT_BGRX8888: + return PIXMAN_b8g8r8x8; + + case WL_SHM_FORMAT_RGB332: + return PIXMAN_r3g3b2; + case WL_SHM_FORMAT_RGB565: + return PIXMAN_r5g6b5; + case WL_SHM_FORMAT_RGB888: + return PIXMAN_r8g8b8; + case WL_SHM_FORMAT_RGBA8888: + return PIXMAN_r8g8b8a8; + case WL_SHM_FORMAT_RGBX8888: + return PIXMAN_r8g8b8x8; + + case WL_SHM_FORMAT_XBGR1555: + return PIXMAN_x1b5g5r5; + case WL_SHM_FORMAT_XBGR4444: + return PIXMAN_x4b4g4r4; case WL_SHM_FORMAT_XBGR8888: return PIXMAN_x8b8g8r8; - case WL_SHM_FORMAT_ABGR8888: - return PIXMAN_a8b8g8r8; - case WL_SHM_FORMAT_XRGB2101010: - return PIXMAN_x2r10g10b10; case WL_SHM_FORMAT_XBGR2101010: return PIXMAN_x2b10g10r10; - case WL_SHM_FORMAT_ARGB2101010: - return PIXMAN_a2r10g10b10; - case WL_SHM_FORMAT_ABGR2101010: - return PIXMAN_a2b10g10r10; + + case WL_SHM_FORMAT_XRGB1555: + return PIXMAN_x1r5g5b5; + case WL_SHM_FORMAT_XRGB4444: + return PIXMAN_x4r4g4b4; + case WL_SHM_FORMAT_XRGB8888: + return PIXMAN_x8r8g8b8; + case WL_SHM_FORMAT_XRGB2101010: + return PIXMAN_x2r10g10b10; + default: return 0; } From 3334d9d1e5148f909297215515c353427297d3f8 Mon Sep 17 00:00:00 2001 From: Sergei Slipchenko Date: Sun, 22 Feb 2026 06:34:53 +0400 Subject: [PATCH 3/4] chore: run `sudo apt-get update` before `sudo apt-get install` --- .github/workflows/create-release.yaml | 2 +- .github/workflows/push.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 6a1ff53..3a0ddf0 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -23,7 +23,7 @@ jobs: args: --current --strip all env: OUTPUT: /tmp/release-notes.md - - run: sudo apt-get install libpixman-1-dev libwayland-dev meson scdoc wayland-protocols + - run: sudo apt-get update && sudo apt-get install libpixman-1-dev libwayland-dev meson scdoc wayland-protocols - name: prepare a tarball run: | meson setup --buildtype release build diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 34c3125..49cdd89 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -21,7 +21,7 @@ jobs: - ubuntu-latest steps: - uses: actions/checkout@v6 - - run: sudo apt-get install libpixman-1-dev libwayland-dev meson scdoc wayland-protocols + - run: sudo apt-get update && sudo apt-get install libpixman-1-dev libwayland-dev meson scdoc wayland-protocols - run: meson setup --buildtype release build - run: ninja -C build test - run: ninja -C build From 93900620d8fa52d78607b4b0d42ad77b618ec5b4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 22 Feb 2026 02:35:30 +0000 Subject: [PATCH 4/4] chore: update changelog --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61c684b..4cf0562 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines. +## Unreleased + +### Fixes + +- avoid segfault if overlay wasn't created +- add more pixel formats + ## 0.0.8 (2025-11-25) ### Fixes