Commit graph

7150 commits

Author SHA1 Message Date
Ivailo Monev
57860aa002 compute load flags outside loops
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-27 23:34:14 +02:00
Ivailo Monev
671e4659ef assume font face is scalable
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-27 12:25:33 +02:00
Ivailo Monev
aa9914b128 remove code for always false condition in freetype2 font engine
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-27 01:43:41 +02:00
Ivailo Monev
840461dda6 update comment in unicodetables source file [ci skip]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 23:36:41 +02:00
Ivailo Monev
ec41ce576c sync harfbuzz with unicode tables and fix indic shaper
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 23:13:02 +02:00
Ivailo Monev
4a2e0537e3 always select unicode character map
fixes loading of some symbol font glyphs, any other character map is
considered legacy

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 15:43:12 +02:00
Ivailo Monev
de6dfdceb1 drop fonts substitution support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 15:10:37 +02:00
Ivailo Monev
ee38a2df88 remove now unused alphaColorTable() function
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 14:38:58 +02:00
Ivailo Monev
e20fb5307a initialize all QFontEngineFT members
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 14:38:25 +02:00
Ivailo Monev
4683d5db16 remove unused QFontEngine::glyphCount() and its reimplementation
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 14:21:25 +02:00
Ivailo Monev
b9f94302a5 move the default implementation of glyphs to path converter to the box font engine
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 14:12:53 +02:00
Ivailo Monev
0706b752f1 debug type build fix
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 12:30:07 +02:00
Ivailo Monev
6445884ecf QFontEngineFT::Glyph::glyph_data no longer has be mutable
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 12:27:20 +02:00
Ivailo Monev
41bfaa6244 remove unused header inclusions and format qfontengine_x11 source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 12:18:30 +02:00
Ivailo Monev
b08bf6d2a1 replace QFreetypeFace::computeSize() with its body
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 12:17:59 +02:00
Ivailo Monev
8dd00a954b remove unused QFontEngineBox::cmap() method [ci reset]
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 03:30:49 +02:00
Ivailo Monev
2a70594b33 drop multi-font engine support
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 03:18:52 +02:00
Ivailo Monev
d81a398c20 drop bogus support for bitmap fonts
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 02:52:28 +02:00
Ivailo Monev
933af2b824 adjust QFontEngineBox::alphaMapForGlyph()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-26 00:59:43 +02:00
Ivailo Monev
2de9205c73 add alphaColorTable() function for alpha maps
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 22:55:29 +02:00
Ivailo Monev
07ebdb0f75 assert that QFreetypeFace::addBitmapToPath() should not be called for non-bitmap glyph slots
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 22:54:11 +02:00
Ivailo Monev
b515dea6c5 compute the load flags outside the loop in QFontEngineFT::addGlyphsToPath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 21:12:44 +02:00
Ivailo Monev
8bf6f0c9bd remove unused QFontEngineFT::Glyph::format member
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 21:10:17 +02:00
Ivailo Monev
638dd04dfc format qfontengine_ft source file
reminds me of https://en.wikipedia.org/wiki/Brainfuck:
https://ibb.co/Xzn0BqV

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 20:19:40 +02:00
Ivailo Monev
f5c6bc5f97 mark constant as static in QFreetypeFace::addGlyphToPath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:34:57 +02:00
Ivailo Monev
497c69c1a8 format QFreetypeFace::addGlyphToPath()
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:33:40 +02:00
Ivailo Monev
1b737f13d5 remove unused freetype2 LCD filter header inclusion in qfontengine_ft source file
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:27:49 +02:00
Ivailo Monev
59a37a388a remove unused QT_MAX_CACHED_GLYPH_SIZE definition
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:27:26 +02:00
Ivailo Monev
2b23b812e1 add missing XPM headers
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:27:03 +02:00
Ivailo Monev
b8e95fd573 remove unused QFontEngineFT::loadFlags() argument
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
2021-12-25 16:04:03 +02:00
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