summaryrefslogtreecommitdiffstats
path: root/src/gui/text
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2016-11-18 13:39:32 +0100
committerLars Knoll <lars.knoll@qt.io>2016-11-24 08:38:39 +0000
commit0861c2176c6dc1c69b733c1a843c2db5ec8ea786 (patch)
treec7d10323221363ef841899d8e955ce78ae9efeae /src/gui/text
parent72ed34b792f5acca5e0ada3b3d753b7a16274ff6 (diff)
Use harfbuzz feature to check for HarfBuzz
instead of defining a special macro for it. Change-Id: I715380717f7d871571f663be30b73f7d95d83d71 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src/gui/text')
-rw-r--r--src/gui/text/qfontengine.cpp10
-rw-r--r--src/gui/text/qharfbuzzng_p.h3
-rw-r--r--src/gui/text/qtextengine.cpp19
-rw-r--r--src/gui/text/qtextengine_p.h2
-rw-r--r--src/gui/text/text.pri4
5 files changed, 20 insertions, 18 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 74ea8d15b7..a7d7185a7e 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -53,7 +53,7 @@
#include <qendian.h>
#include <private/qstringiterator_p.h>
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
# include "qharfbuzzng_p.h"
# include <harfbuzz/hb-ot.h>
#endif
@@ -93,7 +93,7 @@ static inline bool qSafeFromBigEndian(const uchar *source, const uchar *end, T *
// Harfbuzz helper functions
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
Q_GLOBAL_STATIC_WITH_ARGS(bool, useHarfbuzzNG,(qgetenv("QT_HARFBUZZ") != "old"))
bool qt_useHarfbuzzNG()
@@ -296,7 +296,7 @@ QFixed QFontEngine::underlinePosition() const
void *QFontEngine::harfbuzzFont() const
{
Q_ASSERT(type() != QFontEngine::Multi);
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
if (qt_useHarfbuzzNG())
return hb_qt_font_get_for_engine(const_cast<QFontEngine *>(this));
#endif
@@ -331,7 +331,7 @@ void *QFontEngine::harfbuzzFont() const
void *QFontEngine::harfbuzzFace() const
{
Q_ASSERT(type() != QFontEngine::Multi);
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
if (qt_useHarfbuzzNG())
return hb_qt_face_get_for_engine(const_cast<QFontEngine *>(this));
#endif
@@ -363,7 +363,7 @@ bool QFontEngine::supportsScript(QChar::Script script) const
return true;
}
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
if (qt_useHarfbuzzNG()) {
#if defined(Q_OS_DARWIN)
// in AAT fonts, 'gsub' table is effectively replaced by 'mort'/'morx' table
diff --git a/src/gui/text/qharfbuzzng_p.h b/src/gui/text/qharfbuzzng_p.h
index 95a21eedb6..fabf222bae 100644
--- a/src/gui/text/qharfbuzzng_p.h
+++ b/src/gui/text/qharfbuzzng_p.h
@@ -53,6 +53,9 @@
//
#include <QtGui/private/qtguiglobal_p.h>
+
+QT_REQUIRE_CONFIG(harfbuzz);
+
#include <QtCore/qchar.h>
#include <harfbuzz/hb.h>
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index 742b01dd1f..67cafa53fe 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -37,6 +37,7 @@
**
****************************************************************************/
+#include <QtGui/private/qtguiglobal_p.h>
#include "qdebug.h"
#include "qtextformat.h"
#include "qtextformat_p.h"
@@ -837,7 +838,7 @@ enum JustificationClass {
Justification_Arabic_Kashida = 13 // User-inserted Kashida(U+0640)
};
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
/*
Adds an inter character justification opportunity after the number or letter
@@ -916,7 +917,7 @@ static inline void qt_getJustificationOpportunities(const ushort *string, int le
qt_getDefaultJustificationOpportunities(string, length, g, log_clusters, spaceAs);
}
-#endif // QT_ENABLE_HARFBUZZ_NG
+#endif // harfbuzz
// shape all the items that intersect with the line, taking tab widths into account to find out what text actually fits in the line.
@@ -950,7 +951,7 @@ void QTextEngine::shapeLine(const QScriptLine &line)
}
}
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
extern bool qt_useHarfbuzzNG(); // defined in qfontengine.cpp
#endif
@@ -1063,7 +1064,7 @@ void QTextEngine::shapeText(int item) const
letterSpacing *= font.d->dpi / qt_defaultDpiY();
}
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
if (Q_LIKELY(qt_useHarfbuzzNG()))
si.num_glyphs = shapeTextWithHarfbuzzNG(si, string, itemLength, fontEngine, itemBoundaries, kerningEnabled, letterSpacing != 0);
else
@@ -1079,7 +1080,7 @@ void QTextEngine::shapeText(int item) const
QGlyphLayout glyphs = shapedGlyphs(&si);
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
if (Q_LIKELY(qt_useHarfbuzzNG()))
qt_getJustificationOpportunities(string, itemLength, si, glyphs, logClusters(&si));
#endif
@@ -1119,7 +1120,7 @@ void QTextEngine::shapeText(int item) const
si.width += glyphs.advances[i] * !glyphs.attributes[i].dontPrint;
}
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
QT_BEGIN_INCLUDE_NAMESPACE
@@ -1313,7 +1314,7 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si,
return glyphs_shaped;
}
-#endif // QT_ENABLE_HARFBUZZ_NG
+#endif // harfbuzz
QT_BEGIN_INCLUDE_NAMESPACE
@@ -1669,7 +1670,7 @@ void QTextEngine::itemize() const
analysis->flags = QScriptAnalysis::None;
break;
}
-#ifndef QT_ENABLE_HARFBUZZ_NG
+#if !QT_CONFIG(harfbuzz)
analysis->script = hbscript_to_script(script_to_hbscript(analysis->script));
#endif
++uc;
@@ -1678,7 +1679,7 @@ void QTextEngine::itemize() const
if (option.flags() & QTextOption::ShowLineAndParagraphSeparators) {
(analysis-1)->flags = QScriptAnalysis::LineOrParagraphSeparator; // to exclude it from width
}
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
analysis = scriptAnalysis.data();
if (qt_useHarfbuzzNG()) {
// ### pretend HB-old behavior for now
diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h
index 160e9ce490..f49e2638f5 100644
--- a/src/gui/text/qtextengine_p.h
+++ b/src/gui/text/qtextengine_p.h
@@ -649,7 +649,7 @@ private:
void setBoundary(int strPos) const;
void addRequiredBoundaries() const;
void shapeText(int item) const;
-#ifdef QT_ENABLE_HARFBUZZ_NG
+#if QT_CONFIG(harfbuzz)
int shapeTextWithHarfbuzzNG(const QScriptItem &si,
const ushort *string,
int itemLength,
diff --git a/src/gui/text/text.pri b/src/gui/text/text.pri
index a15793ec2f..efd041a5af 100644
--- a/src/gui/text/text.pri
+++ b/src/gui/text/text.pri
@@ -78,9 +78,7 @@ SOURCES += \
HEADERS += \
text/qplatformfontdatabase.h
-qtConfig(harfbuzz)|qtConfig(system-harfbuzz) {
- DEFINES += QT_ENABLE_HARFBUZZ_NG
-
+qtConfig(harfbuzz) {
QMAKE_USE_PRIVATE += harfbuzz
SOURCES += text/qharfbuzzng.cpp