summaryrefslogtreecommitdiffstats
path: root/tiny_skia
diff options
context:
space:
mode:
Diffstat (limited to 'tiny_skia')
-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 {