2026-07-05 21:48:05 -07:00
|
|
|
use smithay::{
|
|
|
|
|
backend::renderer::{
|
|
|
|
|
damage::OutputDamageTracker,
|
2026-07-05 23:10:15 -07:00
|
|
|
element::{
|
|
|
|
|
memory::MemoryRenderBufferRenderElement, solid::SolidColorRenderElement,
|
|
|
|
|
surface::WaylandSurfaceRenderElement,
|
|
|
|
|
},
|
2026-07-05 21:48:05 -07:00
|
|
|
gles::{GlesRenderer, GlesTarget},
|
2026-07-05 23:10:15 -07:00
|
|
|
ImportMem,
|
2026-07-05 21:48:05 -07:00
|
|
|
},
|
|
|
|
|
output::Output,
|
2026-07-05 23:10:15 -07:00
|
|
|
render_elements,
|
2026-07-05 21:48:05 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
use crate::State;
|
|
|
|
|
|
2026-07-05 23:10:15 -07:00
|
|
|
render_elements! {
|
|
|
|
|
DecorationElement<R> where R: ImportMem;
|
|
|
|
|
Chrome=SolidColorRenderElement,
|
|
|
|
|
Label=MemoryRenderBufferRenderElement<R>,
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-05 21:48:05 -07:00
|
|
|
impl State {
|
|
|
|
|
pub fn render(
|
|
|
|
|
&self,
|
|
|
|
|
output: &Output,
|
|
|
|
|
renderer: &mut GlesRenderer,
|
|
|
|
|
framebuffer: &mut GlesTarget,
|
|
|
|
|
damage_tracker: &mut OutputDamageTracker,
|
|
|
|
|
) -> Result<(), Box<dyn std::error::Error>> {
|
2026-07-05 23:10:15 -07:00
|
|
|
// let elem = DecorationElement::
|
|
|
|
|
|
2026-07-05 21:48:05 -07:00
|
|
|
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(())
|
|
|
|
|
}
|
|
|
|
|
}
|