summaryrefslogtreecommitdiffstats
path: root/wgpu/src/renderer/widget
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-13 07:22:21 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-11-13 07:22:21 +0100
commit6857829dc3171fd68065498b6cd29f0ef02a8d43 (patch)
treedb844c70cc8fbd2f48b175e97bde50866641a1b4 /wgpu/src/renderer/widget
parentf0b1e65ba4f8df173f8201585a1d81245e93ab94 (diff)
downloadiced-6857829dc3171fd68065498b6cd29f0ef02a8d43.tar.gz
iced-6857829dc3171fd68065498b6cd29f0ef02a8d43.tar.bz2
iced-6857829dc3171fd68065498b6cd29f0ef02a8d43.zip
Draft `Font` type and implement `Text::font`
Diffstat (limited to 'wgpu/src/renderer/widget')
-rw-r--r--wgpu/src/renderer/widget/text.rs14
-rw-r--r--wgpu/src/renderer/widget/text_input.rs18
2 files changed, 12 insertions, 20 deletions
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(&section);
+ 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,
},
diff --git a/wgpu/src/renderer/widget/text_input.rs b/wgpu/src/renderer/widget/text_input.rs
index f37c879c..855e945c 100644
--- a/wgpu/src/renderer/widget/text_input.rs
+++ b/wgpu/src/renderer/widget/text_input.rs
@@ -2,7 +2,7 @@ use crate::{Primitive, Renderer};
use iced_native::{
text::HorizontalAlignment, text::VerticalAlignment, text_input, Background,
- Color, MouseCursor, Point, Rectangle, TextInput, Vector,
+ Color, Font, MouseCursor, Point, Rectangle, Size, TextInput, Vector,
};
use std::f32;
@@ -60,6 +60,7 @@ impl text_input::Renderer for Renderer {
[0.3, 0.3, 0.3]
}
.into(),
+ font: Font::Default,
bounds: Rectangle {
width: f32::INFINITY,
..text_bounds
@@ -70,20 +71,17 @@ impl text_input::Renderer for Renderer {
};
let (contents_primitive, offset) = if text_input.state.is_focused {
- use wgpu_glyph::{Scale, Section};
-
let text_before_cursor = &text_input
.value
.until(text_input.state.cursor_position(&text_input.value))
.to_string();
- let (mut text_value_width, _) =
- self.text_pipeline.measure(&Section {
- text: text_before_cursor,
- bounds: (f32::INFINITY, text_bounds.height),
- scale: Scale { x: size, y: size },
- ..Default::default()
- });
+ let (mut text_value_width, _) = self.text_pipeline.measure(
+ text_before_cursor,
+ size,
+ Font::Default,
+ Size::new(f32::INFINITY, text_bounds.height),
+ );
let spaces_at_the_end =
text_before_cursor.len() - text_before_cursor.trim_end().len();