|
|
@@ -87,7 +87,8 @@ public:
|
|
|
GRAPHEME_IS_BREAK_SOFT = 1 << 5, // Is line break (optional break, e.g. space).
|
|
|
GRAPHEME_IS_TAB = 1 << 6, // Is tab or vertical tab.
|
|
|
GRAPHEME_IS_ELONGATION = 1 << 7, // Elongation (e.g. kashida), glyph can be duplicated or truncated to fit line to width.
|
|
|
- GRAPHEME_IS_PUNCTUATION = 1 << 8 // Punctuation (can be used as word break, but not line break or justifiction).
|
|
|
+ GRAPHEME_IS_PUNCTUATION = 1 << 8, // Punctuation, except underscore (can be used as word break, but not line break or justifiction).
|
|
|
+ GRAPHEME_IS_UNDERSCORE = 1 << 9, // Underscore (can be used as word break).
|
|
|
};
|
|
|
|
|
|
enum Hinting {
|
|
|
@@ -354,10 +355,9 @@ public:
|
|
|
|
|
|
virtual Vector<Vector2i> shaped_text_get_line_breaks_adv(RID p_shaped, const Vector<float> &p_width, int p_start = 0, bool p_once = true, uint8_t /*TextBreakFlag*/ p_break_flags = BREAK_MANDATORY | BREAK_WORD_BOUND) const;
|
|
|
virtual Vector<Vector2i> shaped_text_get_line_breaks(RID p_shaped, float p_width, int p_start = 0, uint8_t /*TextBreakFlag*/ p_break_flags = BREAK_MANDATORY | BREAK_WORD_BOUND) const;
|
|
|
- virtual Vector<Vector2i> shaped_text_get_word_breaks(RID p_shaped) const;
|
|
|
+ virtual Vector<Vector2i> shaped_text_get_word_breaks(RID p_shaped, int p_grapheme_flags = GRAPHEME_IS_SPACE | GRAPHEME_IS_PUNCTUATION) const;
|
|
|
|
|
|
virtual void shaped_text_overrun_trim_to_width(RID p_shaped, float p_width, uint8_t p_clip_flags) = 0;
|
|
|
-
|
|
|
virtual Array shaped_text_get_objects(RID p_shaped) const = 0;
|
|
|
virtual Rect2 shaped_text_get_object_rect(RID p_shaped, Variant p_key) const = 0;
|
|
|
|