Fix buffer presentation in iced_tiny_skia

Co-authored-by: Ottatop <ottatop1227@gmail.com>
This commit is contained in:
Héctor Ramón Jiménez 2025-11-29 13:45:25 +01:00
parent 8b2b302762
commit 5db08b9f54
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -186,14 +186,17 @@ pub fn present(
.unwrap_or_else(|| vec![Rectangle::with_size(viewport.logical_size())]); .unwrap_or_else(|| vec![Rectangle::with_size(viewport.logical_size())]);
if damage.is_empty() { if damage.is_empty() {
return Ok(()); if let Some(last_layers) = last_layers {
surface.layer_stack.push_front(last_layers.clone());
} }
} else {
surface.layer_stack.push_front(renderer.layers().to_vec()); surface.layer_stack.push_front(renderer.layers().to_vec());
surface.background_color = background_color; surface.background_color = background_color;
let damage = let damage = damage::group(
damage::group(damage, Rectangle::with_size(viewport.logical_size())); damage,
Rectangle::with_size(viewport.logical_size()),
);
let mut pixels = tiny_skia::PixmapMut::from_bytes( let mut pixels = tiny_skia::PixmapMut::from_bytes(
bytemuck::cast_slice_mut(&mut buffer), bytemuck::cast_slice_mut(&mut buffer),
@ -209,6 +212,7 @@ pub fn present(
&damage, &damage,
background_color, background_color,
); );
}
on_pre_present(); on_pre_present();
buffer.present().map_err(|_| compositor::SurfaceError::Lost) buffer.present().map_err(|_| compositor::SurfaceError::Lost)