[TextServer] Add function to change font, font size, and OpenType features without invalidating line break points, justification points, or recreating shaped text buffer.
This commit is contained in:
@ -155,20 +155,6 @@ protected:
|
||||
TextServer::Direction direction = DIRECTION_LTR; // Desired text direction.
|
||||
TextServer::Orientation orientation = ORIENTATION_HORIZONTAL;
|
||||
|
||||
struct Span {
|
||||
int start = -1;
|
||||
int end = -1;
|
||||
|
||||
Vector<RID> fonts;
|
||||
int font_size = 0;
|
||||
|
||||
Variant embedded_key;
|
||||
|
||||
String language;
|
||||
Dictionary features;
|
||||
};
|
||||
Vector<Span> spans;
|
||||
|
||||
struct EmbeddedObject {
|
||||
int pos = 0;
|
||||
InlineAlignment inline_align = INLINE_ALIGNMENT_CENTER;
|
||||
@ -387,10 +373,14 @@ public:
|
||||
virtual void shaped_text_set_preserve_control(RID p_shaped, bool p_enabled) = 0;
|
||||
virtual bool shaped_text_get_preserve_control(RID p_shaped) const = 0;
|
||||
|
||||
virtual bool shaped_text_add_string(RID p_shaped, const String &p_text, const Vector<RID> &p_fonts, int p_size, const Dictionary &p_opentype_features = Dictionary(), const String &p_language = "") = 0;
|
||||
virtual bool shaped_text_add_string(RID p_shaped, const String &p_text, const Vector<RID> &p_fonts, int p_size, const Dictionary &p_opentype_features = Dictionary(), const String &p_language = "", const Variant &p_meta = Variant()) = 0;
|
||||
virtual bool shaped_text_add_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlignment p_inline_align = INLINE_ALIGNMENT_CENTER, int p_length = 1) = 0;
|
||||
virtual bool shaped_text_resize_object(RID p_shaped, Variant p_key, const Size2 &p_size, InlineAlignment p_inline_align = INLINE_ALIGNMENT_CENTER) = 0;
|
||||
|
||||
virtual int shaped_get_span_count(RID p_shaped) const = 0;
|
||||
virtual Variant shaped_get_span_meta(RID p_shaped, int p_index) const = 0;
|
||||
virtual void shaped_set_span_update_font(RID p_shaped, int p_index, const Vector<RID> &p_fonts, int p_size, const Dictionary &p_opentype_features = Dictionary()) = 0;
|
||||
|
||||
virtual RID shaped_text_substr(RID p_shaped, int p_start, int p_length) const = 0; // Copy shaped substring (e.g. line break) without reshaping, but correctly reordered, preservers range.
|
||||
virtual RID shaped_text_get_parent(RID p_shaped) const = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user