all: bring back xdg portals
This commit is contained in:
parent
d920e554cf
commit
e61f042d8b
107 changed files with 14293 additions and 55 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue