summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--wgpu/src/text.rs22
1 files changed, 17 insertions, 5 deletions
diff --git a/wgpu/src/text.rs b/wgpu/src/text.rs
index e9a1602f..880ad1a6 100644
--- a/wgpu/src/text.rs
+++ b/wgpu/src/text.rs
@@ -136,11 +136,23 @@ impl Pipeline {
// it uses a lifetimed `GlyphCalculatorGuard` with side-effects on drop.
// This makes stuff quite inconvenient. A manual method for trimming the
// cache would make our lives easier.
- let _ = self
- .measure_brush
- .borrow_mut()
- .process_queued(|_, _| {}, |_| {})
- .expect("Trim text measurements");
+ loop {
+ let action = self
+ .measure_brush
+ .borrow_mut()
+ .process_queued(|_, _| {}, |_| {});
+
+ match action {
+ Ok(_) => break,
+ Err(glyph_brush::BrushError::TextureTooSmall { suggested }) => {
+ let (width, height) = suggested;
+
+ self.measure_brush
+ .borrow_mut()
+ .resize_texture(width, height);
+ }
+ }
+ }
}
pub fn find_font(&self, font: iced_native::Font) -> wgpu_glyph::FontId {