Check a page for accessibility
Review supplied markup or descriptions for practical accessibility issues and fixes.
Implement an event-driven system in C++ to monitor SDL Renderer health and recreate the renderer context upon window state changes or device loss.
--- 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--- 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
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.