Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Sdl Renderer Health Check And Recreation?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-sdl-renderer-health-check-and-recreation)
---
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