abstract rendering to new function

This commit is contained in:
IoIxD 2026-07-05 21:48:05 -07:00
commit 4e2fbca7e6
4 changed files with 38 additions and 18 deletions

View file

@ -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"

View file

@ -5,6 +5,7 @@ mod handlers;
mod audio;
mod grabs;
mod input;
pub mod render;
mod state;
mod winit;
mod xwayland;

33
src/render.rs Normal file
View file

@ -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<dyn std::error::Error>> {
smithay::desktop::space::render_output::<_, WaylandSurfaceRenderElement<GlesRenderer>, _, _>(
output,
renderer,
framebuffer,
1.0,
0,
[&self.space],
&[],
damage_tracker,
[0.07, 0.16, 0.286, 1.0],
)?;
Ok(())
}
}

View file

@ -65,23 +65,9 @@ pub fn init_winit(state: &mut State) -> Result<(), Box<dyn std::error::Error>> {
{
let (renderer, mut framebuffer) = backend.bind().unwrap();
smithay::desktop::space::render_output::<
_,
WaylandSurfaceRenderElement<GlesRenderer>,
_,
_,
>(
&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();