Say the editor loads no bold face and why the test checks it (#273)

- Architecture: Source Sans 3 in 400, 500 and 600.
- Development: the font test holds the loaded weights to the
  fontWeight settings in src/ both ways.
admin committed 2026-09-30 21:27:58 +02:00
1 parent 442ad12097
commit 0b54e14387
2 files changed
+4 -2

No files matched your search

+1 -1
@@ -123,7 +123,7 @@ src/runtime/physics/ engine (loads Rapier once, reports its state, converts be
without the engine), bodyGeometry (a world shape as the engine colliders of a body, and the
poses handed between the two)
src/ui/ widget toolkit (generic, knows nothing about assets); fonts (the faces the editor ships:
Source Sans 3 in 400, 500, 600 and 700, Source Code Pro 400, Latin only, #202/#214), icons +
Source Sans 3 in 400, 500 and 600, Source Code Pro 400, Latin only, #202/#214/#273), icons +
Icon (the menu's tick boxes and current-entry dot as SVG files, and a widget that shows one file
on its own: a symbol the Latin subset lacks is never written as a character, #214); SortableList + sortable (the layer list of every editor that has one: rows dragged into order, eye, duplicate, cross, rename in place; the index arithmetic of a list shown upside down, kept apart so it is measured without a canvas)
src/viewport/ WorldViewport (the drawing of a world or a holder, the base of every view; it draws from
+3 -1
@@ -136,7 +136,9 @@ such picture on screen as `{ x, y, menu }`: `menu` says whether the button it si
In a step, `t.findIcon(id, menu)` and `t.clickIcon(id, menu)` do the same as `find` and `clickText`.
A menu's tick boxes are read through `t.menuTicked()` as `{ label, ticked }`. The unit test
`tests/ui/fonts.test.ts` reads the character map straight out of the font files and fails on any
character in `src/` that one of the shipped faces lacks.
character in `src/` that one of the shipped faces lacks. It also holds the loaded weights to
the `fontWeight` settings in `src/`, both ways: a weight the editor sets needs its face, and a face
no one sets fails as well, since the editor waits for every face before it starts (#273).
**Many pixels are one read, not many.** Every `__gm.pixelAt` renders the stage into a render
texture of its own and waits for the GPU to hand the pixel back: about 2 ms here, about 7 ms