diff options
-rw-r--r-- | src/gui/text/qfontengine.cpp | 49 | ||||
-rw-r--r-- | src/gui/text/qtextengine.cpp | 9 |
2 files changed, 20 insertions, 38 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp index 80c28a376a..1c78642b3a 100644 --- a/src/gui/text/qfontengine.cpp +++ b/src/gui/text/qfontengine.cpp @@ -90,17 +90,6 @@ static inline bool qSafeFromBigEndian(const uchar *source, const uchar *end, T * return true; } -// Harfbuzz helper functions - -#if QT_CONFIG(harfbuzz) -Q_GLOBAL_STATIC_WITH_ARGS(bool, useHarfbuzzNG,(qgetenv("QT_HARFBUZZ") != "old")) - -bool qt_useHarfbuzzNG() -{ - return *useHarfbuzzNG(); -} -#endif - int QFontEngine::getPointInOutline(glyph_t glyph, int flags, quint32 point, QFixed *xpos, QFixed *ypos, quint32 *nPoints) { Q_UNUSED(glyph); @@ -199,20 +188,20 @@ void *QFontEngine::harfbuzzFont() const { Q_ASSERT(type() != QFontEngine::Multi); #if QT_CONFIG(harfbuzz) - if (qt_useHarfbuzzNG()) - return hb_qt_font_get_for_engine(const_cast<QFontEngine *>(this)); -#endif + return hb_qt_font_get_for_engine(const_cast<QFontEngine *>(this)); +#else return nullptr; +#endif } void *QFontEngine::harfbuzzFace() const { Q_ASSERT(type() != QFontEngine::Multi); #if QT_CONFIG(harfbuzz) - if (qt_useHarfbuzzNG()) - return hb_qt_face_get_for_engine(const_cast<QFontEngine *>(this)); -#endif + return hb_qt_face_get_for_engine(const_cast<QFontEngine *>(this)); +#else return nullptr; +#endif } bool QFontEngine::supportsScript(QChar::Script script) const @@ -227,23 +216,21 @@ bool QFontEngine::supportsScript(QChar::Script script) const return true; #if QT_CONFIG(harfbuzz) - if (qt_useHarfbuzzNG()) { - // in AAT fonts, 'gsub' table is effectively replaced by 'mort'/'morx' table - uint lenMort = 0, lenMorx = 0; - if (getSfntTableData(MAKE_TAG('m','o','r','t'), nullptr, &lenMort) || getSfntTableData(MAKE_TAG('m','o','r','x'), nullptr, &lenMorx)) - return true; + // in AAT fonts, 'gsub' table is effectively replaced by 'mort'/'morx' table + uint lenMort = 0, lenMorx = 0; + if (getSfntTableData(MAKE_TAG('m','o','r','t'), nullptr, &lenMort) || getSfntTableData(MAKE_TAG('m','o','r','x'), nullptr, &lenMorx)) + return true; - if (hb_face_t *face = hb_qt_face_get_for_engine(const_cast<QFontEngine *>(this))) { - unsigned int script_count = HB_OT_MAX_TAGS_PER_SCRIPT; - hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT]; + if (hb_face_t *face = hb_qt_face_get_for_engine(const_cast<QFontEngine *>(this))) { + unsigned int script_count = HB_OT_MAX_TAGS_PER_SCRIPT; + hb_tag_t script_tags[HB_OT_MAX_TAGS_PER_SCRIPT]; - hb_ot_tags_from_script_and_language(hb_qt_script_to_script(script), HB_LANGUAGE_INVALID, - &script_count, script_tags, - nullptr, nullptr); + hb_ot_tags_from_script_and_language(hb_qt_script_to_script(script), HB_LANGUAGE_INVALID, + &script_count, script_tags, + nullptr, nullptr); - if (hb_ot_layout_table_select_script(face, HB_OT_TAG_GSUB, script_count, script_tags, nullptr, nullptr)) - return true; - } + if (hb_ot_layout_table_select_script(face, HB_OT_TAG_GSUB, script_count, script_tags, nullptr, nullptr)) + return true; } #endif return false; diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 5548379778..97b9836856 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1354,10 +1354,6 @@ void QTextEngine::shapeLine(const QScriptLine &line) } } -#if QT_CONFIG(harfbuzz) -extern bool qt_useHarfbuzzNG(); // defined in qfontengine.cpp -#endif - static void applyVisibilityRules(ushort ucs, QGlyphLayout *glyphs, uint glyphPosition, QFontEngine *fontEngine) { // hide characters that should normally be invisible @@ -1517,7 +1513,7 @@ void QTextEngine::shapeText(int item) const } #if QT_CONFIG(harfbuzz) - if (Q_LIKELY(shapingEnabled && qt_useHarfbuzzNG())) { + if (Q_LIKELY(shapingEnabled)) { si.num_glyphs = shapeTextWithHarfbuzzNG(si, string, itemLength, fontEngine, itemBoundaries, kerningEnabled, letterSpacing != 0); } else #endif @@ -1578,8 +1574,7 @@ void QTextEngine::shapeText(int item) const QGlyphLayout glyphs = shapedGlyphs(&si); #if QT_CONFIG(harfbuzz) - if (Q_LIKELY(qt_useHarfbuzzNG())) - qt_getJustificationOpportunities(string, itemLength, si, glyphs, logClusters(&si)); + qt_getJustificationOpportunities(string, itemLength, si, glyphs, logClusters(&si)); #endif if (letterSpacing != 0) { |