![]() |
Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
|
Interface for observing renderer resource lifecycle events. More...
#include <i_renderer_observer.hpp>
Inherited by rendering_engine::MaterialCache, rendering_engine::ModelCache, rendering_engine::TextureCache, and rendering_engine::VulkanRenderResources.
Public Member Functions | |
| virtual void | OnRenderResourcesRelease ()=0 |
| Renderer callback: release all GPU resources (used during device loss/reset). | |
| virtual void | OnRenderResourcesRebuild ()=0 |
| Renderer callback: re-upload or recreate all GPU resources (used after device reset/rebuild). | |
| virtual | ~IRendererObserver ()=default |
| Virtual destructor. | |
Interface for observing renderer resource lifecycle events.
Classes implementing this interface can be registered as observers with the renderer. The renderer will call these methods when GPU resources must be released (e.g., device loss, swapchain recreation) and when resources must be rebuilt (e.g., after device reset or window resize).
This enables resource containers (such as caches or per-object resources) to correctly manage device-dependent memory and handles, ensuring a robust and backend-agnostic rendering workflow.
Definition at line 21 of file i_renderer_observer.hpp.
|
virtualdefault |
Virtual destructor.
|
pure virtual |
Renderer callback: re-upload or recreate all GPU resources (used after device reset/rebuild).
This method will be called after the device or swapchain is recreated, allowing the observer to re-upload or recreate all necessary resources for rendering.
Implemented in rendering_engine::MaterialCache, rendering_engine::ModelCache, rendering_engine::TextureCache, and rendering_engine::VulkanRenderResources.
|
pure virtual |
Renderer callback: release all GPU resources (used during device loss/reset).
This method will be called before any device or swapchain is destroyed, allowing the observer to safely release all handles and deallocate any GPU memory.
Implemented in rendering_engine::MaterialCache, rendering_engine::ModelCache, rendering_engine::TextureCache, and rendering_engine::VulkanRenderResources.