Mitchell Hashimoto
278668c953
font: draw single and double underlines as sprites
2022-11-27 15:14:49 -08:00
Mitchell Hashimoto
84efd2ac5f
font: use Canvas more, Canvas rect
2022-11-27 14:08:15 -08:00
Mitchell Hashimoto
28d386967d
font: introduce Canvas, start converting Box
2022-11-27 13:54:43 -08:00
Mitchell Hashimoto
b34e336c5c
rearrange box rendering to prepare for more sprite drawing
2022-11-27 10:17:12 -08:00
Mitchell Hashimoto
1062a39681
more glyphs
2022-11-25 15:28:47 -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
43c89cb449
more glyphs
2022-11-25 14:10:31 -08:00
Mitchell Hashimoto
353172199a
lot more boxes
2022-11-25 13:53:24 -08:00
Mitchell Hashimoto
f727b30ca6
more box fonts
2022-11-25 13:36:26 -08:00
Mitchell Hashimoto
8ad5dd1853
arc glyphs
2022-11-25 13:04:44 -08:00
Mitchell Hashimoto
72cd107e6a
many more boxes
2022-11-25 10:57:38 -08:00
Mitchell Hashimoto
ef16ba263f
16 more
2022-11-25 10:40:33 -08:00
Mitchell Hashimoto
58292e5930
16 more
2022-11-24 12:01:15 -08:00
Mitchell Hashimoto
dcd16c4d95
16 more
2022-11-24 11:49:17 -08:00
Mitchell Hashimoto
d8561ba23a
16 more
2022-11-24 11:27:32 -08:00
Mitchell Hashimoto
8033a4a665
more
2022-11-24 11:16:22 -08:00
Mitchell Hashimoto
fc8f36a59e
more glyphs for the glyph god
2022-11-24 10:21:28 -08:00
Mitchell Hashimoto
6e30238d36
more... more...
2022-11-24 10:21:27 -08:00
Mitchell Hashimoto
fbd5eba11a
font: more box glyphs
2022-11-24 10:21:27 -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
b9f97217ab
font: shaper handles special fonts
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
8f9da82754
Embed nerd fonts into our default font
2022-11-17 14:16:50 -08:00
Mitchell Hashimoto
371a7f79cb
coretext: implement resizing
2022-11-15 20:29:58 -08:00
Mitchell Hashimoto
6218792710
font: GroupCache supports resize
2022-11-15 15:54:57 -08:00
Mitchell Hashimoto
24167d0d59
font: Group supports resize
2022-11-15 15:48:52 -08:00
Mitchell Hashimoto
d759c7fb25
font: freetype face supports resize
2022-11-15 15:37:16 -08:00
Mitchell Hashimoto
1c4552de3b
font: freetype eliminate some duplicated work on init
2022-11-15 15:23:28 -08:00
Mitchell Hashimoto
d1718e6cbf
use libc memcpy/memmove instead of std.mem if available
2022-11-08 19:01:45 -08:00
Mitchell Hashimoto
8dd9e7b325
Fix memory leak forgetting to clean up fontconfig
2022-10-24 15:55:57 -07:00
Mitchell Hashimoto
79f69885ca
update to latest zig which renames @min/@max
2022-10-19 10:42:31 -07:00
Mitchell Hashimoto
fa0028f104
coretext: rasterize glyph with a padding to prevent artifacting
2022-10-18 14:57:44 -07:00
Mitchell Hashimoto
c00c8f52b5
coretext: render glyph on its own bounding box, calculate bearings
2022-10-18 14:49:23 -07:00
Mitchell Hashimoto
38e0c258d0
coretext: we do want to smooth and anti-alias glyphs
2022-10-18 12:56:02 -07:00
Mitchell Hashimoto
4669032e56
face: coretext zero the bitmap before render
2022-10-18 12:52:37 -07: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
a39fe6baed
Use scalable check rather than fixed size check for setting char size
2022-10-16 20:55:06 -07:00
Mitchell Hashimoto
2e1bc7bb01
Bring back freetype font bitmap conversion
...
Monaco on Mac is mono
2022-10-16 20:47:21 -07:00
Mitchell Hashimoto
1e23779337
pkg/macos: more stuff
2022-10-10 09:03:03 -07:00
Mitchell Hashimoto
c75e54fca0
update to API
2022-10-09 16:30:26 -07:00