Mitchell Hashimoto
f871630fa4
move Atlas to font
2022-11-28 10:35:46 -08:00
Mitchell Hashimoto
b34e336c5c
rearrange box rendering to prepare for more sprite drawing
2022-11-27 10:17:12 -08:00
Mitchell Hashimoto
4cac375fcf
more
2022-11-25 15:22:59 -08:00
Mitchell Hashimoto
d2727b1f5c
more wedges
2022-11-25 15:18:36 -08:00
Mitchell Hashimoto
120dfb4043
more wedges
2022-11-25 15:12:34 -08:00
Mitchell Hashimoto
2c9b3e2f9b
wedge triangles
2022-11-25 15:02:12 -08:00
Mitchell Hashimoto
7676c1c52b
sextants
2022-11-25 14:41:17 -08:00
Mitchell Hashimoto
781571d7fb
braille
2022-11-25 14:26:19 -08:00
Mitchell Hashimoto
f727b30ca6
more box fonts
2022-11-25 13:36:26 -08:00
Mitchell Hashimoto
cb8f55229b
remove test code
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
6b2ca86ed8
fix offset for box glyphs
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
9bc8d85d67
test rendering box glyphs, looks OKAY
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
4b8b5c5fc1
font: skeleton for box drawing and hook up to Group
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
ca97c63a65
font: detect box glyphs, start littering stuff to denote special fonts
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
08bca077b2
search for unknown codepoints in any available font face
...
If an unknown codepoint is rendered, we now will query the OS for ANY
font that can satisfy the codepoint (rather than rendering `?`).
2022-11-17 16:09:33 -08:00
Mitchell Hashimoto
da2942e083
font: specific codepoint lookup in internals
2022-11-17 15:49:14 -08:00
Mitchell Hashimoto
24167d0d59
font: Group supports resize
2022-11-15 15:48:52 -08:00
Mitchell Hashimoto
58c107dceb
freetype: resize glyphs that are too tall prior to storing in texture
...
Most emoji fonts are massive glyphs (128x128, 256x256, etc.). This means
the texture we need to store emoji is also massive. For a 128x128 emoji
font (both Apple and Noto), we can only store 12 emoji before resizing
prior to this commit.
This commit now threads through a max height through to the font face
and resizes the bitmap in memory before putting it in the atlas. This
results in significant savings. The max height is the cell height. We
allow the glyphs to be as wide as necessary due to double (and more)
wide glyphs.
For the unicode emoji test file, the atlas size before and after:
Before: 262 MB
After: 16 MB
2022-10-17 19:14:30 -07:00
Mitchell Hashimoto
71ec509930
Make font face a compile time interface, stub for coretext
2022-10-08 09:19:21 -07:00
Mitchell Hashimoto
f41cbf228b
font: set "backend" enum vs booleans
2022-10-02 09:41:37 -07:00
Mitchell Hashimoto
b6a4fff6d8
search for fonts on startup
2022-09-29 11:57:29 -07:00
Mitchell Hashimoto
30a5041a38
font Group has Lib, loads deferred faces when needed
2022-09-29 10:30:45 -07:00
Mitchell Hashimoto
92251ed913
font group works with deferred faces exclusively
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
1c1da63c7e
deferred face hasCodepoint
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
141182aa13
start adding fontconfig conditional compilation
2022-09-23 14:12:38 -07:00
Mitchell Hashimoto
e326bc4921
fonts are presentation format aware (text vs emoji)
2022-09-06 13:30:29 -07:00
Mitchell Hashimoto
0505018186
Line segmentation into text runs
2022-08-29 16:39:48 -07:00
Mitchell Hashimoto
a0aa100815
font: GroupCache is like Group, but with caching...
2022-08-29 11:10:50 -07:00
Mitchell Hashimoto
a75035c042
font: introduce Group which will eventually replace FallbackSet
...
This is more oriented around glyph indexes and also introduces an
important concept in the FontIndex which can be cached ahead of time so
that we can eventually break down text into runs for text shaping.
2022-08-29 10:16:53 -07:00