Commit graph

6670 commits

Author SHA1 Message Date
Ivailo Monev
0d8824ba7b fake oblique via FT_GlyphSlot_Oblique() instead of transformation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 15:58:15 +02:00
Ivailo Monev
fb3b05c8fd minor freetype2 font engine optimizations
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 15:35:18 +02:00
Ivailo Monev
9eccf7098b oops, mark QFontEngine::addOutlineToPath() as virtual
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 15:15:30 +02:00
Ivailo Monev
1024c78194 simplify fonts cache
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 14:24:00 +02:00
Ivailo Monev
7b68bf1f8f always render glyphs as mono
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 13:34:01 +02:00
Ivailo Monev
f6204c0552 assume default format does not equal Format_None in QFontEngineFT::loadGlyph()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 01:14:34 +02:00
Ivailo Monev
8a1f8d5abf QFontEngineFT::loadGlyph() takes care of caching
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 00:05:03 +02:00
Ivailo Monev
57288229b1 remove redundant QFontEngineFT::GlyphInfo typedef/struct
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 23:38:25 +02:00
Ivailo Monev
b39fbc646f freetype2 font engine fixes
outline for scaled fonts is still busted and not done via freetype2 yet:
https://ibb.co/tDxDXRc

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 22:58:25 +02:00
Ivailo Monev
4d930a67b1 replace QFontEngineFT::loadGlyph() overload with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 14:39:14 +02:00
Ivailo Monev
4217985e75 glyphs are cached as glyph set
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 14:34:02 +02:00
Ivailo Monev
cc1f77a0ab ensure null pointer is returned if glyph is not found in the set
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 14:14:23 +02:00
Ivailo Monev
6e507c1a74 do not share the freetype2 library instance
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 13:59:01 +02:00
Ivailo Monev
56ed1cddd5 replace QFreetypeFace::getSfntTable() with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 13:05:10 +02:00
Ivailo Monev
2da0286b27 de-couple freetype2 font engine from the multi font engine
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 12:31:20 +02:00
Ivailo Monev
d97e9f7760 replace internal QPainter::drawText() with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-24 11:55:26 +02:00
Ivailo Monev
0461998834 merge definition checks in initializeFontDb() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 15:37:10 +02:00
Ivailo Monev
6717f4a716 unlock face regardless if the face pointer is valid in QFontEngineFT::glyphCount()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 15:35:54 +02:00
Ivailo Monev
80652bfdb1 dither_to_Mono() now requires 32-bit source image
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 15:35:18 +02:00
Ivailo Monev
0dc381dea6 const-correct kerning calculation methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 15:03:35 +02:00
Ivailo Monev
e4fbbf938f remove unused QPaintEnginePrivate::drawBoxTextItem() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 13:57:05 +02:00
Ivailo Monev
3e5b8b0e31 remove redundant X11 paint engine text drawing implementation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 13:44:30 +02:00
Ivailo Monev
902b2a02af remove unused QRasterPaintEngineState::Flags::fast_text member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 13:43:38 +02:00
Ivailo Monev
efc5e7a450 remove unused header inclusions in qfontdatabase_x11_p header
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 13:30:10 +02:00
Ivailo Monev
8f8a76c10b freetype2-based font engine does not depend on fontconfig
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 13:28:17 +02:00
Ivailo Monev
29f3b86946 remove unused QFontEngineFT::transform member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 07:12:13 +02:00
Ivailo Monev
8cf902187c remove unused QFontEngineFT methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-23 07:04:06 +02:00
Ivailo Monev
20417ab4fc remove unused glyph_metrics_t::transformed() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 17:50:02 +02:00
Ivailo Monev
62824fd679 remove unused font engine methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 17:23:36 +02:00
Ivailo Monev
b98cf28bd2 remove unused virtual font engine methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 16:48:58 +02:00
Ivailo Monev
6aa7468755 remove code for always false condition in QFontEngineFT
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 16:02:17 +02:00
Ivailo Monev
d3e5e35aa4 remove unused QFontEngineFT methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 15:44:27 +02:00
Ivailo Monev
51d290ba9a use shortcut for translated matrix in QX11PaintEngine::drawFreetype()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 15:22:51 +02:00
Ivailo Monev
bd836bf3db remove unused header inclusions in qxpmhandler source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 15:22:27 +02:00
Ivailo Monev
e66300dcf7 use shortcut for translated matrix in QFontEngineFT::addOutlineToPath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 15:09:19 +02:00
Ivailo Monev
70fc098f91 remove unused QFontEngine::alphaMapForGlyph() overload
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 14:17:37 +02:00
Ivailo Monev
6ab0101f23 fill image with RGBA color in QFontEngineBox::alphaMapForGlyph()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 13:52:57 +02:00
Ivailo Monev
95d60459f7 remove declaration of non-existing font engines methods
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 13:15:38 +02:00
Ivailo Monev
7814ef5f7e remove unused QFontEngine::lastRightBearing() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 13:06:15 +02:00
Ivailo Monev
c757596fff remove no-op QFontEngineFT::freeGlyphSets() method
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 12:52:33 +02:00
Ivailo Monev
c1f11712d8 remove unused QFontEngine::FaceId::encoding member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 12:39:58 +02:00
Ivailo Monev
22ab83ecda remove unused QFontEngineFT::QGlyphSet::id member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 12:33:36 +02:00
Ivailo Monev
1fb5435456 remove now unused QFontEngineFT::Glyph::uploadedToServer member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 11:48:18 +02:00
Ivailo Monev
459c998f16 remove redundant QFontEngine::GlyphFormat::Format_Render enum
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 11:46:34 +02:00
Ivailo Monev
906d1ad123 do not upload the font glyphs to X11 server
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 11:44:58 +02:00
Ivailo Monev
b4b94adf05 do not store the mono colors as vector
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 10:38:29 +02:00
Ivailo Monev
3424d3f5be get rid of QImage::Format_Indexed8
TODO: store mono colors as two QRgb instead of QVector<QRgb>

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 08:05:46 +02:00
Ivailo Monev
6b4f25f6d0 reimplement XPM handler via libXpm
TODO: alternative to qt_read_xpm_array() to load XPM with color table for
the style pixmaps

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 07:00:04 +02:00
Ivailo Monev
c3d07c87f7 oops, add the missing pixel character in QRegion XPM
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 06:58:12 +02:00
Ivailo Monev
2f9616e935 remove the texture glyph cache
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-22 06:04:33 +02:00