From: Konstantin Ritt <ritt.ks@gmail.com>
Date: Sun, 17 Dec 2017 07:46:20 +0400
Subject: Qt-specific workaround for AAT shaper

CoreText API doesn't give us a fontdata to reconstruct the original font,
so we have to store the CTFont and CGFont of interest in context object
passed to HB from native font engine
---
 src/3rdparty/harfbuzz-ng/src/hb-coretext.cc | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc b/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc
index 2dd10d2..c993ec0 100644
--- a/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc
+++ b/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc
@@ -35,6 +35,20 @@
 #include "hb-coretext.h"
 #include <math.h>
 
+
+typedef bool (*qt_get_font_table_func_t) (void *user_data, unsigned int tag, unsigned char *buffer, unsigned int *length);
+
+struct FontEngineFaceData {
+  void *user_data;
+  qt_get_font_table_func_t get_font_table;
+};
+
+struct CoreTextFontEngineData {
+  CTFontRef ctFont;
+  CGFontRef cgFont;
+};
+
+
 /* https://developer.apple.com/documentation/coretext/1508745-ctfontcreatewithgraphicsfont */
 #define HB_CORETEXT_DEFAULT_FONT_SIZE 12.f
 
@@ -129,6 +143,7 @@ create_cg_font (hb_face_t *face)
   }
   else
   {
+#if 0
     hb_blob_t *blob = hb_face_reference_blob (face);
     unsigned int blob_length;
     const char *blob_data = hb_blob_get_data (blob, &blob_length);
@@ -143,6 +158,11 @@ create_cg_font (hb_face_t *face)
 	DEBUG_MSG (CORETEXT, face, "Face CGFontCreateWithDataProvider() failed");
       CGDataProviderRelease (provider);
     }
+#else
+    FontEngineFaceData *fontEngineFaceData = (FontEngineFaceData *) face->user_data;
+    CoreTextFontEngineData *coreTextFontEngineData = (CoreTextFontEngineData *) fontEngineFaceData->user_data;
+    cg_font = CGFontRetain (coreTextFontEngineData->cgFont);
+#endif
   }
   return cg_font;
 }
-- 

