aboutsummaryrefslogtreecommitdiff
path: root/src/backend/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-09-03 13:07:16 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-09-03 13:07:16 +0400
commita8f581a506e65759117f3cc8ae35b5ad76fd39c8 (patch)
tree77f91854bc858380ffcd18fbc16e3c92a1dd492d /src/backend/mod.rs
parent5a707c879ba9b21665d2207020fe354040b807b2 (diff)
downloadniri-a8f581a506e65759117f3cc8ae35b5ad76fd39c8.tar.gz
niri-a8f581a506e65759117f3cc8ae35b5ad76fd39c8.tar.bz2
niri-a8f581a506e65759117f3cc8ae35b5ad76fd39c8.zip
Move backends to subfolder
Diffstat (limited to 'src/backend/mod.rs')
-rw-r--r--src/backend/mod.rs67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/backend/mod.rs b/src/backend/mod.rs
new file mode 100644
index 00000000..5c0f62a5
--- /dev/null
+++ b/src/backend/mod.rs
@@ -0,0 +1,67 @@
+use smithay::backend::renderer::gles::GlesRenderer;
+use smithay::output::Output;
+
+use crate::niri::OutputRenderElements;
+use crate::Niri;
+
+pub mod tty;
+pub use tty::Tty;
+
+pub mod winit;
+pub use winit::Winit;
+
+pub enum Backend {
+ Tty(Tty),
+ Winit(Winit),
+}
+
+impl Backend {
+ pub fn init(&mut self, niri: &mut Niri) {
+ match self {
+ Backend::Tty(tty) => tty.init(niri),
+ Backend::Winit(winit) => winit.init(niri),
+ }
+ }
+
+ pub fn seat_name(&self) -> String {
+ match self {
+ Backend::Tty(tty) => tty.seat_name(),
+ Backend::Winit(winit) => winit.seat_name(),
+ }
+ }
+
+ pub fn renderer(&mut self) -> &mut GlesRenderer {
+ match self {
+ Backend::Tty(tty) => tty.renderer(),
+ Backend::Winit(winit) => winit.renderer(),
+ }
+ }
+
+ pub fn render(
+ &mut self,
+ niri: &mut Niri,
+ output: &Output,
+ elements: &[OutputRenderElements<GlesRenderer>],
+ ) {
+ match self {
+ Backend::Tty(tty) => tty.render(niri, output, elements),
+ Backend::Winit(winit) => winit.render(niri, output, elements),
+ }
+ }
+
+ pub fn tty(&mut self) -> Option<&mut Tty> {
+ if let Self::Tty(v) = self {
+ Some(v)
+ } else {
+ None
+ }
+ }
+
+ pub fn winit(&mut self) -> Option<&mut Winit> {
+ if let Self::Winit(v) = self {
+ Some(v)
+ } else {
+ None
+ }
+ }
+}