diff options
| author | 2023-04-19 01:19:56 +0200 | |
|---|---|---|
| committer | 2023-05-02 01:02:13 +0200 | |
| commit | 33b5a900197e2798a393d6d9a0834039666eddbb (patch) | |
| tree | b4ce1f77dc50d3733a2c9252d57674c3592a0c3c /core/src/text.rs | |
| parent | 57a276e16539d6aeca0619e0c5e36d0b1c1b5ef9 (diff) | |
| download | iced-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.rs | 22 | 
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.  | 
