abstract rendering to new function
This commit is contained in:
parent
ce6f2066a1
commit
4e2fbca7e6
4 changed files with 38 additions and 18 deletions
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
33
src/render.rs
Normal 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(())
|
||||
}
|
||||
}
|
||||
20
src/winit.rs
20
src/winit.rs
|
|
@ -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();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue