Make QFontEngine::type() non-virtual
Change-Id: I24ece90d6d8f96dad0c41a474a491b4ea96d97c3 Reviewed-by: Lars Knoll <lars.knoll@digia.com>bb10
parent
e69284db08
commit
9f1089531d
|
|
@ -220,8 +220,8 @@ Q_AUTOTEST_EXPORT QList<QFontEngine *> QFontEngine_stopCollectingEngines()
|
|||
|
||||
// QFontEngine
|
||||
|
||||
QFontEngine::QFontEngine()
|
||||
: ref(0),
|
||||
QFontEngine::QFontEngine(Type type)
|
||||
: m_type(type), ref(0),
|
||||
font_(0), font_destroy_func(0),
|
||||
face_(0), face_destroy_func(0)
|
||||
{
|
||||
|
|
@ -1369,7 +1369,15 @@ QFontEngine::GlyphCacheEntry &QFontEngine::GlyphCacheEntry::operator=(const Glyp
|
|||
// ------------------------------------------------------------------
|
||||
|
||||
QFontEngineBox::QFontEngineBox(int size)
|
||||
: _size(size)
|
||||
: QFontEngine(Box),
|
||||
_size(size)
|
||||
{
|
||||
cache_cost = sizeof(QFontEngineBox);
|
||||
}
|
||||
|
||||
QFontEngineBox::QFontEngineBox(Type type, int size)
|
||||
: QFontEngine(type),
|
||||
_size(size)
|
||||
{
|
||||
cache_cost = sizeof(QFontEngineBox);
|
||||
}
|
||||
|
|
@ -1502,11 +1510,6 @@ bool QFontEngineBox::canRender(const QChar *, int) const
|
|||
return true;
|
||||
}
|
||||
|
||||
QFontEngine::Type QFontEngineBox::type() const
|
||||
{
|
||||
return Box;
|
||||
}
|
||||
|
||||
QImage QFontEngineBox::alphaMapForGlyph(glyph_t)
|
||||
{
|
||||
QImage image(_size, _size, QImage::Format_Indexed8);
|
||||
|
|
@ -1538,6 +1541,7 @@ static inline glyph_t stripped(glyph_t glyph)
|
|||
{ return glyph & 0x00ffffff; }
|
||||
|
||||
QFontEngineMulti::QFontEngineMulti(int engineCount)
|
||||
: QFontEngine(Multi)
|
||||
{
|
||||
engines.fill(0, engineCount);
|
||||
cache_cost = 0;
|
||||
|
|
@ -1968,13 +1972,4 @@ QImage QFontEngineMulti::alphaRGBMapForGlyph(glyph_t glyph, QFixed subPixelPosit
|
|||
return engine(which)->alphaRGBMapForGlyph(stripped(glyph), subPixelPosition, t);
|
||||
}
|
||||
|
||||
QTestFontEngine::QTestFontEngine(int size)
|
||||
: QFontEngineBox(size)
|
||||
{}
|
||||
|
||||
QFontEngine::Type QTestFontEngine::type() const
|
||||
{
|
||||
return TestFontEngine;
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -635,6 +635,7 @@ static void convoluteBitmap(const uchar *src, uchar *dst, int width, int height,
|
|||
}
|
||||
|
||||
QFontEngineFT::QFontEngineFT(const QFontDef &fd)
|
||||
: QFontEngine(Freetype)
|
||||
{
|
||||
fontDef = fd;
|
||||
matrix.xx = 0x10000;
|
||||
|
|
|
|||
|
|
@ -228,9 +228,6 @@ private:
|
|||
virtual glyph_t glyphIndex(uint ucs4) const;
|
||||
void doKerning(QGlyphLayout *, ShaperFlags) const;
|
||||
|
||||
inline virtual Type type() const
|
||||
{ return QFontEngine::Freetype; }
|
||||
|
||||
virtual void getUnscaledGlyph(glyph_t glyph, QPainterPath *path, glyph_metrics_t *metrics);
|
||||
|
||||
virtual bool supportsTransformation(const QTransform &transform) const;
|
||||
|
|
|
|||
|
|
@ -125,9 +125,10 @@ public:
|
|||
};
|
||||
Q_DECLARE_FLAGS(ShaperFlags, ShaperFlag)
|
||||
|
||||
QFontEngine();
|
||||
virtual ~QFontEngine();
|
||||
|
||||
inline Type type() const { return m_type; }
|
||||
|
||||
// all of these are in unscaled metrics if the engine supports uncsaled metrics,
|
||||
// otherwise in design metrics
|
||||
struct Properties {
|
||||
|
|
@ -230,8 +231,6 @@ public:
|
|||
|
||||
virtual bool supportsTransformation(const QTransform &transform) const;
|
||||
|
||||
virtual Type type() const = 0;
|
||||
|
||||
virtual int glyphCount() const;
|
||||
virtual int glyphMargin(GlyphFormat format) { return format == Format_A32 ? 2 : 0; }
|
||||
|
||||
|
|
@ -260,6 +259,10 @@ public:
|
|||
};
|
||||
virtual void setDefaultHintStyle(HintStyle) { }
|
||||
|
||||
private:
|
||||
const Type m_type;
|
||||
|
||||
public:
|
||||
QAtomicInt ref;
|
||||
QFontDef fontDef;
|
||||
|
||||
|
|
@ -294,6 +297,8 @@ public:
|
|||
inline QVariant userData() const { return m_userData; }
|
||||
|
||||
protected:
|
||||
explicit QFontEngine(Type type);
|
||||
|
||||
QFixed lastRightBearing(const QGlyphLayout &glyphs, bool round = false);
|
||||
|
||||
inline void setUserData(const QVariant &userData) { m_userData = userData; }
|
||||
|
|
@ -361,9 +366,11 @@ public:
|
|||
|
||||
virtual bool canRender(const QChar *string, int len) const;
|
||||
|
||||
virtual Type type() const;
|
||||
inline int size() const { return _size; }
|
||||
|
||||
protected:
|
||||
explicit QFontEngineBox(Type type, int size);
|
||||
|
||||
private:
|
||||
friend class QFontPrivate;
|
||||
int _size;
|
||||
|
|
@ -403,9 +410,6 @@ public:
|
|||
virtual qreal minLeftBearing() const;
|
||||
virtual qreal minRightBearing() const;
|
||||
|
||||
virtual inline Type type() const
|
||||
{ return QFontEngine::Multi; }
|
||||
|
||||
virtual bool canRender(const QChar *string, int len) const;
|
||||
|
||||
QFontEngine *engine(int at) const
|
||||
|
|
@ -430,8 +434,7 @@ protected:
|
|||
class QTestFontEngine : public QFontEngineBox
|
||||
{
|
||||
public:
|
||||
QTestFontEngine(int size);
|
||||
virtual Type type() const;
|
||||
inline QTestFontEngine(int size) : QFontEngineBox(TestFontEngine, size) {}
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
|
|
@ -237,7 +237,8 @@ static inline unsigned int getChar(const QChar *str, int &i, const int len)
|
|||
}
|
||||
|
||||
QFontEngineQPA::QFontEngineQPA(const QFontDef &def, const QByteArray &data)
|
||||
: fontData(reinterpret_cast<const uchar *>(data.constData())), dataSize(data.size())
|
||||
: QFontEngine(QPF2),
|
||||
fontData(reinterpret_cast<const uchar *>(data.constData())), dataSize(data.size())
|
||||
{
|
||||
fontDef = def;
|
||||
cache_cost = 100;
|
||||
|
|
@ -510,11 +511,6 @@ QFixed QFontEngineQPA::lineThickness() const
|
|||
return QFixed::fromReal(extractHeaderField(fontData, Tag_LineThickness).value<qreal>());
|
||||
}
|
||||
|
||||
QFontEngine::Type QFontEngineQPA::type() const
|
||||
{
|
||||
return QFontEngine::QPF2;
|
||||
}
|
||||
|
||||
bool QFontEngineQPA::isValid() const
|
||||
{
|
||||
return fontData && dataSize && (cmapOffset || externalCMap)
|
||||
|
|
|
|||
|
|
@ -182,8 +182,6 @@ public:
|
|||
QFixed underlinePosition() const;
|
||||
QFixed lineThickness() const;
|
||||
|
||||
Type type() const;
|
||||
|
||||
virtual int glyphCount() const { return glyphMapEntries; }
|
||||
|
||||
bool isValid() const;
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ CGAffineTransform qt_transform_from_fontdef(const QFontDef &fontDef)
|
|||
}
|
||||
|
||||
QCoreTextFontEngine::QCoreTextFontEngine(CTFontRef font, const QFontDef &def)
|
||||
: QFontEngine(Mac)
|
||||
{
|
||||
fontDef = def;
|
||||
transform = qt_transform_from_fontdef(fontDef);
|
||||
|
|
@ -95,6 +96,7 @@ QCoreTextFontEngine::QCoreTextFontEngine(CTFontRef font, const QFontDef &def)
|
|||
}
|
||||
|
||||
QCoreTextFontEngine::QCoreTextFontEngine(CGFontRef font, const QFontDef &def)
|
||||
: QFontEngine(Mac)
|
||||
{
|
||||
fontDef = def;
|
||||
transform = qt_transform_from_fontdef(fontDef);
|
||||
|
|
|
|||
|
|
@ -84,8 +84,6 @@ public:
|
|||
virtual int synthesized() const { return synthesisFlags; }
|
||||
virtual bool supportsSubPixelPositions() const { return true; }
|
||||
|
||||
virtual Type type() const { return QFontEngine::Mac; }
|
||||
|
||||
void draw(CGContextRef ctx, qreal x, qreal y, const QTextItemInt &ti, int paintDeviceHeight);
|
||||
|
||||
virtual FaceId faceId() const;
|
||||
|
|
|
|||
|
|
@ -272,7 +272,8 @@ int QWindowsFontEngine::getGlyphIndexes(const QChar *str, int numChars, QGlyphLa
|
|||
|
||||
QWindowsFontEngine::QWindowsFontEngine(const QString &name,
|
||||
HFONT _hfont, bool stockFontIn, LOGFONT lf,
|
||||
const QSharedPointer<QWindowsFontEngineData> &fontEngineData) :
|
||||
const QSharedPointer<QWindowsFontEngineData> &fontEngineData)
|
||||
: QFontEngine(Win),
|
||||
m_fontEngineData(fontEngineData),
|
||||
_name(name),
|
||||
hfont(_hfont),
|
||||
|
|
@ -771,11 +772,6 @@ qreal QWindowsFontEngine::minRightBearing() const
|
|||
#endif // Q_OS_WINCE
|
||||
}
|
||||
|
||||
QFontEngine::Type QWindowsFontEngine::type() const
|
||||
{
|
||||
return QFontEngine::Win;
|
||||
}
|
||||
|
||||
static inline double qt_fixed_to_double(const FIXED &p) {
|
||||
return ((p.value << 16) + p.fract) / 65536.0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,8 +110,6 @@ public:
|
|||
virtual qreal minLeftBearing() const;
|
||||
virtual qreal minRightBearing() const;
|
||||
|
||||
Type type() const;
|
||||
|
||||
virtual QImage alphaMapForGlyph(glyph_t t) { return alphaMapForGlyph(t, QTransform()); }
|
||||
virtual QImage alphaMapForGlyph(glyph_t, const QTransform &xform);
|
||||
virtual QImage alphaRGBMapForGlyph(glyph_t t, QFixed subPixelPosition, const QTransform &xform);
|
||||
|
|
|
|||
|
|
@ -201,8 +201,8 @@ namespace {
|
|||
QWindowsFontEngineDirectWrite::QWindowsFontEngineDirectWrite(IDWriteFontFace *directWriteFontFace,
|
||||
qreal pixelSize,
|
||||
const QSharedPointer<QWindowsFontEngineData> &d)
|
||||
|
||||
: m_fontEngineData(d)
|
||||
: QFontEngine(DirectWrite)
|
||||
, m_fontEngineData(d)
|
||||
, m_directWriteFontFace(directWriteFontFace)
|
||||
, m_directWriteBitmapRenderTarget(0)
|
||||
, m_lineThickness(-1)
|
||||
|
|
@ -642,11 +642,6 @@ QImage QWindowsFontEngineDirectWrite::alphaRGBMapForGlyph(glyph_t t,
|
|||
: mask.convertToFormat(QImage::Format_RGB32);
|
||||
}
|
||||
|
||||
QFontEngine::Type QWindowsFontEngineDirectWrite::type() const
|
||||
{
|
||||
return QFontEngine::DirectWrite;
|
||||
}
|
||||
|
||||
QFontEngine *QWindowsFontEngineDirectWrite::cloneWithSize(qreal pixelSize) const
|
||||
{
|
||||
QFontEngine *fontEngine = new QWindowsFontEngineDirectWrite(m_directWriteFontFace,
|
||||
|
|
|
|||
|
|
@ -97,8 +97,6 @@ public:
|
|||
|
||||
QFontEngine *cloneWithSize(qreal pixelSize) const;
|
||||
|
||||
Type type() const;
|
||||
|
||||
const QSharedPointer<QWindowsFontEngineData> &fontEngineData() const { return m_fontEngineData; }
|
||||
|
||||
static QString fontNameSubstitute(const QString &familyName);
|
||||
|
|
|
|||
Loading…
Reference in New Issue