aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-01-03 11:33:24 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-01-03 11:38:09 +0400
commitfd1d4b07fd46e298131d9030ea49dc3453e5e478 (patch)
tree47abe9426eaf62e80ce45659e57bdb67b88a1b42 /src/backend
parent8b5acd5e6ef40f6122ba43711a462ac8d8c7f6e7 (diff)
downloadniri-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.rs9
-rw-r--r--src/backend/tty.rs7
-rw-r--r--src/backend/winit.rs7
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 {