summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/fonts/font_global_context.h
diff options
context:
space:
mode:
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.h32
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);