From 4e2fbca7e6ac4ab314ae3204008bb7dfecdb02b4 Mon Sep 17 00:00:00 2001 From: IoIxD Date: Sun, 5 Jul 2026 21:48:05 -0700 Subject: [PATCH] abstract rendering to new function --- Cargo.toml | 2 +- src/main.rs | 1 + src/render.rs | 33 +++++++++++++++++++++++++++++++++ src/winit.rs | 20 +++----------------- 4 files changed, 38 insertions(+), 18 deletions(-) create mode 100644 src/render.rs diff --git a/Cargo.toml b/Cargo.toml index 1176a6e..df1b55f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ edition = "2024" [dependencies] parking_lot = "0.12.5" -smithay = { path = "./smithay", features = ["desktop", "wayland-backend", "xwayland"] } +smithay = { path = "./smithay", features = ["desktop", "wayland-backend", "wayland_frontend", "xwayland"] } wayland-protocols = { version = "0.32.13", features = ["wayland-server", "server"] } wayland-server = { version = "0.31.13", features = ["dlopen"] } winit = "0.30.13" diff --git a/src/main.rs b/src/main.rs index c386339..6ac2586 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ mod handlers; mod audio; mod grabs; mod input; +pub mod render; mod state; mod winit; mod xwayland; diff --git a/src/render.rs b/src/render.rs new file mode 100644 index 0000000..410fe68 --- /dev/null +++ b/src/render.rs @@ -0,0 +1,33 @@ +use smithay::{ + backend::renderer::{ + damage::OutputDamageTracker, + element::surface::WaylandSurfaceRenderElement, + gles::{GlesRenderer, GlesTarget}, + }, + output::Output, +}; + +use crate::State; + +impl State { + pub fn render( + &self, + output: &Output, + renderer: &mut GlesRenderer, + framebuffer: &mut GlesTarget, + damage_tracker: &mut OutputDamageTracker, + ) -> Result<(), Box> { + smithay::desktop::space::render_output::<_, WaylandSurfaceRenderElement, _, _>( + output, + renderer, + framebuffer, + 1.0, + 0, + [&self.space], + &[], + damage_tracker, + [0.07, 0.16, 0.286, 1.0], + )?; + Ok(()) + } +} diff --git a/src/winit.rs b/src/winit.rs index 8056036..986f644 100644 --- a/src/winit.rs +++ b/src/winit.rs @@ -65,23 +65,9 @@ pub fn init_winit(state: &mut State) -> Result<(), Box> { { let (renderer, mut framebuffer) = backend.bind().unwrap(); - smithay::desktop::space::render_output::< - _, - WaylandSurfaceRenderElement, - _, - _, - >( - &output, - renderer, - &mut framebuffer, - 1.0, - 0, - [&state.space], - &[], - &mut damage_tracker, - [0.07, 0.16, 0.286, 1.0], - ) - .unwrap(); + state + .render(&output, renderer, &mut framebuffer, &mut damage_tracker) + .unwrap(); } backend.submit(Some(&[damage])).unwrap();