23#include <unordered_map>
45 std::vector<string> iFallbackFontFamilies;
52 typedef std::list<native_font> native_font_list;
53 typedef std::map<string, std::vector<native_font_list::iterator>,
neolib::ci_less> font_family_list;
54 typedef font id_cache_entry;
90 font_id allocate_font_id()
override;
105 i_native_font& find_font(
i_string const& aFamilyName,
i_string const& aStyleName, font::point_size aSize);
111 mutable std::unordered_map<system_font_role, optional<font_info>> iDefaultSystemFontInfo;
112 mutable std::optional<fallback_font_info> iDefaultFallbackFontInfo;
114 native_font_list iNativeFonts;
115 font_family_list iFontFamilies;
118 std::unique_ptr<i_glyph_text_factory> iGlyphTextFactory;
bool has_fallback_for(i_string const &aFontFamilyName) const override
fallback_font_info(std::vector< string > aFallbackFontFamilies)
i_string const & fallback_for(i_string const &aFontFamilyName) const override
i_texture_atlas & glyph_atlas() override
bool is_font_file(i_string const &aFileName) const override
i_native_font_face & create_fallback_font(const i_native_font_face &aExistingFont) override
i_native_font_face & load_font_from_memory(const void *aData, std::size_t aSizeInBytes, const i_device_resolution &aDevice) override
i_string const & font_family(uint32_t aFamilyIndex) const override
neogfx::font_style font_style(uint32_t aFamilyIndex, uint32_t aStyleIndex) const override
i_native_font_face & create_font(i_native_font &aFont, neogfx::font_style aStyle, font::point_size aSize, const i_device_resolution &aDevice) override
const i_emoji_atlas & emoji_atlas() const override
uint32_t font_family_count() const override
friend class native_font_face
bool has_fallback_font(const i_native_font_face &aExistingFont) const override
i_emoji_atlas & emoji_atlas() override
void add_ref(font_id aId) override
i_string const & font_style_name(uint32_t aFamilyIndex, uint32_t aStyleIndex) const override
const font & font_from_id(font_id aId) const override
i_glyph_text_factory & glyph_text_factory() const override
i_native_font_face & load_font_from_memory(const void *aData, std::size_t aSizeInBytes, i_string const &aStyleName, font::point_size aSize, const i_device_resolution &aDevice) override
const i_fallback_font_info & default_fallback_font_info() const override
i_native_font_face & load_font_from_file(i_string const &aFileName, neogfx::font_style aStyle, font::point_size aSize, const i_device_resolution &aDevice) override
void * font_library_handle() const override
uint32_t font_style_count(uint32_t aFamilyIndex) const override
i_native_font_face & create_default_font(const i_device_resolution &aDevice) override
i_native_font_face & create_font(i_string const &aFamilyName, neogfx::font_style aStyle, font::point_size aSize, const i_device_resolution &aDevice) override
i_optional< font_info > const & default_system_font_info(system_font_role aRole) const override
i_native_font_face & create_font(i_string const &aFamilyName, i_string const &aStyleName, font::point_size aSize, const i_device_resolution &aDevice) override
const i_texture_atlas & glyph_atlas() const override
void release(font_id aId) override
i_native_font_face & create_font(i_native_font &aFont, i_string const &aStyleName, font::point_size aSize, const i_device_resolution &aDevice) override
i_native_font_face & load_font_from_file(i_string const &aFileName, i_string const &aStyleName, font::point_size aSize, const i_device_resolution &aDevice) override
i_native_font_face & load_font_from_memory(const void *aData, std::size_t aSizeInBytes, neogfx::font_style aStyle, font::point_size aSize, const i_device_resolution &aDevice) override
long use_count(font_id aId) const override
friend neolib::small_cookie item_cookie(const id_cache_entry &)
i_native_font_face & create_font(const font_info &aInfo, const i_device_resolution &aDevice) override
i_native_font_face & load_font_from_file(i_string const &aFileName, const i_device_resolution &aDevice) override
struct FT_LibraryRec_ * FT_Library
basic_jar< T, vector< T >, small_cookie, MutexType > small_jar
error_initializing_font_library()
failed_to_allocate_glyph_space()