1
0
Fork 0
forked from wry/wry

all: bring back xdg portals

This commit is contained in:
kossLAN 2026-06-06 19:16:45 -04:00
parent d920e554cf
commit e61f042d8b
No known key found for this signature in database
107 changed files with 14293 additions and 55 deletions

View file

@ -3,7 +3,7 @@ use {
crate::{
cmm::cmm_description::ColorDescription,
gfx_api::{AcquireSync, BufferResv, GfxTexture, ReleaseSync},
ifs::wl_buffer::WlBufferStorage,
ifs::{jay_screencast::JayScreencast, wl_buffer::WlBufferStorage},
utils::{errorfmt::ErrorFmt, hash_map_ext::HashMapExt},
},
std::{ops::Deref, rc::Rc},
@ -16,6 +16,20 @@ impl OutputNode {
}
}
pub fn screencast_changed(&self) {
self.captures_changed();
}
pub fn add_screencast(&self, sc: &Rc<JayScreencast>) {
self.screencasts.set((sc.client.id, sc.id), sc.clone());
self.captures_changed();
}
pub fn remove_screencast(&self, sc: &JayScreencast) {
self.screencasts.remove(&(sc.client.id, sc.id));
self.captures_changed();
}
pub fn perform_screencopies(
&self,
tex: &Rc<dyn GfxTexture>,
@ -44,6 +58,20 @@ impl OutputNode {
y_off,
size,
);
for sc in self.screencasts.lock().values() {
sc.copy_texture(
self,
tex,
cd,
resv,
acquire_sync,
release_sync,
render_hardware_cursor,
x_off,
y_off,
size,
);
}
for sc in self.ext_copy_sessions.lock().values() {
sc.copy_texture(
self,