Implement wallpaper rendering with multi-output support

This actually renders a wallpaper for each output using the newly added
Buffer and BufferPool for shared-memory surfaces and creates a
wlr-layer-shell surface per output. Right now, each wallpaper
shares the same wallpaper (though scaled to each).

wl_output globals get added to a HashMap that is used by Output when it
gets an output event.

Fix null-safety in WindowManager when no seats/outputs exist and route
Window dimensions through pending_manage.
This commit is contained in:
Ben Buhse 2026-02-07 17:27:24 -06:00
commit e186a2d017
No known key found for this signature in database
GPG key ID: 7916ACFCD38FD0B4
9 changed files with 568 additions and 35 deletions

View file

@ -111,6 +111,6 @@ pub fn build(b: *std.Build) void {
exe_check.linkSystemLibrary("pixman-1");
exe_check.linkSystemLibrary("xkbcommon");
const check = b.step("check", "Check if beanbag compiles");
const check = b.step("check", "Check if beansprout compiles");
check.dependOn(&exe_check.step);
}