diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/fonts/font_global_context.h')
-rw-r--r-- | chromium/third_party/blink/renderer/platform/fonts/font_global_context.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/chromium/third_party/blink/renderer/platform/fonts/font_global_context.h b/chromium/third_party/blink/renderer/platform/fonts/font_global_context.h index 63c3c861d6e..37e743c2264 100644 --- a/chromium/third_party/blink/renderer/platform/fonts/font_global_context.h +++ b/chromium/third_party/blink/renderer/platform/fonts/font_global_context.h @@ -6,7 +6,6 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_FONTS_FONT_GLOBAL_CONTEXT_H_ #include "third_party/blink/renderer/platform/fonts/font_cache.h" -#include "third_party/blink/renderer/platform/fonts/shaping/harfbuzz_font_cache.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/text/layout_locale.h" #include "third_party/blink/renderer/platform/wtf/allocator/allocator.h" @@ -17,6 +16,7 @@ namespace blink { class FontCache; class FontUniqueNameLookup; +class HarfBuzzFontCache; enum CreateIfNeeded { kDoNotCreate, kCreate }; @@ -30,16 +30,27 @@ class PLATFORM_EXPORT FontGlobalContext { static inline FontCache& GetFontCache() { return Get()->font_cache_; } - static inline HarfBuzzFontCache& GetHarfBuzzFontCache() { - return Get()->harfbuzz_font_cache_; - } + static HarfBuzzFontCache* GetHarfBuzzFontCache(); + + enum HorizontalAdvanceSource { + kSkiaHorizontalAdvances, + kHarfBuzzHorizontalAdvances + }; - static hb_font_funcs_t* GetHarfBuzzFontFuncs() { - return Get()->harfbuzz_font_funcs_; + static hb_font_funcs_t* GetHarfBuzzFontFuncs( + HorizontalAdvanceSource advance_source) { + if (advance_source == kHarfBuzzHorizontalAdvances) { + return Get()->harfbuzz_font_funcs_harfbuzz_advances_; + } + return Get()->harfbuzz_font_funcs_skia_advances_; } - static void SetHarfBuzzFontFuncs(hb_font_funcs_t* funcs) { - Get()->harfbuzz_font_funcs_ = funcs; + static void SetHarfBuzzFontFuncs(HorizontalAdvanceSource advance_source, + hb_font_funcs_t* funcs) { + if (advance_source == kHarfBuzzHorizontalAdvances) { + Get()->harfbuzz_font_funcs_harfbuzz_advances_ = funcs; + } + Get()->harfbuzz_font_funcs_skia_advances_ = funcs; } static FontUniqueNameLookup* GetFontUniqueNameLookup(); @@ -54,8 +65,9 @@ class PLATFORM_EXPORT FontGlobalContext { ~FontGlobalContext(); FontCache font_cache_; - HarfBuzzFontCache harfbuzz_font_cache_; - hb_font_funcs_t* harfbuzz_font_funcs_; + std::unique_ptr<HarfBuzzFontCache> harfbuzz_font_cache_; + hb_font_funcs_t* harfbuzz_font_funcs_skia_advances_; + hb_font_funcs_t* harfbuzz_font_funcs_harfbuzz_advances_; std::unique_ptr<FontUniqueNameLookup> font_unique_name_lookup_; DISALLOW_COPY_AND_ASSIGN(FontGlobalContext); |