6#include "core/system.h"
7#include "system/render/render_backend.h"
8#include "system/render/render_settings.h"
9#include "system/render/render_view.h"
11namespace Vkm::Engine {
19class RenderSystem :
public System {
21 RenderSystem() =
default;
22 ~RenderSystem()
override =
default;
24 RenderSystem(
const RenderSystem& other) =
delete;
25 RenderSystem& operator=(
const RenderSystem& other) =
delete;
27 RenderSystem(RenderSystem && other) =
delete;
28 RenderSystem& operator=(RenderSystem && other) =
delete;
75 uint32_t
maxAnisotropy()
const {
return m_backend ? m_backend->maxAnisotropy() : 1; }
90 void writeScreenshot(
const std::string& path);
100 std::unique_ptr<RenderBackend> m_backend;
104 bool m_releaseUploadedPixels =
false;
The frame's seam between the engine and the graphics API.
Definition render_backend.h:35
void releaseUploadedPixels(bool release)
Free each texture's CPU pixels once the backend holds them.
Definition render_system.h:61
RenderBackend * backend() const
The active backend, or nullptr before setBackend().
Definition render_system.h:82
void setBackend(std::unique_ptr< RenderBackend > backend, WindowManager &window)
Bring a backend up against the window and draw through it.
void update(FrameContext &ctx) override
Run one frame of rendering.
BackendInfo backendInfo() const
Identity of the active backend, for status displays.
Definition render_system.h:68
uint32_t maxAnisotropy() const
The active backend's anisotropic-filtering ceiling.
Definition render_system.h:75
Open type-erased resource registry with typed handles and generational lifetimes.
Definition resource_manager.h:46
Owns the application's window, GL context, input, and frame limiting.
Definition window_manager.h:61
Human-readable backend identity, for a status display.
Definition render_backend.h:23
Per-frame state bundle passed to every system.
Definition system.h:55
The backend-agnostic view of the frame handed to RenderBackend::render.
Definition render_view.h:34