makepad/libs/text_mesh/src
2026-10-21 16:27:06 +02:00
..
letters.rs relax: static init retried after an unwinding initializer; struct update base from a borrowed place drops nothing; find_root counts path-dependency members; std BufReader::seek_relative; trace host P(DOOM) full film + shader pack 2026-10-21 16:27:06 +02:00
lib.rs draw, libs: variable-font axes on font families, and the typography primitives move to their own light crate makepad-typography -- FontMember gains axes: "wdth 125 slnt -8 GRAD 50" (any axis by four-letter tag; wght stays weight), carried into FontDefinition::variations and into the member's font id, and FontFamily::with_axes(&[(tag, value)]) returns the family read at other axis values (its own id and cache; a wght value becomes the member weight), so a document can animate width, slant or any axis with the real font instead of a scale. makepad-text-mesh keeps the geometry (the glyph extruder and 3D letters); layout metrics, outlines, fitting, stroke fonts, karaoke, text on 3D paths and the text.outline/text.layout kernel host components are now makepad-typography (rustybuzz + script-compute only, no draw dependency), so pure document crates can use them. Checked: cargo test --release -p makepad-draw --lib axes_tests (parse, own family per value set, same values same family), -p makepad-typography (15) -p makepad-text-mesh (45); a hidden makepad-motion render of Roboto Flex at wdth 25 and 151 and slnt -10 draws the real condensed, extended and slanted outlines. 2026-09-30 12:25:26 +02:00
text_mesh.rs web: what a threaded film needs at run time -- the AudioWorklet reads the page's clock domain (performance.timeOrigin), so audio timestamps and the UI agree; a packed runtime carries the web worker script as a blob (web_pack, globalThis.makepad_web_worker_url) as it does the worklet, so a threaded build's threads can start; audio resumes on touchend (iOS). render's material-surface and text_mesh timers are native-only (Instant::now panics on wasm32). Checked: node --test platform/src/os/web/*.test.mjs (70); the threaded player build on the Mac mini (AudioWorklet callback at 44.1 kHz, no traps). 2026-10-01 15:31:15 +02:00