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

orion-ecs / keen-eye / 30200155187
64%

Build:
DEFAULT BRANCH: main
Ran 26 Jul 2026 11:32AM UTC
Jobs 1
Files 1051
Run time 2min
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

26 Jul 2026 11:27AM UTC coverage: 63.667% (-0.3%) from 63.962%
30200155187

push

github

tyevco
fix(input,samples): Distinguish absent input devices from uninitialized input, and play NOVAFALL without a gamepad (#1256)

NOVAFALL died on frame 1 for anyone with no controller plugged in, reporting
"Startup failed: InvalidOperationException: Input not initialized. Wait for
window to load." Two separate defects combined to produce that misleading line.

Engine — honest messages. SilkInputContext's Keyboard/Mouse/Gamepad getters all
threw the SAME "Input not initialized" text, so "this machine has no gamepad"
(the normal case: primaryGamepad stays null when gamepadList is empty) was
indistinguishable from "the window has not loaded". Each getter now reports
which of the two states it is in, names the absent device, and points at the
safe property to test first (ConnectedGamepadCount/Gamepads, Keyboards, Mice).
Gamepads disabled via SilkInputConfig.EnableGamepads gets its own message rather
than posing as missing hardware. IInputContext's XML docs now document the throw
and name the property to check; the old claim that Gamepad returns "a
disconnected placeholder" was never true of this backend.

OnWindowLoad no longer sets initialized = true when the provider yielded no
Silk.NET input context — IsInitialized used to report success while every device
getter failed, which is precisely the lie above. It also hooks
ISilkWindowProvider.OnLoad instead of Window.Load, matching SilkGraphicsContext
and SilkLoopProvider: the provider creates the input context inside its own
window-load handler before raising OnLoad, so InputContext is guaranteed to
exist (and the type becomes testable without opening a window).

Sample — no controller required. InputSteerSystem and GameFlowSystem read
input.Gamepad unguarded every frame; checking gamepad.IsConnected afterwards
cannot help, because the getter has already thrown. Both now resolve devices
through a new InputDevices helper (FirstConnectedGamepad/FirstKeyboard over the
always-safe plural collections), so the game i... (continued)

8933 of 13242 branches covered (67.46%)

Branch coverage included in aggregate %.

61 of 95 new or added lines in 7 files covered. (64.21%)

5 existing lines in 4 files now uncovered.

52874 of 83836 relevant lines covered (63.07%)

1.0 hits per line

Uncovered Changes

Lines Coverage ∆ File
28
0.0
0.0% samples/KeenEyes.Sample.NovaFall/Program.cs
5
45.33
38.48% samples/KeenEyes.Sample.NovaFall/Systems/GameFlowSystem.cs
1
94.44
73.02% samples/KeenEyes.Sample.NovaFall/Systems/JuiceToggleSystem.cs

Coverage Regressions

Lines Coverage ∆ File
2
81.58
2.63% src/KeenEyes.Parallelism/JobHandle.cs
1
0.0
0.0% samples/KeenEyes.Sample.NovaFall/Program.cs
1
78.79
-0.21% src/KeenEyes.Network.Transport.Udp/UdpTransport.cs
1
79.82
-0.88% src/KeenEyes.TestBridge.Ipc/IpcBridgeServer.cs
Jobs
ID Job ID Ran Files Coverage
1 30200155187.1 26 Jul 2026 11:32AM UTC 1051
63.67
GitHub Action Run
Source Files on build 30200155187
  • Tree
  • List 1051
  • Changed 11
  • Source Changed 5
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30200155187
  • c7635c7e on github
  • Prev Build on main (#30154512363)
  • Next Build on main (#30205636603)
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