diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-08 17:54:02 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-08 23:53:56 +0400 |
| commit | d52ca23caa4345ddf768da5af24f47eae6fd4738 (patch) | |
| tree | c0e3f3f4c99b0dfd5bd739e349890081cba2187e /src/backend/winit.rs | |
| parent | bd0ecf917489a84efa51bb1272ca27039256fe21 (diff) | |
| download | niri-d52ca23caa4345ddf768da5af24f47eae6fd4738.tar.gz niri-d52ca23caa4345ddf768da5af24f47eae6fd4738.tar.bz2 niri-d52ca23caa4345ddf768da5af24f47eae6fd4738.zip | |
Add initial monitor screencast portal impl
DmaBuf monitor screencasting through xdg-dekstop-portal-gnome!
Somewhat limited currently, e.g. the cursor is always embedded. But gets
most of the job done.
Diffstat (limited to 'src/backend/winit.rs')
| -rw-r--r-- | src/backend/winit.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/backend/winit.rs b/src/backend/winit.rs index be8ec29a..e7a50ac7 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; +use std::sync::{Arc, Mutex}; use std::time::Duration; use smithay::backend::renderer::damage::OutputDamageTracker; @@ -21,6 +23,7 @@ pub struct Winit { output: Output, backend: WinitGraphicsBackend<GlesRenderer>, damage_tracker: OutputDamageTracker, + connectors: Arc<Mutex<HashMap<String, Output>>>, } impl Winit { @@ -53,6 +56,11 @@ impl Winit { ); output.set_preferred(mode); + let connectors = Arc::new(Mutex::new(HashMap::from([( + "winit".to_owned(), + output.clone(), + )]))); + let damage_tracker = OutputDamageTracker::from_output(&output); let timer = Timer::immediate(); @@ -99,6 +107,7 @@ impl Winit { output, backend, damage_tracker, + connectors, } } @@ -162,4 +171,8 @@ impl Winit { let renderer = self.backend.renderer(); renderer.set_debug_flags(renderer.debug_flags() ^ DebugFlags::TINT); } + + pub fn connectors(&self) -> Arc<Mutex<HashMap<String, Output>>> { + self.connectors.clone() + } } |
