summaryrefslogtreecommitdiffstats
path: root/tiny_skia/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-03-07 06:15:05 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-03-07 06:15:05 +0100
commita8d55ceb829377725b4e7632702894fed6867eda (patch)
tree0e52401fd572833141d3c35a470fedb0a073a23c /tiny_skia/src
parent5b3977daf6df624ca5d5e1a21ce282161234b22d (diff)
downloadiced-a8d55ceb829377725b4e7632702894fed6867eda.tar.gz
iced-a8d55ceb829377725b4e7632702894fed6867eda.tar.bz2
iced-a8d55ceb829377725b4e7632702894fed6867eda.zip
Trim `raster` cache in `iced_tiny_skia`
Diffstat (limited to 'tiny_skia/src')
-rw-r--r--tiny_skia/src/backend.rs3
-rw-r--r--tiny_skia/src/raster.rs9
2 files changed, 12 insertions, 0 deletions
diff --git a/tiny_skia/src/backend.rs b/tiny_skia/src/backend.rs
index 3c2a97b9..b3c7d2bc 100644
--- a/tiny_skia/src/backend.rs
+++ b/tiny_skia/src/backend.rs
@@ -86,6 +86,9 @@ impl Backend {
self.text_pipeline.trim_cache();
+ #[cfg(feature = "image")]
+ self.raster_pipeline.trim_cache();
+
#[cfg(feature = "svg")]
self.vector_pipeline.trim_cache();
}
diff --git a/tiny_skia/src/raster.rs b/tiny_skia/src/raster.rs
index e57f0e50..2fd73f8c 100644
--- a/tiny_skia/src/raster.rs
+++ b/tiny_skia/src/raster.rs
@@ -52,6 +52,10 @@ impl Pipeline {
);
}
}
+
+ pub fn trim_cache(&mut self) {
+ self.cache.borrow_mut().trim();
+ }
}
#[derive(Default)]
@@ -98,6 +102,11 @@ impl Cache {
.expect("Build pixmap from image bytes")
})
}
+
+ fn trim(&mut self) {
+ self.entries.retain(|key, _| self.hits.contains(key));
+ self.hits.clear();
+ }
}
struct Entry {