diff options
Diffstat (limited to 'scene/resources/dynamic_font_stb.h')
| -rw-r--r-- | scene/resources/dynamic_font_stb.h | 70 |
1 files changed, 26 insertions, 44 deletions
diff --git a/scene/resources/dynamic_font_stb.h b/scene/resources/dynamic_font_stb.h index 4eb0575d8..0c17e3a8b 100644 --- a/scene/resources/dynamic_font_stb.h +++ b/scene/resources/dynamic_font_stb.h @@ -32,43 +32,40 @@ #ifndef FREETYPE_ENABLED #include "font.h" -#include "stb_truetype.h" #include "io/resource_loader.h" - - +#include "stb_truetype.h" class DynamicFontAtSize; class DynamicFont; class DynamicFontData : public Resource { - GDCLASS(DynamicFontData,Resource); + GDCLASS(DynamicFontData, Resource); bool valid; PoolVector<uint8_t> font_data; PoolVector<uint8_t>::Read fr; - const uint8_t* last_data_ptr; + const uint8_t *last_data_ptr; struct KerningPairKey { union { struct { - uint32_t A,B; + uint32_t A, B; }; uint64_t pair; }; - _FORCE_INLINE_ bool operator<(const KerningPairKey& p_r) const { return pair<p_r.pair; } + _FORCE_INLINE_ bool operator<(const KerningPairKey &p_r) const { return pair < p_r.pair; } }; - Map<KerningPairKey,int> kerning_map; + Map<KerningPairKey, int> kerning_map; + Map<int, DynamicFontAtSize *> size_cache; - Map<int,DynamicFontAtSize*> size_cache; - -friend class DynamicFontAtSize; + friend class DynamicFontAtSize; stbtt_fontinfo info; int ascent; @@ -78,22 +75,19 @@ friend class DynamicFontAtSize; void lock(); void unlock(); -friend class DynamicFont; - + friend class DynamicFont; Ref<DynamicFontAtSize> _get_dynamic_font_at_size(int p_size); -public: - void set_font_data(const PoolVector<uint8_t>& p_font); +public: + void set_font_data(const PoolVector<uint8_t> &p_font); DynamicFontData(); ~DynamicFontData(); }; - class DynamicFontAtSize : public Reference { - GDCLASS(DynamicFontAtSize,Reference); - + GDCLASS(DynamicFontAtSize, Reference); int rect_margin; @@ -115,34 +109,31 @@ class DynamicFontAtSize : public Reference { float h_align; float advance; - Character() { texture_idx=0; v_align=0; } + Character() { + texture_idx = 0; + v_align = 0; + } }; - - - HashMap< CharType, Character > char_map; + HashMap<CharType, Character> char_map; _FORCE_INLINE_ void _update_char(CharType p_char); -friend class DynamicFontData; + friend class DynamicFontData; Ref<DynamicFontData> font; float scale; int size; protected: - public: - float get_height() const; float get_ascent() const; float get_descent() const; - Size2 get_char_size(CharType p_char,CharType p_next=0) const; - - float draw_char(RID p_canvas_item, const Point2& p_pos, CharType p_char,CharType p_next=0,const Color& p_modulate=Color(1,1,1)) const; - + Size2 get_char_size(CharType p_char, CharType p_next = 0) const; + float draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next = 0, const Color &p_modulate = Color(1, 1, 1)) const; DynamicFontAtSize(); ~DynamicFontAtSize(); @@ -152,20 +143,17 @@ public: class DynamicFont : public Font { - GDCLASS( DynamicFont, Font ); + GDCLASS(DynamicFont, Font); Ref<DynamicFontData> data; Ref<DynamicFontAtSize> data_at_size; int size; - protected: - static void _bind_methods(); public: - - void set_font_data(const Ref<DynamicFontData>& p_data); + void set_font_data(const Ref<DynamicFontData> &p_data); Ref<DynamicFontData> get_font_data() const; void set_size(int p_size); @@ -176,31 +164,25 @@ public: virtual float get_ascent() const; virtual float get_descent() const; - virtual Size2 get_char_size(CharType p_char,CharType p_next=0) const; + virtual Size2 get_char_size(CharType p_char, CharType p_next = 0) const; virtual bool is_distance_field_hint() const; - virtual float draw_char(RID p_canvas_item, const Point2& p_pos, CharType p_char,CharType p_next=0,const Color& p_modulate=Color(1,1,1)) const; + virtual float draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next = 0, const Color &p_modulate = Color(1, 1, 1)) const; DynamicFont(); ~DynamicFont(); - }; - - ///////////// class ResourceFormatLoaderDynamicFont : public ResourceFormatLoader { public: - - virtual RES load(const String &p_path,const String& p_original_path="",Error *r_error=NULL); + virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual void get_recognized_extensions(List<String> *p_extensions) const; - virtual bool handles_type(const String& p_type) const; + virtual bool handles_type(const String &p_type) const; virtual String get_resource_type(const String &p_path) const; - }; - #endif #endif // DYNAMICFONT_H |
