1
0
Fork 0
forked from wry/wry

wl_surface: dispatch presentation feedback via presented events

This commit is contained in:
Julian Orth 2024-09-11 21:19:30 +02:00
parent 01331afc6d
commit 7800488555
9 changed files with 117 additions and 47 deletions

View file

@ -9,7 +9,6 @@ use {
zwlr_layer_surface_v1::ZwlrLayerSurfaceV1,
SurfaceBuffer, WlSurface,
},
wp_presentation_feedback::WpPresentationFeedback,
},
rect::Rect,
renderer::renderer_base::RendererBase,
@ -33,7 +32,6 @@ pub mod renderer_base;
pub struct RenderResult {
pub frame_requests: Vec<Rc<WlCallback>>,
pub presentation_feedbacks: Vec<Rc<WpPresentationFeedback>>,
pub output_id: OutputNodeId,
}
@ -41,7 +39,6 @@ impl Default for RenderResult {
fn default() -> Self {
Self {
frame_requests: Default::default(),
presentation_feedbacks: Default::default(),
output_id: OutputNodeId::none(),
}
}
@ -54,13 +51,6 @@ impl RenderResult {
let _ = fr.client.remove_obj(&*fr);
}
}
pub fn discard_presentation_feedback(&mut self) {
for fb in self.presentation_feedbacks.drain(..) {
fb.send_discarded();
let _ = fb.client.remove_obj(&*fb);
}
}
}
impl Debug for RenderResult {
@ -442,10 +432,6 @@ impl Renderer<'_> {
let mut fr = surface.frame_requests.borrow_mut();
result.frame_requests.extend(fr.drain(..));
}
{
let mut fbs = surface.presentation_feedback.borrow_mut();
result.presentation_feedbacks.extend(fbs.drain(..));
}
surface.presented(result.output_id);
}
}