Skip to content

ludus::graphics::renderer::OverlayRenderer

Ludus Wiki · API overview · Browse API

Class

Renderer composition adapter for generic solid and coverage triangle lists. Single RHI owner thread. Four owned versions and shared RHI transfer/resource quotas impose backpressure; no waits, reshaping or allocation while drawing. Shader source is installed as renderer_overlay.slang. Reset between frames; device loss invalidates GPU versions and requires explicit Initialize/rebuild.

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

#include <ludus/graphics/renderer/overlays.hpp>
class ludus::graphics::renderer::OverlayRenderer final

Methods

OverlayRenderer

ludus::graphics::renderer::OverlayRenderer::OverlayRenderer() noexcept
Construct without allocation or device access.

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

~OverlayRenderer

ludus::graphics::renderer::OverlayRenderer::~OverlayRenderer()
Release logical GPU ownership; RHI retires accepted uses.

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Initialize

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::Initialize(rhi::DeviceHandle device, const rhi::RasterShaderDescription &vertex, const rhi::RasterShaderDescription &fragment) noexcept
Create fixed pipelines, sampler and sequential index buffer between frames. Ready/Pending establishes ownership; failure requires Reset before retry.

Related types: rhi::RasterStatus · rhi::DeviceHandle · rhi::RasterShaderDescription

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Poll

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::Poll() noexcept
Advance asynchronous setup/transfer validation between frames, without waits.

Related types: rhi::RasterStatus

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Reset

void ludus::graphics::renderer::OverlayRenderer::Reset() noexcept
Drop prepared versions and fixed resources, between frames.

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Prepare

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::Prepare(const OverlayList &list, rhi::TextureHandle atlas, PreparedOverlay &output) noexcept
Copy a list and schedule a complete vertex-buffer upload before return. atlas is a ready immutable sampled R8 texture; null selects solid-only white. Captures its exact view/binding version. Null output required; Pending owns a ticket, caller may immediately Clear/reuse the CPU list. Failures preserve output. Retained earlier versions are never overwritten or evicted.

Related types: OverlayList · rhi::RasterStatus · PreparedOverlay · rhi::TextureHandle

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

GetStatus

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::GetStatus(PreparedOverlay overlay) noexcept
Poll uploaded bytes and build the immutable binding between frames.

Related types: rhi::RasterStatus · PreparedOverlay

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Draw

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::Draw(PreparedOverlay overlay, const rhi::RasterPassDescription &description) noexcept
Compose into an already initialized acquired surface or RGBA8 linear target. All passes Load/Store color; no clear occurs. Depth-tested commands Load/Store retained scene depth read-only. Intersects command scissor with pass scissor. Draws in painter order; failures after encoding can leave partial frame work. GetStatus must have returned Ready before opening the frame.

Related types: rhi::RasterStatus · PreparedOverlay · rhi::RasterPassDescription

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp

Release

rhi::RasterStatus ludus::graphics::renderer::OverlayRenderer::Release(PreparedOverlay &overlay) noexcept
Clear owned identity; submitted resources retire only after RHI completion.

Related types: rhi::RasterStatus · PreparedOverlay

Declared in modules/graphics/renderer/include/ludus/graphics/renderer/overlays.hpp