From 03aabe6c6edd68fb429a92e567814b7aac802fc7 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Wed, 12 Feb 2014 22:41:43 +0200 Subject: [PATCH] Update HarfBuzz-NG path on Mac 84be1bd4d3ed8d2d9e65301649bc841ea4197fe2 has changed the stored data type from QFontEngine to QFontEngine::FaceData. Update the implementation and revert changing the y_scale sign on non-Mac (aka fix-up 2d576f79f748ca4c9bb54634f0fd44fa207a2248). Change-Id: I4180257bc8f610fb014fd2a2ad6f8fdceece2f13 Reviewed-by: Lars Knoll --- src/3rdparty/harfbuzz-ng/src/hb-coretext.cc | 2 +- src/gui/text/qharfbuzzng.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc b/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc index ef6798d380b..5a34eddecce 100644 --- a/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc +++ b/src/3rdparty/harfbuzz-ng/src/hb-coretext.cc @@ -83,7 +83,7 @@ _hb_coretext_shaper_face_data_create (hb_face_t *face) if (unlikely (!data)) return NULL; - QFontEngine *fe = (QFontEngine *) face->user_data; + QFontEngine *fe = (QFontEngine *) ((QFontEngine::FaceData *) face->user_data)->user_data; if (fe->type () == QFontEngine::Mac) { data->cg_font = (CGFontRef) fe->userData ().value (); diff --git a/src/gui/text/qharfbuzzng.cpp b/src/gui/text/qharfbuzzng.cpp index 9f77083102a..c09f27b6658 100644 --- a/src/gui/text/qharfbuzzng.cpp +++ b/src/gui/text/qharfbuzzng.cpp @@ -703,7 +703,11 @@ _hb_qt_font_create(QFontEngine *fe) const int x_ppem = (fe->fontDef.pixelSize * fe->fontDef.stretch) / 100; hb_font_set_funcs(font, hb_qt_get_font_funcs(), (void *)fe, NULL); +#ifdef Q_OS_MAC hb_font_set_scale(font, QFixed(x_ppem).value(), QFixed(y_ppem).value()); +#else + hb_font_set_scale(font, QFixed(x_ppem).value(), -QFixed(y_ppem).value()); +#endif hb_font_set_ppem(font, x_ppem, y_ppem); return font;