3875 Commits

Author SHA1 Message Date
Mitchell Hashimoto
a1dda2c37f font: faceFromIndex returns a pointer to the face 2022-12-12 21:34:34 -08:00
Mitchell Hashimoto
c06ca04a1a font: web canvas tracks glyph indexes for grapheme clusters 2022-12-12 11:31:30 -08:00
Mitchell Hashimoto
2b3478ce3d font: start web canvas shaping, we perform grapheme clustering 2022-12-11 22:12:12 -08:00
Mitchell Hashimoto
35000bced1 font: shaper test should decode unicode codepoints 2022-12-08 12:42:09 -08:00
Mitchell Hashimoto
0c9a9b1f91 font: web canvas face has to render to check presentation for cp
Since we have no way to detect our presentation (text/emoji), we need to
actually render the glyph that is being requested to double-check that
the glyph matches our supported presentation.

We do this because the browser will render fallback fonts for a glyph if
it can't find one in the named font.
2022-12-07 19:20:04 -08:00
Mitchell Hashimoto
2c5b5429e3 wasm: build.zig uses addDeps for wasm 2022-12-07 18:39:46 -08:00
Mitchell Hashimoto
f53d9fb704 font: web canvas shaper yields runs 2022-12-07 18:29:49 -08:00
Mitchell Hashimoto
dd71456f35 font: shapers init with allocator since web canvas needs to init buffer 2022-12-06 13:44:55 -08:00
Mitchell Hashimoto
760f0c057c renderer: use new shaper structs 2022-12-06 13:25:52 -08:00
Mitchell Hashimoto
f0b7fbecee font: extract common shaper elements out 2022-12-06 13:23:53 -08:00
Mitchell Hashimoto
e3c18f3f51 font: move shaper into comptime interface 2022-12-06 11:20:37 -08:00
Mitchell Hashimoto
b043748794 Merge pull request #62 from mitchellh/web-emoji
wasm: web canvas font rasterizer can render emoji (no ZWJ yet)
2022-12-06 11:01:27 -08:00
Mitchell Hashimoto
6aa212707e font: web canvas can render emoji 2022-12-06 10:55:42 -08:00
Mitchell Hashimoto
41cbc1a323 wasm: show color atlas in example web app 2022-12-05 21:33:54 -08:00
Mitchell Hashimoto
10f708ee65 wasm: export terminal core API 2022-12-05 21:27:20 -08:00
Mitchell Hashimoto
95b89149aa Merge pull request #61 from mitchellh/font-group
wasm: Discovery, DeferredFace, Group, GroupCache
2022-12-05 21:18:55 -08:00
Mitchell Hashimoto
5993528f33 font: GroupCache is wasm compatible 2022-12-05 21:01:56 -08:00
Mitchell Hashimoto
62990bb33e font: Group is now wasm-compatible 2022-12-05 20:52:03 -08:00
Mitchell Hashimoto
aaa0d46b5d font: web canvas doesn't support discovery 2022-12-05 20:37:17 -08:00
Mitchell Hashimoto
5291501251 font: DeferredFace is wasm-compatible 2022-12-05 20:28:50 -08:00
Mitchell Hashimoto
e71dc470fd Merge pull request #60 from mitchellh/font-canvas
wasm: Canvas-based Rasterizer
2022-12-05 17:02:37 -08:00
Mitchell Hashimoto
2a74330911 font: begin making Group work with wasm 2022-12-05 16:08:20 -08:00
Mitchell Hashimoto
d2afddb7e2 font: fix some JS memory leaks 2022-12-05 15:45:31 -08:00
Mitchell Hashimoto
ed4e8c36b0 font: add 1 to the canvas glyph to avoid clipping 2022-12-05 15:37:55 -08:00
Mitchell Hashimoto
25f2f1a652 font: fix glyph offset calculations for render 2022-12-05 15:25:09 -08:00
Mitchell Hashimoto
5e9dd02eab font: add method for drawing atlas to canvas 2022-12-05 15:01:34 -08:00
Mitchell Hashimoto
84f6f37450 face: web canvas glyph rendering appears to work! 2022-12-05 14:28:10 -08:00
Mitchell Hashimoto
19e326dab6 font: working on rendering glyphs in canvas 2022-12-05 10:54:40 -08:00
Mitchell Hashimoto
d3b46eeeaf fix zig-js so wasm-test works 2022-12-04 22:07:50 -08:00
Mitchell Hashimoto
df302fc2b6 calculate font metrics via canvas 2022-12-04 22:01:58 -08:00
Mitchell Hashimoto
37f00ac725 don't export coretext/freetype 2022-12-04 13:19:29 -08:00
Mitchell Hashimoto
c48d8cd151 hook up logging to wasm, example uses new zig-js package 2022-12-04 13:16:54 -08:00
Mitchell Hashimoto
437f1772f1 logging works for wasm 2022-12-04 12:29:11 -08:00
Mitchell Hashimoto
940828ed97 font: web canvas creates a canvas element 2022-12-03 22:11:01 -08:00
Mitchell Hashimoto
21faf0b6fb add zig-js 2022-12-03 21:46:00 -08:00
Mitchell Hashimoto
fc618d37b2 Merge branch 'wasm' 2022-12-03 21:36:21 -08:00
Mitchell Hashimoto
f82593bcae update zig 2022-12-03 21:36:11 -08:00
Mitchell Hashimoto
1840829e9e add node for web stuff 2022-12-03 21:34:14 -08:00
Mitchell Hashimoto
c32219554a blank out web canvas impl 2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
b858aea124 Start scaffolding web_canvas backend 2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
6b101c2293 support unit testing wasm via wasmtime 2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
3a4d881444 wasm allocator, consider "host-owned" pointers 2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
24cc01e055 move wasm main to src/, export an Atlas API
We don't need the Atlas API for wasm at all, but its a good way to test
things work incrementally and its a pretty cool thing to have as a wasm
library really.
2022-12-01 13:02:17 -08:00
Mitchell Hashimoto
fe805f1031 update zig 2022-12-01 12:59:40 -08:00
Mitchell Hashimoto
6ad45f0237 update zig 2022-11-30 16:54:04 -08:00
Mitchell Hashimoto
67f8c231f8 update nixpkgs to 22.11 2022-11-29 14:44:56 -08:00
Mitchell Hashimoto
8ac759fa52 update zig again 2022-11-29 13:00:57 -08:00
Mitchell Hashimoto
88c37fb617 update zig version 2022-11-29 12:57:42 -08:00
Mitchell Hashimoto
7c4d024aba update mach for macOS Ventura 2022-11-29 10:13:21 -08:00
Mitchell Hashimoto
f871630fa4 move Atlas to font 2022-11-28 10:35:46 -08:00