[TextServer] Improve embedded objects handling performance.
This commit is contained in:
committed by
Pāvels Nadtočajevs
parent
4cf02312f6
commit
cc1db569e1
@ -99,6 +99,7 @@ public:
|
||||
virtual bool shaped_text_resize_object(const RID &p_shaped, const Variant &p_key, const Size2 &p_size, InlineAlignment p_inline_align, double p_baseline) override { return false; }
|
||||
virtual int64_t shaped_get_span_count(const RID &p_shaped) const override { return 0; }
|
||||
virtual Variant shaped_get_span_meta(const RID &p_shaped, int64_t p_index) const override { return Variant(); }
|
||||
virtual Variant shaped_get_span_embedded_object(const RID &p_shaped, int64_t p_index) const override { return Variant(); }
|
||||
virtual void shaped_set_span_update_font(const RID &p_shaped, int64_t p_index, const TypedArray<RID> &p_fonts, int64_t p_size, const Dictionary &p_opentype_features) override {}
|
||||
virtual RID shaped_text_substr(const RID &p_shaped, int64_t p_start, int64_t p_length) const override { return RID(); }
|
||||
virtual RID shaped_text_get_parent(const RID &p_shaped) const override { return RID(); }
|
||||
|
||||
@ -268,6 +268,7 @@ void TextServerExtension::_bind_methods() {
|
||||
|
||||
GDVIRTUAL_BIND(_shaped_get_span_count, "shaped");
|
||||
GDVIRTUAL_BIND(_shaped_get_span_meta, "shaped", "index");
|
||||
GDVIRTUAL_BIND(_shaped_get_span_embedded_object, "shaped", "index");
|
||||
GDVIRTUAL_BIND(_shaped_set_span_update_font, "shaped", "index", "fonts", "size", "opentype_features");
|
||||
|
||||
GDVIRTUAL_BIND(_shaped_text_substr, "shaped", "start", "length");
|
||||
@ -1187,11 +1188,17 @@ int64_t TextServerExtension::shaped_get_span_count(const RID &p_shaped) const {
|
||||
}
|
||||
|
||||
Variant TextServerExtension::shaped_get_span_meta(const RID &p_shaped, int64_t p_index) const {
|
||||
Variant ret = false;
|
||||
Variant ret;
|
||||
GDVIRTUAL_CALL(_shaped_get_span_meta, p_shaped, p_index, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Variant TextServerExtension::shaped_get_span_embedded_object(const RID &p_shaped, int64_t p_index) const {
|
||||
Variant ret;
|
||||
GDVIRTUAL_CALL(_shaped_get_span_embedded_object, p_shaped, p_index, ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
void TextServerExtension::shaped_set_span_update_font(const RID &p_shaped, int64_t p_index, const TypedArray<RID> &p_fonts, int64_t p_size, const Dictionary &p_opentype_features) {
|
||||
GDVIRTUAL_CALL(_shaped_set_span_update_font, p_shaped, p_index, p_fonts, p_size, p_opentype_features);
|
||||
}
|
||||
|
||||
@ -444,9 +444,11 @@ public:
|
||||
|
||||
virtual int64_t shaped_get_span_count(const RID &p_shaped) const override;
|
||||
virtual Variant shaped_get_span_meta(const RID &p_shaped, int64_t p_index) const override;
|
||||
virtual Variant shaped_get_span_embedded_object(const RID &p_shaped, int64_t p_index) const override;
|
||||
virtual void shaped_set_span_update_font(const RID &p_shaped, int64_t p_index, const TypedArray<RID> &p_fonts, int64_t p_size, const Dictionary &p_opentype_features = Dictionary()) override;
|
||||
GDVIRTUAL1RC_REQUIRED(int64_t, _shaped_get_span_count, RID);
|
||||
GDVIRTUAL2RC_REQUIRED(Variant, _shaped_get_span_meta, RID, int64_t);
|
||||
GDVIRTUAL2RC_REQUIRED(Variant, _shaped_get_span_embedded_object, RID, int64_t);
|
||||
GDVIRTUAL5_REQUIRED(_shaped_set_span_update_font, RID, int64_t, const TypedArray<RID> &, int64_t, const Dictionary &);
|
||||
|
||||
virtual RID shaped_text_substr(const RID &p_shaped, int64_t p_start, int64_t p_length) const override;
|
||||
|
||||
Reference in New Issue
Block a user