Commit Diff


commit - ceb50e8c88a83df13464c7305a58fee7ec8a292d
commit + fa1a1b01bda020cb10fee649d8c5f34b749289cd
blob - 2377cfd86367258a818b89df5d9d34bc1ab535f1
blob + 81128dc1e29081f8fc72c6aeb477aa151054cd71
--- build.zig
+++ build.zig
@@ -90,6 +90,7 @@ pub fn build(b: *Build) !void {
     scanner.addSystemProtocol("staging/color-representation/color-representation-v1.xml");
     scanner.addSystemProtocol("staging/cursor-shape/cursor-shape-v1.xml");
     scanner.addSystemProtocol("staging/ext-session-lock/ext-session-lock-v1.xml");
+    scanner.addSystemProtocol("staging/ext-image-copy-capture/ext-image-copy-capture-v1.xml");
     scanner.addSystemProtocol("staging/tearing-control/tearing-control-v1.xml");
     scanner.addSystemProtocol("unstable/pointer-constraints/pointer-constraints-unstable-v1.xml");
     scanner.addSystemProtocol("unstable/pointer-gestures/pointer-gestures-unstable-v1.xml");
@@ -120,6 +121,7 @@ pub fn build(b: *Build) !void {
     scanner.generate("zwp_tablet_manager_v2", 1);
     scanner.generate("zxdg_decoration_manager_v1", 1);
     scanner.generate("ext_session_lock_manager_v1", 1);
+    scanner.generate("ext_image_copy_capture_manager_v1", 1);
     scanner.generate("wp_cursor_shape_manager_v1", 1);
     scanner.generate("wp_tearing_control_manager_v1", 1);
     scanner.generate("wp_color_manager_v1", 2);
blob - eb5de2bda24e06b9007b48de87c8a380893de8ee
blob + 5d0f06871a5a131915fdae0264cf28dd28031cbf
--- river/Server.zig
+++ river/Server.zig
@@ -91,6 +91,9 @@ data_control_manager: *wlr.DataControlManagerV1,
 export_dmabuf_manager: *wlr.ExportDmabufManagerV1,
 screencopy_manager: *wlr.ScreencopyManagerV1,
 
+image_copy_capture_manager: *wlr.ExtImageCopyCaptureManagerV1,
+output_image_capture_source_manager: *wlr.ExtOutputImageCaptureSourceManagerV1,
+
 foreign_toplevel_manager: *wlr.ForeignToplevelManagerV1,
 
 foreign_toplevel_list: *wlr.ExtForeignToplevelListV1,
@@ -176,6 +179,9 @@ pub fn init(server: *Server, runtime_xwayland: bool) !
         .export_dmabuf_manager = try wlr.ExportDmabufManagerV1.create(wl_server),
         .screencopy_manager = try wlr.ScreencopyManagerV1.create(wl_server),
 
+        .image_copy_capture_manager = try wlr.ExtImageCopyCaptureManagerV1.create(wl_server, 1),
+        .output_image_capture_source_manager = try wlr.ExtOutputImageCaptureSourceManagerV1.create(wl_server, 1),
+
         .foreign_toplevel_manager = try wlr.ForeignToplevelManagerV1.create(wl_server),
 
         .foreign_toplevel_list = try wlr.ExtForeignToplevelListV1.create(wl_server, 1),
@@ -384,6 +390,8 @@ fn blocklist(server: *Server, global: *const wl.Global
         global == server.foreign_toplevel_manager.global or
         global == server.foreign_toplevel_list.global or
         global == server.screencopy_manager.global or
+        global == server.image_copy_capture_manager.global or
+        global == server.output_image_capture_source_manager.global or
         global == server.export_dmabuf_manager.global or
         global == server.data_control_manager.global or
         global == server.layout_manager.global or