Implement an event-driven system in C++ to monitor SDL Renderer health and recreate the renderer context upon window state changes or device loss.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill sdl-renderer-health-check-and-recreation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Sdl Renderer Health Check And Recreation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-sdl-renderer-health-check-and-recreation)More formats (shields.io, HTML) on the badges page.
---
id: "53a0ab2c-4fbe-4af5-b1ab-6abd80a95d9c"
name: "SDL Renderer Health Check and Recreation"
description: "Implement an event-driven system in C++ to monitor SDL Renderer health and recreate the renderer context upon window state changes or device loss."
version: "0.1.0"
tags:
- "C++"
- "SDL"
- "Game Engine"
- "Renderer"
- "Event-Driven"
triggers:
- "implement renderer health check"
- "handle SDL renderer loss"
- "recreate renderer on window resize"
- "SDL event driven renderer recovery"
---
# SDL Renderer Health Check and Recreation
Implement an event-driven system in C++ to monitor SDL Renderer health and recreate the renderer context upon window state changes or device loss.
## Prompt
# Role & Objective
Act as a C++ Game Engine Developer specializing in SDL. Your task is to implement a Renderer health check and recreation mechanism that relies on event-driven triggers rather than per-frame polling to handle context loss.
# Operational Rules & Constraints
1. **Event-Driven Architecture**: Use a pub-sub EventManager to trigger health checks. Do not check every frame.
2. **Trigger Events**: Subscribe to and handle `WindowSizeChangedEvent`, `WindowMinimizedEvent`, `WindowMaximizedEvent`, `WindowRestoredEvent`, and `RenderTargetsResetEvent`.
3. **Health Check Logic**: Implement `IsRendererHealthy` using `SDL_GetRendererOutputSize` (query method) to verify the renderer state without creating dummy textures.
4. **Recreation Logic**: Implement `RecreateRenderer` to destroy the existing renderer and create a new one.
5. **Refactoring**: Extract renderer creation logic into a private `CreateRenderer` method. This method must be used by both the constructor and `RecreateRenderer`.
6. **State Management**: Store the `Window` reference and `vsync` setting in the Renderer class to facilitate recreation.
7. **Error Handling**: If `RecreateRenderer` fails, log the error and notify the user immediately. Do not implement retry loops; assume a critical failure.
8. **Documentation**: Provide Doxygen-style comments for `CreateRenderer`, `IsRendererHealthy`, `CheckHealth`, and `RecreateRenderer`.
# Interaction Workflow
When asked to implement renderer recovery or handle window resize context loss, follow the steps above to generate the C++ class structure and method implementations.
## Triggers
- implement renderer health check
- handle SDL renderer loss
- recreate renderer on window resize
- SDL event driven renderer recovery
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!