QFontEngine *QBasicFontDatabase::fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) { QFontDef fontDef; fontDef.pixelSize = pixelSize; fontDef.hintingPreference = hintingPreference; QFontEngineFTRawData *fe = new QFontEngineFTRawData(fontDef); if (!fe->initFromData(fontData)) { delete fe; return 0; } fe->updateFamilyNameAndStyle(); fe->setQtDefaultHintStyle(static_cast<QFont::HintingPreference>(fontDef.hintingPreference)); return fe; }
QFontEngine *QBasicFontDatabase::fontEngine(const QByteArray &fontData, qreal pixelSize, QFont::HintingPreference hintingPreference) { QFontDef fontDef; fontDef.pixelSize = pixelSize; QFontEngineFTRawData *fe = new QFontEngineFTRawData(fontDef); if (!fe->initFromData(fontData)) { delete fe; return 0; } fe->updateFamilyNameAndStyle(); switch (hintingPreference) { case QFont::PreferNoHinting: fe->setDefaultHintStyle(QFontEngineFT::HintNone); break; case QFont::PreferFullHinting: fe->setDefaultHintStyle(QFontEngineFT::HintFull); break; case QFont::PreferVerticalHinting: fe->setDefaultHintStyle(QFontEngineFT::HintLight); break; default: // Leave it as it is break; } return fe; }