Remove some metrics parsing code from Core Text

The respective value in some of the default fonts like Lucida Grande
are simply not reliable. It seems that the only reliable way to get
such information is by going through all the glyphs.

It seems that these code are not well tested on Mac and should be
removed for now since it caused visible regressions in QLineEdit
rendering.

Reviewed-by: Eskil
(cherry picked from commit 8032d6f4ced50837e126f28c1475ad89eaf91ad7)

Change-Id: I85e71a2e3228a367659be9f5f6ec3e667e0ce902
Reviewed-on: http://codereview.qt.nokia.com/1264
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
bb10
Jiang Jiang 2011-07-06 14:31:33 +02:00 committed by Qt by Nokia
parent ab5ff2965c
commit 915ec02cad
2 changed files with 3 additions and 20 deletions

View File

@ -492,17 +492,6 @@ void QCoreTextFontEngine::init()
avgCharWidth = QFixed::fromReal(width * fontDef.pixelSize / emSize);
} else
avgCharWidth = QFontEngine::averageCharWidth();
ctMaxCharWidth = ctMinLeftBearing = ctMinRightBearing = 0;
QByteArray hheaTable = getSfntTable(MAKE_TAG('h', 'h', 'e', 'a'));
if (hheaTable.size() >= 16) {
quint16 width = qFromBigEndian<quint16>(reinterpret_cast<const uchar *>(hheaTable.constData() + 10));
ctMaxCharWidth = width * fontDef.pixelSize / emSize;
qint16 bearing = qFromBigEndian<qint16>(reinterpret_cast<const uchar *>(hheaTable.constData() + 12));
ctMinLeftBearing = bearing * fontDef.pixelSize / emSize;
bearing = qFromBigEndian<qint16>(reinterpret_cast<const uchar *>(hheaTable.constData() + 14));
ctMinRightBearing = bearing * fontDef.pixelSize / emSize;
}
}
bool QCoreTextFontEngine::stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs,
@ -599,20 +588,17 @@ QFixed QCoreTextFontEngine::averageCharWidth() const
qreal QCoreTextFontEngine::maxCharWidth() const
{
return (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
? qRound(ctMaxCharWidth) : ctMaxCharWidth;
return 0;
}
qreal QCoreTextFontEngine::minLeftBearing() const
{
return (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
? qRound(ctMinLeftBearing) : ctMinLeftBearing;
return 0;
}
qreal QCoreTextFontEngine::minRightBearing() const
{
return (fontDef.styleStrategy & QFont::ForceIntegerMetrics)
? qRound(ctMinRightBearing) : ctMinLeftBearing;
return 0;
}
void QCoreTextFontEngine::draw(CGContextRef ctx, qreal x, qreal y, const QTextItemInt &ti, int paintDeviceHeight)

View File

@ -107,9 +107,6 @@ private:
int synthesisFlags;
CGAffineTransform transform;
QFixed avgCharWidth;
qreal ctMaxCharWidth;
qreal ctMinLeftBearing;
qreal ctMinRightBearing;
friend class QCoreTextFontEngineMulti;
};