summaryrefslogtreecommitdiffstats
path: root/core/src/text.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-04-19 01:19:56 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-05-02 01:02:13 +0200
commit33b5a900197e2798a393d6d9a0834039666eddbb (patch)
treeb4ce1f77dc50d3733a2c9252d57674c3592a0c3c /core/src/text.rs
parent57a276e16539d6aeca0619e0c5e36d0b1c1b5ef9 (diff)
downloadiced-33b5a900197e2798a393d6d9a0834039666eddbb.tar.gz
iced-33b5a900197e2798a393d6d9a0834039666eddbb.tar.bz2
iced-33b5a900197e2798a393d6d9a0834039666eddbb.zip
Make basic text shaping the default shaping strategy
Diffstat (limited to 'core/src/text.rs')
-rw-r--r--core/src/text.rs22
1 files changed, 20 insertions, 2 deletions
diff --git a/core/src/text.rs b/core/src/text.rs
index 4c72abc3..0111cf31 100644
--- a/core/src/text.rs
+++ b/core/src/text.rs
@@ -27,6 +27,15 @@ pub struct Text<'a, Font> {
/// The vertical alignment of the [`Text`].
pub vertical_alignment: alignment::Vertical,
+
+ /// Whether the [`Text`] needs advanced shaping and font fallback.
+ ///
+ /// You will need to enable this flag if the text contains a complex
+ /// script, the font used needs it, and/or multiple fonts in your system
+ /// may be needed to display all of the glyphs.
+ ///
+ /// Advanced shaping is expensive! You should only enable it when necessary.
+ pub advanced_shape: bool,
}
/// The result of hit testing on text.
@@ -77,11 +86,19 @@ pub trait Renderer: crate::Renderer {
size: f32,
font: Self::Font,
bounds: Size,
+ advanced_shape: bool,
) -> (f32, f32);
/// Measures the width of the text as if it were laid out in a single line.
- fn measure_width(&self, content: &str, size: f32, font: Self::Font) -> f32 {
- let (width, _) = self.measure(content, size, font, Size::INFINITY);
+ fn measure_width(
+ &self,
+ content: &str,
+ size: f32,
+ font: Self::Font,
+ advanced_shape: bool,
+ ) -> f32 {
+ let (width, _) =
+ self.measure(content, size, font, Size::INFINITY, advanced_shape);
width
}
@@ -101,6 +118,7 @@ pub trait Renderer: crate::Renderer {
bounds: Size,
point: Point,
nearest_only: bool,
+ advanced_shape: bool,
) -> Option<Hit>;
/// Loads a [`Self::Font`] from its bytes.