30 #include <unordered_map>
38 static constexpr
size_t tempFontCount = 8;
39 using TempFonts = std::list<std::pair<const Style, wxFont>>;
42 std::unordered_map<Style, wxFont, StyleFontHasher, StyleFontEquals> m_cache;
44 TempFonts m_temporaryFonts;
47 const bool m_enabled =
true;
48 const std::pair<const Style, wxFont> &GetStyleFont(
const Style &style,
const wxFont &withFont = {});
49 const std::pair<const Style, wxFont> &GetStyleFontUncached(
const Style &style,
const wxFont &withFont = {});
53 const wxFont &GetFont(
const Style &style);
54 const Style &AddFont(
const wxFont &font);
55 bool IsEnabled()
const {
return m_enabled; }
56 int GetHits()
const {
return m_hits; }
57 int GetMisses()
const {
return m_misses; }
62 static thread_local
FontCache globalCache;
70 static const std::pair<const Style, wxFont> &GetAStyleFont(
const Style &style)
71 {
return Get().GetStyleFont(style); }
72 static const wxFont &GetAFont(
const Style &style) {
return Get().GetFont(style); }
73 static const Style &AddAFont(
const wxFont &font) {
return Get().AddFont(font); }