From f0b1e65ba4f8df173f8201585a1d81245e93ab94 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 13 Nov 2019 03:54:36 +0100 Subject: Move text logic in `iced_wgpu` to a `text` module --- wgpu/src/renderer/widget/text.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'wgpu/src/renderer/widget/text.rs') diff --git a/wgpu/src/renderer/widget/text.rs b/wgpu/src/renderer/widget/text.rs index b9ccd787..65b23c5e 100644 --- a/wgpu/src/renderer/widget/text.rs +++ b/wgpu/src/renderer/widget/text.rs @@ -1,7 +1,7 @@ use crate::{Primitive, Renderer}; use iced_native::{layout, text, Color, Layout, MouseCursor, Size, Text}; -use wgpu_glyph::{GlyphCruncher, Section}; +use wgpu_glyph::Section; use std::f32; @@ -21,13 +21,7 @@ impl text::Renderer for Renderer { ..Default::default() }; - let (width, height) = if let Some(bounds) = - self.text_measurements.borrow_mut().glyph_bounds(§ion) - { - (bounds.width().ceil(), bounds.height().ceil()) - } else { - (0.0, 0.0) - }; + let (width, height) = self.text_pipeline.measure(§ion); let size = limits.resolve(Size::new(width, height)); -- cgit From 6857829dc3171fd68065498b6cd29f0ef02a8d43 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 13 Nov 2019 07:22:21 +0100 Subject: Draft `Font` type and implement `Text::font` --- wgpu/src/renderer/widget/text.rs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'wgpu/src/renderer/widget/text.rs') diff --git a/wgpu/src/renderer/widget/text.rs b/wgpu/src/renderer/widget/text.rs index 65b23c5e..a8ead70b 100644 --- a/wgpu/src/renderer/widget/text.rs +++ b/wgpu/src/renderer/widget/text.rs @@ -1,8 +1,6 @@ use crate::{Primitive, Renderer}; use iced_native::{layout, text, Color, Layout, MouseCursor, Size, Text}; -use wgpu_glyph::Section; - use std::f32; // TODO: Obtain from renderer configuration @@ -14,14 +12,9 @@ impl text::Renderer for Renderer { let size = text.size.map(f32::from).unwrap_or(DEFAULT_TEXT_SIZE); let bounds = limits.max(); - let section = Section { - text: &text.content, - scale: wgpu_glyph::Scale { x: size, y: size }, - bounds: (bounds.width, bounds.height), - ..Default::default() - }; - - let (width, height) = self.text_pipeline.measure(§ion); + let (width, height) = + self.text_pipeline + .measure(&text.content, size, text.font, bounds); let size = limits.resolve(Size::new(width, height)); @@ -35,6 +28,7 @@ impl text::Renderer for Renderer { size: text.size.map(f32::from).unwrap_or(DEFAULT_TEXT_SIZE), bounds: layout.bounds(), color: text.color.unwrap_or(Color::BLACK), + font: text.font, horizontal_alignment: text.horizontal_alignment, vertical_alignment: text.vertical_alignment, }, -- cgit