src/gui/text/qfontengine_qpf.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
   817     Q_ASSERT(freetype);
   817     Q_ASSERT(freetype);
   818     freetype->lock();
   818     freetype->lock();
   819     FT_Face face = freetype->face;
   819     FT_Face face = freetype->face;
   820 
   820 
   821     // ### not perfect
   821     // ### not perfect
   822     const int ysize = fontDef.pixelSize << 6;
   822     const int ysize = qRound(fontDef.pixelSize * qreal(64));
   823     const int xsize = ysize;
   823     const int xsize = ysize;
   824 
   824 
   825     if (freetype->xsize != xsize || freetype->ysize != ysize) {
   825     if (freetype->xsize != xsize || freetype->ysize != ysize) {
   826         FT_Set_Char_Size(face, xsize, ysize, 0, 0);
   826         FT_Set_Char_Size(face, xsize, ysize, 0, 0);
   827         freetype->xsize = xsize;
   827         freetype->xsize = xsize;
   936     g.x = qRound(metrics.x);
   936     g.x = qRound(metrics.x);
   937     g.y = qRound(metrics.y);
   937     g.y = qRound(metrics.y);
   938     g.advance = qRound(metrics.xoff);
   938     g.advance = qRound(metrics.xoff);
   939 
   939 
   940     QT_WRITE(fd, &g, sizeof(g));
   940     QT_WRITE(fd, &g, sizeof(g));
   941     QT_WRITE(fd, img.bits(), img.numBytes());
   941     QT_WRITE(fd, img.bits(), img.byteCount());
   942 
   942 
   943     glyphPos = oldSize - glyphDataOffset;
   943     glyphPos = oldSize - glyphDataOffset;
   944 #if 0 && defined(DEBUG_FONTENGINE)
   944 #if 0 && defined(DEBUG_FONTENGINE)
   945     qDebug() << "glyphPos for new glyph" << glyph << "is" << glyphPos << "oldSize" << oldSize << "glyphDataOffset" << glyphDataOffset;
   945     qDebug() << "glyphPos for new glyph" << glyph << "is" << glyphPos << "oldSize" << oldSize << "glyphDataOffset" << glyphDataOffset;
   946 #endif
   946 #endif
   947 
   947 
   948     quint32 *gmap = (quint32 *)(fontData + glyphMapOffset);
   948     quint32 *gmap = (quint32 *)(fontData + glyphMapOffset);
   949     gmap[glyph] = qToBigEndian(glyphPos);
   949     gmap[glyph] = qToBigEndian(glyphPos);
   950 
   950 
   951     glyphDataSize = glyphPos + sizeof(g) + img.numBytes();
   951     glyphDataSize = glyphPos + sizeof(g) + img.byteCount();
   952     quint32 *blockSizePtr = (quint32 *)(fontData + glyphDataOffset - 4);
   952     quint32 *blockSizePtr = (quint32 *)(fontData + glyphDataOffset - 4);
   953     *blockSizePtr = qToBigEndian(glyphDataSize);
   953     *blockSizePtr = qToBigEndian(glyphDataSize);
   954 }
   954 }
   955 
   955 
   956 bool QFontEngineQPF::lockFile()
   956 bool QFontEngineQPF::lockFile()