Mitchell Hashimoto
d39e3f5428
coretext: improved baseline calculation
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
69396b0853
coretext: layout rect must fit all chars
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
5706770c38
coretext: handle glyph padding in region reservation
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
55254acaad
coretext: fix emoji placement
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
c52dc229f3
coretext: validate atlas depth matches color depth
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
a74e49833b
coretext: colored glyph rendering
2023-07-01 09:23:40 -07:00
Mitchell Hashimoto
286944cd43
cleaning up rasterization, comments
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
552a1b51d0
coretext: rasterization looking cleaner
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
079fe7bc94
coretext: the size needs to be in pixels! (see comment)
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
4d7a2c9f05
font: remove the old comment about not doing the grey stroke
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
45da58188c
fix up for new zig
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
ef5d86ffb0
coretext: initially fill grey
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
2a1cbb4f21
coretext: calculate units per em/point
2023-07-01 09:23:39 -07:00
Mitchell Hashimoto
314f9287b1
Update Zig ( #164 )
...
* update zig
* pkg/fontconfig: clean up @as
* pkg/freetype,harfbuzz: clean up @as
* pkg/imgui: clean up @as
* pkg/macos: clean up @as
* pkg/pixman,utf8proc: clean up @as
* clean up @as
* lots more @as cleanup
* undo flatpak changes
* clean up @as
2023-06-30 12:15:31 -07:00
Mitchell Hashimoto
56f8e39e5b
Update zig, mach, fmt
2023-06-25 11:08:20 -07:00
Mitchell Hashimoto
f871630fa4
move Atlas to font
2022-11-28 10:35:46 -08:00
Mitchell Hashimoto
371a7f79cb
coretext: implement resizing
2022-11-15 20:29:58 -08: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
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
Mitchell Hashimoto
276ae4f788
font: fix some coretext rendering issues
2022-10-09 11:45:02 -07:00
Mitchell Hashimoto
97e989daa8
font: coretext initial render glyph
2022-10-09 11:23:57 -07:00
Mitchell Hashimoto
1b7bc052d4
font: coretext calculate cell metrics
2022-10-09 10:57:19 -07:00
Mitchell Hashimoto
150b0a4d51
font: calculate cell height
2022-10-09 08:51:30 -07:00
Mitchell Hashimoto
a97f997f9a
font: start working on core text cell height calcs
2022-10-08 17:03:09 -07:00
Mitchell Hashimoto
22f437aac6
font: coretext cell width calculation
2022-10-08 11:49:23 -07:00
Mitchell Hashimoto
0e167ae24c
font: coretext initialize face from memory
2022-10-08 11:21:24 -07:00
Mitchell Hashimoto
0ff79a0623
font: coretext glyphIndex
2022-10-08 10:04:17 -07:00
Mitchell Hashimoto
723db8be2f
font: coretext face presentation
2022-10-08 09:55:22 -07:00
Mitchell Hashimoto
90f3b9391c
font: begin coretext Face
2022-10-08 09:43:54 -07:00
Mitchell Hashimoto
71ec509930
Make font face a compile time interface, stub for coretext
2022-10-08 09:19:21 -07:00