Skip to content

ludus::runtime::shader_development::ReloadSession

Ludus Wiki · API overview · Browse API

Class

Watches one final .lurgrt publication and stages it without restarting gameplay. The headless ludus render-graph watch producer owns source compilation/cooking; this class owns only bounded file observation, asynchronous reads and delivery. All calls use the Renderer owner thread between frames, outside render critical sections. Metadata observation/open may access disk; payload reads run on a dedicated I/O worker. Destruction drains that worker and belongs to orderly shutdown, never the frame path.

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

#include <ludus/runtime/shader_development/reload.hpp>
class ludus::runtime::shader_development::ReloadSession final

Methods

ReloadSession

ludus::runtime::shader_development::ReloadSession::ReloadSession() noexcept
Construct without threads, filesystem or graphics work.

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

~ReloadSession

ludus::runtime::shader_development::ReloadSession::~ReloadSession() noexcept
Drain any outstanding read before releasing its buffer.

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

ReloadSession

ludus::runtime::shader_development::ReloadSession::ReloadSession(const ReloadSession &)=delete
Ownership is unique.

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

operator=

ReloadSession & ludus::runtime::shader_development::ReloadSession::operator=(const ReloadSession &)=delete
Ownership is unique.

Related types: ReloadSession

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

Initialize

graphics::rhi::RasterStatus ludus::runtime::shader_development::ReloadSession::Initialize(foundation::BorrowedView< const char > root, foundation::BorrowedView< const char > path, graphics::renderer::RenderGraphActivation &inoutActivation) noexcept
Bind a trusted output directory, relative package path and initialized Renderer activation.
ParameterDescription
root
Native directory pathname; copied/pinned during the call.
path
Relative .lurgrt file; may be absent until the first successful build.
inoutActivation
Outlives this session. Existing active generation is preserved.

Returns

Ready after watcher/I/O setup; other outcomes leave the session uninitialized.

Related types: foundation::BorrowedView · graphics::renderer::RenderGraphActivation · graphics::rhi::RasterStatus

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

RequestReload

void ludus::runtime::shader_development::ReloadSession::RequestReload() noexcept
Request a re-read even when metadata did not change. A prior read is cancelled/drained and its result discarded. Does not cancel an already accepted Renderer candidate.

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp

Service

ReloadReport ludus::runtime::shader_development::ReloadSession::Service(foundation::uint64 nowNanoseconds) noexcept
Observe one path and collect/stage complete bytes. nowNanoseconds is a nondecreasing host monotonic clock value. Call Renderer Poll/Update afterward, then draw its active graph. Compiler errors leave the final package unchanged and therefore cause no new delivery.

Related types: foundation::uint64 · ReloadReport

Declared in modules/runtime/shader_development/include/ludus/runtime/shader_development/reload.hpp