633 Commits

Author SHA1 Message Date
Mitchell Hashimoto
d6c048f1e3 renderer/metal: picking away at font group => grid changes 2024-04-05 15:35:16 -07:00
Mitchell Hashimoto
04e0cd29e5 core: begin converting to SharedGridSet, renderers still broken 2024-04-05 15:25:45 -07:00
Mitchell Hashimoto
4a29da3525 font: SharedGridSet clarify memory ownership 2024-04-05 15:15:30 -07:00
Mitchell Hashimoto
719c5d7c25 font: SharedGridSet starts 2024-04-05 15:03:22 -07:00
Mitchell Hashimoto
b9471f3791 font: SharedGrid setup test infra 2024-04-05 14:39:31 -07:00
Mitchell Hashimoto
9fb883666a font: start SharedGrid 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
88db80b7b0 font: CodepointResolver test box glyph 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
b2541d24f1 font: CodepointResolver style disabling test 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
4eccd42f6b font: CodepointResolver beginnings 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
bd479db09f font: Collection setSize 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
4d70859864 font: Collection autoItalicize 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
40b4183b1f font: Collection deinit 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
0d0688404e font: Collection.getIndex 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
833d54e441 font: Collection has load options 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
89b3e3ae4e font: a mess 2024-04-05 09:29:41 -07:00
Mitchell Hashimoto
72d59956d5 font: [broken] working on extracting Collection from Group 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
7b428367df font: improve log statements a bit 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
5de88fe3f8 core: deref the font group when not used 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
6d7053a1ad core: convert surface/app to use GroupCacheSet 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
9f34edfa83 font: GroupCacheSet can initialize a group 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
2a386daa19 font: GroupCacheSet.Key has metric modifiers 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
9d8da8fcc7 font: CodepointMap hashable, use for groupcacheset 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
bfcd5f380a font: introduce GroupCacheSet, use it for descriptors to start 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
7fef1aa294 font: descritor can hash using a hasher 2024-04-05 09:29:40 -07:00
Mitchell Hashimoto
5546469c37 font: remove unused struct 2024-04-05 09:29:39 -07:00
Mitchell Hashimoto
eb4d21fcbf font/coretext: handle two-byte utf16 followed by more chars 2024-04-04 21:31:07 -07:00
Mitchell Hashimoto
6ace9e9d19 font/coretext: unit tests pass on macOS 2024-04-04 14:46:46 -07:00
Mitchell Hashimoto
1b8bae5f0a Update src/font/shape.zig
Co-authored-by: Jon Parise <jon@indelible.org>
2024-04-04 13:25:27 -07:00
Mitchell Hashimoto
fd4d2313d0 build: do not build/link harfbuzz on macOS 2024-04-04 12:22:35 -07:00
Mitchell Hashimoto
e41e45e1ad font/coretext: face doesn't need harfbuzz font if we're not using it 2024-04-04 12:18:28 -07:00
Mitchell Hashimoto
c5bbbdb5ee font/coretext: better comment coretext shaper 2024-04-04 12:06:59 -07:00
Mitchell Hashimoto
61d3da1bf6 font/coretext: respect quirks fonts for shaper 2024-04-04 12:02:43 -07:00
Mitchell Hashimoto
b124378f5c font/coretext: remove todo for font features 2024-04-04 11:34:20 -07:00
Mitchell Hashimoto
f0b2e21548 font: enable the coretext shaper by default for CoreText faces 2024-04-04 11:33:55 -07:00
Mitchell Hashimoto
de11063679 font/coretext: shaper supports user-defined font features 2024-04-04 11:25:46 -07:00
Mitchell Hashimoto
f0f53bd8b1 font/shaper: fix CoreText shaper to compile with latest terminal changes 2024-04-03 10:14:17 -07:00
Mitchell Hashimoto
555f6e159f font/sprite: remove comptime arg for box drawing 2024-04-02 08:38:36 -07:00
Qwerasd
5abc63193e font/sprite: improve rendering of dashed lines
Previous implementation would draw dashes to the edge of the character
cell, which would result in double-wide dashes at the point where they
tiled. This fixes that, and also generally implements it in a cleaner
way than before.
2024-04-01 18:35:34 -04:00
Mitchell Hashimoto
552c97eea4 font/freetype: avoid overflows with u8 font size 2024-03-27 20:45:55 -07:00
Mitchell Hashimoto
461b16ce34 font sizes are limited to u8 (max size = 255 points)
Fixes #1618

Font sizes in configuration were always a u8, but the keybinding and
internal state was a u16 so it allowed for an ever-growing font size. At
a certain point, there is an integer overflow which causes it to wrap
around. This is all silly, 255 should be large enough for anyone[1]

[1]: Ready to be super wrong about this
2024-03-27 20:36:59 -07:00
Mitchell Hashimoto
cf885b8998 font/shaper: fix style for runs 2024-03-22 20:27:52 -07:00
Mitchell Hashimoto
9b4ab0e209 zig build test with renamed terminal package 2024-03-22 20:27:44 -07:00
Mitchell Hashimoto
05470bb36a font/shaper: new API 2024-03-22 20:27:41 -07:00
Mitchell Hashimoto
efe037bb9f font/shaper: test with bg only cells 2024-03-22 20:27:41 -07:00
Mitchell Hashimoto
34200a3e83 font/shaper: more tests passing 2024-03-22 20:27:41 -07:00
Mitchell Hashimoto
e3230cf1e6 font/shaper: start converting run to new terminal 2024-03-22 20:27:41 -07:00
Mitchell Hashimoto
796d1312ff font/sprite: rect must be smaller than canvas dims 2024-02-24 13:19:49 -08:00
Mitchell Hashimoto
759c8cddb4 font/sprite: test for thick underline, assertion on x/y for rect 2024-02-24 09:30:04 -08:00
em-dash
0f19251aa6 fix crash in underline drawing math 2024-02-24 20:49:51 +11:00
Mitchell Hashimoto
61b964b958 font/freetype: enable bitmap loading for colored faces 2024-02-01 08:40:18 -08:00