openpencil/tests/engine/render/canvas
Danila Poyarkov cb7018a2d7
perf: stop repeating glyph coverage and component sync during layout (#957)
* perf(text): keep glyph coverage when layout resizes a text box

Every layout write invalidated a text node's coverage record by id, and the record compared its width and height, so each measurement shaped the text twice. Coverage now ignores the box size unless the text is truncated, and an update that changes only fields coverage compares keeps the record. A demo load went from about 38,000 coverage checks with 228 hits to one shaping per text node.

* perf(editor): skip component sync for layout's own writes

Layout lays out instances itself, and the edit that made it run has already scheduled its sync. Its size and position writes scheduled about 56,000 more, so each yield of an async build re-synchronised components and re-laid out whole pages.
2026-10-07 18:46:56 +00:00
..
chunks test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
effects test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
guides test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
labels fix(canvas): show every top-level frame's name and select frames by it (#930) 2026-10-06 11:37:46 +00:00
tiles test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
visual test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
arrow-heads-draw.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
blend.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
boolean.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
cache.test.ts refactor(canvas): draw screen-sized chrome through one outline helper (#947) 2026-10-07 18:37:05 +00:00
component-label-text.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
corner-smoothing.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
culling.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
derived-text.test.ts feat(fig): occurrence-scoped instance interpretation as the single .fig reader 2026-10-01 11:20:27 +04:00
diamond-gradient.test.ts fix(canvas): preserve paint geometry and color fidelity 2026-09-16 02:57:56 +03:00
effect-raster-cache.test.ts refactor(canvas): share bounded resource cache bookkeeping 2026-09-15 21:28:16 +03:00
effect-raster-integration.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
font-readiness.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
gradient.test.ts fix(canvas): orient linear gradients like Figma 2026-05-18 03:21:16 +03:00
helpers.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
image-fill.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
label-cache.test.ts test: align label cache contracts with component members 2026-09-16 16:14:12 +03:00
layout-grids.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
line.test.ts feat(scene-graph)!: make a stroke a paint (#864) 2026-10-04 13:38:05 +04:00
masks.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
measurement.test.ts feat(canvas): measure distances between layers (#515) 2026-08-14 18:18:55 +03:00
normalize-dash-pattern.test.ts fix(canvas): normalize imported dash patterns 2026-08-31 22:25:48 +03:00
painted-text.test.ts test(canvas): load painted-text font fixtures explicitly 2026-09-16 03:27:10 +03:00
picture-invalidation.test.ts perf: stop repeating glyph coverage and component sync during layout (#957) 2026-10-07 18:46:56 +00:00
raster-export.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
renderer-lifecycle.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
retained-backing-pixels.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
retained-backing.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
schema-fill-fallback.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
surface-replacement.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00
text-font-variations.test.ts fix(text): render variable font styles at their named instances (#773) 2026-09-26 11:25:01 +04:00
text-preparation-cache.test.ts perf: stop repeating glyph coverage and component sync during layout (#957) 2026-10-07 18:46:56 +00:00
text.test.ts fix(fig): write text glyphs from the layout the renderer draws (#928) 2026-10-06 11:37:02 +00:00
variable-modes.test.ts test: typecheck the test suites and fix what that found (#896) 2026-10-05 12:42:38 +00:00