diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-03 11:33:24 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-01-03 11:38:09 +0400 |
| commit | fd1d4b07fd46e298131d9030ea49dc3453e5e478 (patch) | |
| tree | 47abe9426eaf62e80ce45659e57bdb67b88a1b42 /src/backend | |
| parent | 8b5acd5e6ef40f6122ba43711a462ac8d8c7f6e7 (diff) | |
| download | niri-fd1d4b07fd46e298131d9030ea49dc3453e5e478.tar.gz niri-fd1d4b07fd46e298131d9030ea49dc3453e5e478.tar.bz2 niri-fd1d4b07fd46e298131d9030ea49dc3453e5e478.zip | |
Replace renderer() with with_primary_renderer()
Diffstat (limited to 'src/backend')
| -rw-r--r-- | src/backend/mod.rs | 9 | ||||
| -rw-r--r-- | src/backend/tty.rs | 7 | ||||
| -rw-r--r-- | src/backend/winit.rs | 7 |
3 files changed, 16 insertions, 7 deletions
diff --git a/src/backend/mod.rs b/src/backend/mod.rs index a23cc36a..54b504ca 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -45,10 +45,13 @@ impl Backend { } } - pub fn renderer(&mut self) -> Option<&mut GlesRenderer> { + pub fn with_primary_renderer<T>( + &mut self, + f: impl FnOnce(&mut GlesRenderer) -> T, + ) -> Option<T> { match self { - Backend::Tty(tty) => tty.renderer(), - Backend::Winit(winit) => Some(winit.renderer()), + Backend::Tty(tty) => tty.with_primary_renderer(f), + Backend::Winit(winit) => winit.with_primary_renderer(f), } } diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 7c2a35b0..67aa6af0 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -860,8 +860,11 @@ impl Tty { self.session.seat() } - pub fn renderer(&mut self) -> Option<&mut GlesRenderer> { - self.output_device.as_mut().map(|d| &mut d.gles) + pub fn with_primary_renderer<T>( + &mut self, + f: impl FnOnce(&mut GlesRenderer) -> T, + ) -> Option<T> { + self.output_device.as_mut().map(|d| f(&mut d.gles)) } pub fn render( diff --git a/src/backend/winit.rs b/src/backend/winit.rs index 0bda3984..b3c89e17 100644 --- a/src/backend/winit.rs +++ b/src/backend/winit.rs @@ -129,8 +129,11 @@ impl Winit { "winit".to_owned() } - pub fn renderer(&mut self) -> &mut GlesRenderer { - self.backend.renderer() + pub fn with_primary_renderer<T>( + &mut self, + f: impl FnOnce(&mut GlesRenderer) -> T, + ) -> Option<T> { + Some(f(self.backend.renderer())) } pub fn render(&mut self, niri: &mut Niri, output: &Output) -> RenderResult { |
