Rendering Engine 0.2.0
Modular Graphics Rendering Engine | v0.2.0
Loading...
Searching...
No Matches
i_renderer_observer.hpp
Go to the documentation of this file.
1// This file is part of the Rendering Engine project.
2// Author: Alexander Obzherin <alexanderobzherin@gmail.com>
3// Copyright (c) 2025 Alexander Obzherin
4// Distributed under the terms of the zlib License. See LICENSE.md for details.
5
6#pragma once
7
8namespace rendering_engine
9{
10
11/**
12 * @brief Interface for observing renderer resource lifecycle events.
13 *
14 * Classes implementing this interface can be registered as observers with the renderer.
15 * The renderer will call these methods when GPU resources must be released (e.g., device loss, swapchain recreation)
16 * and when resources must be rebuilt (e.g., after device reset or window resize).
17 *
18 * This enables resource containers (such as caches or per-object resources) to correctly manage
19 * device-dependent memory and handles, ensuring a robust and backend-agnostic rendering workflow.
20 */
22{
23public:
24 /**
25 * @brief Renderer callback: release all GPU resources (used during device loss/reset).
26 *
27 * This method will be called before any device or swapchain is destroyed,
28 * allowing the observer to safely release all handles
29 * and deallocate any GPU memory.
30 */
31 virtual void OnRenderResourcesRelease() = 0;
32
33 /**
34 * @brief Renderer callback: re-upload or recreate all GPU resources (used after device reset/rebuild).
35 *
36 * This method will be called after the device or swapchain is recreated,
37 * allowing the observer to re-upload or recreate all necessary resources for rendering.
38 */
39 virtual void OnRenderResourcesRebuild() = 0;
40
41 /**
42 * @brief Virtual destructor.
43 */
44 virtual ~IRendererObserver() = default;
45};
46
47} // namespace rendering_engine
Interface for observing renderer resource lifecycle events.
virtual ~IRendererObserver()=default
Virtual destructor.
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).