src/gui/painting/qpaintengine_raster.cpp
branchRCL_3
changeset 5 d3bac044e0f0
parent 4 3b1da2848fc7
child 7 3f74d0d4af4c
equal deleted inserted replaced
4:3b1da2848fc7 5:d3bac044e0f0
  3079 
  3079 
  3080     QVarLengthArray<QFixedPoint> positions;
  3080     QVarLengthArray<QFixedPoint> positions;
  3081     QVarLengthArray<glyph_t> glyphs;
  3081     QVarLengthArray<glyph_t> glyphs;
  3082     QTransform matrix = s->matrix;
  3082     QTransform matrix = s->matrix;
  3083     matrix.translate(p.x(), p.y());
  3083     matrix.translate(p.x(), p.y());
       
  3084     if (matrix.type() == QTransform::TxScale)
       
  3085         fe->setFontScale(matrix.m11());
  3084     ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
  3086     ti.fontEngine->getGlyphPositions(ti.glyphs, matrix, ti.flags, glyphs, positions);
  3085 
  3087 
  3086     const QFixed aliasDelta = QFixed::fromReal(aliasedCoordinateDelta);
  3088     const QFixed aliasDelta = QFixed::fromReal(aliasedCoordinateDelta);
  3087 
  3089 
  3088     for (int i=0; i<glyphs.size(); ++i) {
  3090     for (int i=0; i<glyphs.size(); ++i) {
  3094         const int x = qFloor(positions[i].x + metrics.x + aliasDelta);
  3096         const int x = qFloor(positions[i].x + metrics.x + aliasDelta);
  3095         const int y = qFloor(positions[i].y + metrics.y + aliasDelta);
  3097         const int y = qFloor(positions[i].y + metrics.y + aliasDelta);
  3096 
  3098 
  3097         alphaPenBlt(glyphBitmapBytes, glyphBitmapSize.iWidth, 8, x, y, glyphBitmapSize.iWidth, glyphBitmapSize.iHeight);
  3099         alphaPenBlt(glyphBitmapBytes, glyphBitmapSize.iWidth, 8, x, y, glyphBitmapSize.iWidth, glyphBitmapSize.iHeight);
  3098     }
  3100     }
       
  3101 
       
  3102     if (matrix.type() == QTransform::TxScale)
       
  3103         fe->setFontScale(1.0);
  3099 
  3104 
  3100     return;
  3105     return;
  3101 }
  3106 }
  3102 #endif // Q_OS_SYMBIAN && QT_NO_FREETYPE
  3107 #endif // Q_OS_SYMBIAN && QT_NO_FREETYPE
  3103 
  3108 
  3267         drawCachedGlyphs(p, ti);
  3272         drawCachedGlyphs(p, ti);
  3268         return;
  3273         return;
  3269     }
  3274     }
  3270 
  3275 
  3271 #elif defined (Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) // Q_WS_WIN || Q_WS_MAC
  3276 #elif defined (Q_OS_SYMBIAN) && defined(QT_NO_FREETYPE) // Q_WS_WIN || Q_WS_MAC
  3272     if (s->matrix.type() <= QTransform::TxTranslate) {
  3277     if (s->matrix.type() <= QTransform::TxTranslate
       
  3278         || (s->matrix.type() == QTransform::TxScale
       
  3279                 && (qFuzzyCompare(s->matrix.m11(), s->matrix.m22())))) {
  3273         drawGlyphsS60(p, ti);
  3280         drawGlyphsS60(p, ti);
  3274         return;
  3281         return;
  3275     }
  3282     }
  3276 #else // Q_WS_WIN || Q_WS_MAC
  3283 #else // Q_WS_WIN || Q_WS_MAC
  3277 
  3284