• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

orion-ecs / keen-eye / 30376778113
64%

Build:
DEFAULT BRANCH: main
Ran 28 Jul 2026 04:13PM UTC
Jobs 1
Files 1058
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 Jul 2026 04:07PM UTC coverage: 64.277% (+0.06%) from 64.22%
30376778113

push

github

tyevco
fix(graphics,samples): Select system fonts by loadability so macOS collections are skipped (#1365)

Every windowed sample failed to load a font on macOS. `/System/Library/Fonts/Helvetica.ttc`
was the first macOS candidate in four duplicated discovery lists, and each list selected on
`File.Exists` alone and returned the first hit. `.ttc` is a TrueType Collection - several faces
behind a `ttcf` header rather than a font table directory - and `SilkFontManager` loads with
`fontSystem.AddFont(File.ReadAllBytes(path))`, which initialises at offset 0, so stb rejected it
with a bare `stbtt_InitFont failed`. Existence is not loadability, so an unusable file shadowed
every later candidate that would have worked.

- Add `SystemFonts` to `KeenEyes.Graphics.Abstractions`: one platform-aware candidate list plus
  `FindFirstUsable()`, which selects by reading the leading 4-byte sfnt tag and skipping anything
  the rasterizer cannot open at offset zero - collections, web formats, truncated or unreadable
  files. The check, not the list, is what stays correct when Apple moves fonts again.
- Reorder the macOS candidates so the single-font files under
  `/System/Library/Fonts/Supplemental` come first and the `.ttc` last. Windows and Linux entries
  are unchanged.
- Replace the four duplicated `FindSystemFont` helpers (Sample.UI, Sample.Showcase,
  Sample.NovaFall, EditorApplication) with calls to the shared locator.
- Name the file and the format when a collection reaches `LoadFont`/`LoadFontFromMemory`, and wrap
  FontStashSharp's anonymous rejection at the boundary, per the #1274 diagnostics contract.
  Collection support itself remains deliberately out of scope.
- Make the Sample.UI and Sample.Showcase catch-alls report what actually failed instead of
  asserting "This sample requires a display" on a machine that had just logged a GL device line
  (third instance of the class tracked in #1256).

Closes #1365

9079 of 13305 branches covered (68.24%)

Branch coverage included in aggregate %.

70 of 76 new or added lines in 3 files covered. (92.11%)

4 existing lines in 3 files now uncovered.

53586 of 84187 relevant lines covered (63.65%)

1.0 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
1.22
0.01% editor/KeenEyes.Editor/Application/EditorApplication.cs
2
0.0
0.0% samples/KeenEyes.Sample.NovaFall/Program.cs
2
97.59
src/KeenEyes.Graphics.Abstractions/Text/SystemFonts.cs

Coverage Regressions

Lines Coverage ∆ File
2
69.68
0.53% src/KeenEyes.TestBridge/Process/ManagedProcess.cs
1
1.22
0.01% editor/KeenEyes.Editor/Application/EditorApplication.cs
1
0.0
0.0% samples/KeenEyes.Sample.NovaFall/Program.cs
Jobs
ID Job ID Ran Files Coverage
1 30376778113.1 28 Jul 2026 04:13PM UTC 1058
64.28
GitHub Action Run
Source Files on build 30376778113
  • Tree
  • List 1058
  • Changed 5
  • Source Changed 2
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30376778113
  • e25e3b60 on github
  • Prev Build on main (#30374356992)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc