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]
|
[dependencies]
|
||||||
parking_lot = "0.12.5"
|
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-protocols = { version = "0.32.13", features = ["wayland-server", "server"] }
|
||||||
wayland-server = { version = "0.31.13", features = ["dlopen"] }
|
wayland-server = { version = "0.31.13", features = ["dlopen"] }
|
||||||
winit = "0.30.13"
|
winit = "0.30.13"
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ mod handlers;
|
||||||
mod audio;
|
mod audio;
|
||||||
mod grabs;
|
mod grabs;
|
||||||
mod input;
|
mod input;
|
||||||
|
pub mod render;
|
||||||
mod state;
|
mod state;
|
||||||
mod winit;
|
mod winit;
|
||||||
mod xwayland;
|
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();
|
let (renderer, mut framebuffer) = backend.bind().unwrap();
|
||||||
smithay::desktop::space::render_output::<
|
state
|
||||||
_,
|
.render(&output, renderer, &mut framebuffer, &mut damage_tracker)
|
||||||
WaylandSurfaceRenderElement<GlesRenderer>,
|
.unwrap();
|
||||||
_,
|
|
||||||
_,
|
|
||||||
>(
|
|
||||||
&output,
|
|
||||||
renderer,
|
|
||||||
&mut framebuffer,
|
|
||||||
1.0,
|
|
||||||
0,
|
|
||||||
[&state.space],
|
|
||||||
&[],
|
|
||||||
&mut damage_tracker,
|
|
||||||
[0.07, 0.16, 0.286, 1.0],
|
|
||||||
)
|
|
||||||
.unwrap();
|
|
||||||
}
|
}
|
||||||
backend.submit(Some(&[damage])).unwrap();
|
backend.submit(Some(&[damage])).unwrap();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue