summaryrefslogtreecommitdiffstats
path: root/tiny_skia/src/window/compositor.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-05 18:41:40 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-05 18:41:40 +0200
commit4ede482ab5ff6364237f5f4626784075045d5dfb (patch)
tree78c08c443e340c01963fbfbd191c1f0b09515598 /tiny_skia/src/window/compositor.rs
parent1bba9a080f796276d5da87bf8decd2ed89ef218a (diff)
downloadiced-4ede482ab5ff6364237f5f4626784075045d5dfb.tar.gz
iced-4ede482ab5ff6364237f5f4626784075045d5dfb.tar.bz2
iced-4ede482ab5ff6364237f5f4626784075045d5dfb.zip
Present new frame only when damaged in `iced_tiny_skia`
Diffstat (limited to 'tiny_skia/src/window/compositor.rs')
-rw-r--r--tiny_skia/src/window/compositor.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/tiny_skia/src/window/compositor.rs b/tiny_skia/src/window/compositor.rs
index cea1cabf..6e4bb6ef 100644
--- a/tiny_skia/src/window/compositor.rs
+++ b/tiny_skia/src/window/compositor.rs
@@ -106,7 +106,7 @@ pub fn present<Theme, T: AsRef<str>>(
) -> Result<(), compositor::SurfaceError> {
let physical_size = viewport.physical_size();
- backend.draw(
+ let drawn = backend.draw(
&mut tiny_skia::PixmapMut::from_bytes(
bytemuck::cast_slice_mut(&mut surface.buffer),
physical_size.width,
@@ -120,11 +120,13 @@ pub fn present<Theme, T: AsRef<str>>(
overlay,
);
- surface.window.set_buffer(
- &surface.buffer,
- physical_size.width as u16,
- physical_size.height as u16,
- );
+ if drawn {
+ surface.window.set_buffer(
+ &surface.buffer,
+ physical_size.width as u16,
+ physical_size.height as u16,
+ );
+ }
Ok(())
}