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

orion-ecs / keen-eye / 20078862177
65%

Build:
DEFAULT BRANCH: main
Ran 09 Dec 2025 09:20PM UTC
Jobs 1
Files 101
Run time 1min
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

09 Dec 2025 09:19PM UTC coverage: 98.036% (+0.04%) from 97.998%
20078862177

push

github

tyevco
Fix graphics window lifecycle and GPU resource disposal

## Changes

### GraphicsContext (src/KeenEyes.Graphics/Extensions/GraphicsContext.cs)
- Add OnUpdate and OnRender events for proper Silk.NET event-driven pattern
- Implement DisposeGpuResources() to clean up GPU resources in OnClosing
- Prevents "NoContext" exception when window closes
- GPU resources (meshes, textures, shaders) now disposed while OpenGL context is valid

### Graphics Sample (samples/KeenEyes.Sample.Graphics/Program.cs)
- Replace manual loop pattern with proper Silk.NET event-driven pattern
- Use OnRender event with graphics.Run() instead of manual Window.IsClosing loop
- Follows Silk.NET best practices for window lifecycle management

### Tests (tests/KeenEyes.Graphics.Tests/GraphicsContextTests.cs)
- Add OnUpdate_RaisesWhenSimulated test
- Add OnRender_RaisesWhenSimulated test
- Add Closing_DisposesGpuResources test
- Add Dispose_AfterClosing_DoesNotDoubleDisposeGpuResources test
- Improve Initialize_CalledTwice_OnlyInitializesOnce to properly test defensive code
- Coverage improved: GraphicsContext now at 94.58% line coverage (+0.98%)

### Documentation (docs/graphics.md)
- Update main loop section to recommend event-driven pattern
- Document OnUpdate and OnRender events
- Add warning about manual control pattern
- Update complete example to use proper pattern with OnRender

## Fixes
- Resolves "NoContext: Cannot query entry point without a current OpenGL or OpenGL ES context" error on window close
- Fixes improper window lifecycle management in graphics sample

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

881 of 887 branches covered (99.32%)

Branch coverage included in aggregate %.

15 of 15 new or added lines in 1 file covered. (100.0%)

5010 of 5122 relevant lines covered (97.81%)

1.24 hits per line

Jobs
ID Job ID Ran Files Coverage
1 20078862177.1 09 Dec 2025 09:20PM UTC 101
98.04
GitHub Action Run
Source Files on build 20078862177
  • Tree
  • List 101
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #20078862177
  • d1dea143 on github
  • Prev Build on main (#20069411233)
  • Next Build on main (#20080774308)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc