-#if defined(Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE)
-void QRasterPaintEngine::drawGlyphsS60(const QPointF &p, const QTextItemInt &ti)
-{
- Q_D(QRasterPaintEngine);
- QRasterPaintEngineState *s = state();
-
- QFontEngine *fontEngine = ti.fontEngine;
- if (fontEngine->type() != QFontEngine::S60FontEngine) {
- QPaintEngineEx::drawTextItem(p, ti);
- return;
- }
-
- QFontEngineS60 *fe = static_cast<QFontEngineS60 *>(fontEngine);
-
- QVarLengthArray<QFixedPoint> positions;
- QVarLengthArray<glyph_t> glyphs;
- QTransform matrix = s->matrix;
- matrix.translate(p.x(), p.y());
- if (matrix.type() == QTransform::TxScale)
- fe->setFontScale(matrix.m11());
- ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
-
- const QFixed aliasDelta = QFixed::fromReal(aliasedCoordinateDelta);
-
- for (int i=0; i<glyphs.size(); ++i) {
- TOpenFontCharMetrics tmetrics;
- const TUint8 *glyphBitmapBytes;
- TSize glyphBitmapSize;
- fe->getCharacterData(glyphs[i], tmetrics, glyphBitmapBytes, glyphBitmapSize);
- const int x = qFloor(positions[i].x + tmetrics.HorizBearingX() + aliasDelta);
- const int y = qFloor(positions[i].y - tmetrics.HorizBearingY() + aliasDelta);
- alphaPenBlt(glyphBitmapBytes, glyphBitmapSize.iWidth, 8, x, y, glyphBitmapSize.iWidth, glyphBitmapSize.iHeight);
- }
-
- if (matrix.type() == QTransform::TxScale)
- fe->setFontScale(1.0);
-
- return;
-}
-#endif // Q_OS_SYMBIAN && QT_NO_FREETYPE