forked from Emily/InfiniteSudoku
-
Universal Gaming 2.11.10 Stable
released this
2026-11-07 18:08:53 +01:00 | 7 commits to main since this releaseUniversal Gaming 2.11.10
The chess figures were cut off. This release fixes how they are drawn.
What was wrong
Two separate defects, both visible on the board:
- The figures came from different fonts. White pieces use the hollow
Unicode set (U+2654-U+2659) and black pieces the filled one (U+265A-U+265F).
On macOS the two sets resolved to different fonts with different metrics, so
the white figures were drawn larger and lower than the black ones - and got
shaved flat by the edge of their square. - Every figure sat on a dark rectangle. The board drew a box shadow behind
the glyph's layout box instead of behind the figure, so a blurred dark
square appeared behind every piece.
What changed
- The figures now ship with the app: a 6 KB subset of Noto Sans Symbols 2
containing exactly the twelve chess glyphs (OFL 1.1, licence included). One
font for both colours means identical metrics on Android, iOS, macOS, Linux
and the web - no fallback fonts, no colour emoji, no platform surprises. tools/build_chess_font.pyrebuilds that subset from the upstream font and
centres the outlines on the baseline with symmetric ascent and descent, so no
text engine can place the figures off-centre. Measured on the real renderers,
the figures now sit within 1.5 px of the middle of their square.- The shadow follows the figure's outline instead of a rectangle.
- Nothing clips a figure any more:
Clip.noneon the glyph stacks and on the
board squares, visible text overflow everywhere. - Figures are drawn at 92% of a square; the small glyphs in the header, the
move history, the captured-pieces row and the promotion dialog were scaled to
match. - The VS15 presentation selector and the hollow-glyph workaround for white
pawns are gone: with a bundled font that has no emoji, neither is needed.
Checks
flutter analyze: cleanflutter test --concurrency=1: 304 tests pass- Verified on the real renderers, not just in tests: a headless Chrome capture
of the web build and a screenshot of the macOS build, plus pixel measurements
of the figure bounds inside a square.
Downloads
Platform File Android UniversalGaming-2.11.10-android.apkAndroid (Play) UniversalGaming-2.11.10-android.aabiOS (unsigned) UniversalGaming-2.11.10-ios-unsigned.ipamacOS UniversalGaming-2.11.10-macos.dmgLinux x86_64 UniversalGaming-2.11.10-linux-x86_64.AppImageWeb UniversalGaming-2.11.10-web.zipSHA256SUMS-2.11.10.txtlists the checksums of every asset.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The figures came from different fonts. White pieces use the hollow