Commit Graph
6 Commits
Author SHA1 Message Date
scamiv 62d2a904d3 Vendor namelayer emoji font
Keep the NameLayer emoji atlas generation deterministic by loading Twemoji COLR from resources/fonts instead of resolving it through the twemoji-colr-font npm package.

The font file and its OFL license are now checked in next to the other namelayer font assets. This removes the deprecated package dependency while preserving the current Twemoji output until the project chooses a final emoji font/set.
2026-05-27 14:42:25 +02:00
scamiv da33b283be Address namelayer asset builder review nits
Pass the pinned Twemoji font path to FontLibrary.use as an explicit path array, name the color-detection threshold used by atlas validation, and make SVG viewBox width/height extraction easier to read.

Validated with the namelayer asset build and eslint for scripts/build-namelayer-assets.mjs.
2026-05-27 14:41:12 +02:00
scamiv bd3e8f5c3c Make namelayer atlas generation deterministic
Replace node-canvas in the namelayer asset builder with skia-canvas so icon and emoji atlases are rasterized through the same cross-platform rendering backend. This removes the previous dependency on host Cairo/Pango emoji rendering, which could produce monochrome emoji sprites depending on the local font stack.

Add twemoji-colr-font as a pinned COLR/CPAL emoji font input for the build. The emoji atlas now renders from that explicit font instead of whichever OS emoji font happens to be installed, making the generated sprite sheet stable across developer machines and CI.

Generalize atlas frame packing for both SVG icons and emoji glyphs: render into a scratch canvas, trim to alpha bounds, center, and scale into the cell with consistent padding. This prevents icon frames from touching cell edges while preserving the existing Pixi atlas JSON contract.

Regenerate namelayer emoji and icon atlases. The builder now validates generated atlas frames and fails if any frame is empty or if the emoji atlas contains no color pixels, catching the monochrome-regeneration failure at build time.
2026-05-27 14:41:11 +02:00
scamiv 2adc1486d1 Render NameLayer text with MSDF assets 2026-05-27 14:38:08 +02:00
scamiv 645efeab9d Address NameLayer review feedback 2026-05-27 14:36:16 +02:00
scamiv fe216cba4b Render name layer with Pixi 2026-05-27 14:35:21 +02:00