summaryrefslogtreecommitdiff
path: root/scene/resources/dynamic_font.h
diff options
context:
space:
mode:
Diffstat (limited to 'scene/resources/dynamic_font.h')
-rw-r--r--scene/resources/dynamic_font.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h
index f0cf80b042..1a46e1e468 100644
--- a/scene/resources/dynamic_font.h
+++ b/scene/resources/dynamic_font.h
@@ -72,6 +72,7 @@ class DynamicFontAtSize : public Reference {
struct Character {
+ bool found;
int texture_idx;
Rect2 rect;
float v_align;
@@ -108,9 +109,9 @@ public:
float get_ascent() const;
float get_descent() const;
- Size2 get_char_size(CharType p_char,CharType p_next=0) const;
+ Size2 get_char_size(CharType p_char,CharType p_next,const Vector<Ref<DynamicFontAtSize> >& p_fallbacks) const;
- float draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next=0,const Color& p_modulate=Color(1,1,1)) const;
+ float draw_char(RID p_canvas_item, const Point2& p_pos, const CharType& p_char,const CharType& p_next,const Color& p_modulate,const Vector<Ref<DynamicFontAtSize> >& p_fallbacks) const;
@@ -124,13 +125,22 @@ class DynamicFont : public Font {
OBJ_TYPE( DynamicFont, Font );
- Ref<DynamicFontData> data;
+ Ref<DynamicFontData> data;
Ref<DynamicFontAtSize> data_at_size;
+
+ Vector< Ref<DynamicFontData> > fallbacks;
+ Vector< Ref<DynamicFontAtSize> > fallback_data_at_size;
+
+
int size;
bool valid;
protected:
+ bool _set(const StringName& p_name, const Variant& p_value);
+ bool _get(const StringName& p_name,Variant &r_ret) const;
+ void _get_property_list( List<PropertyInfo> *p_list) const;
+
static void _bind_methods();
public:
@@ -141,6 +151,13 @@ public:
void set_size(int p_size);
int get_size() const;
+
+ void add_fallback(const Ref<DynamicFontData>& p_data);
+ void set_fallback(int p_idx,const Ref<DynamicFontData>& p_data);
+ int get_fallback_count() const;
+ Ref<DynamicFontData> get_fallback(int p_idx) const;
+ void remove_fallback(int p_idx);
+
virtual float get_height() const;
virtual float get_ascent() const;