UpdateContext.ixx File
Per-frame context passed to systems during game loop updates. More...
Included Headers
#include <span>
#include <optional>
#include <helios.engine.ecs.View>
#include <helios.engine.ecs.GameObject>
#include <helios.engine.ecs.EntityResolver>
#include <helios.engine.ecs.EntityHandle>
#include <helios.engine.runtime.world.ResourceRegistry>
#include <helios.engine.runtime.messaging.event.GameLoopEventBus>
#include <helios.engine.runtime.world.Level>
#include <helios.rendering.ViewportSnapshot>
#include <helios.input.InputSnapshot>
Namespaces Index
| namespace | helios |
| namespace | engine |
|
Main engine module aggregating core infrastructure and game systems. More... | |
| namespace | runtime |
|
Runtime infrastructure for game execution and lifecycle orchestration. More... | |
| namespace | messaging |
|
Communication infrastructure for commands and events. More... | |
| namespace | command |
|
Compile-time typed command buffering and handler routing. More... | |
| namespace | world |
|
World state management, resource registry, and per-frame update context. More... | |
Classes Index
| class | UpdateContext |
|
Per-frame context passed to systems during game loop updates. More... | |
Description
Per-frame context passed to systems during game loop updates.
File Listing
The file content with the documentation metadata removed is:
26export namespace helios::engine::runtime::messaging::command {
27 class EngineCommandBuffer;
30using namespace helios::engine::runtime::messaging::command;
32export namespace helios::engine::runtime::world {
34 class Session;
72 class UpdateContext {
88 const helios::input::InputSnapshot& inputSnapshot_;
93 helios::engine::runtime::world::Session& session_;
106 const helios::engine::runtime::messaging::event::GameLoopEventBus::ReadSource phaseEventSource_;
133 const helios::engine::runtime::messaging::event::GameLoopEventBus::ReadSource frameEventSource_;
143 helios::engine::runtime::world::ResourceRegistry& resourceRegistry_;
148 helios::engine::ecs::EntityResolver entityResolver_;
153 const Level* level_;
174 helios::engine::runtime::world::ResourceRegistry& resourceRegistry,
177 const float deltaTime,
178 const float totalTime,
179 helios::engine::runtime::messaging::event::GameLoopEventBus& phaseEventBus,
180 helios::engine::runtime::messaging::event::GameLoopEventBus& passEventBus,
181 helios::engine::runtime::messaging::event::GameLoopEventBus& frameEventBus,
182 const helios::input::InputSnapshot& inputSnapshot,
183 std::span<const helios::rendering::ViewportSnapshot> viewportSnapshots,
187 entityResolver_(entityResolver),
188 session_(session),
189 deltaTime_(deltaTime),
190 totalTime_(totalTime),
197 inputSnapshot_(inputSnapshot),
198 viewportSnapshots_(viewportSnapshots),
199 level_(level)
209 [[nodiscard]] std::span<const helios::rendering::ViewportSnapshot> viewportSnapshots() const noexcept {
237 [[nodiscard]] const helios::input::InputSnapshot& inputSnapshot() const noexcept {
251 [[nodiscard]] std::optional<helios::engine::ecs::GameObject> find(helios::engine::ecs::EntityHandle handle) const noexcept {
261 [[nodiscard]] helios::engine::ecs::EntityResolver& entityResolver() noexcept {
287 void queueCommand(Args&&...args) const noexcept {
288 resourceRegistry_.tryGet<EngineCommandBuffer>()->add<T>(std::forward<Args>(args)...);
296 [[nodiscard]] helios::engine::runtime::world::Session& session() const noexcept {
440 return helios::engine::ecs::View<Components...>(entityResolver_.em);
448 return helios::engine::ecs::View<const Components...>(entityResolver_.em);
Generated via doxygen2docusaurus 2.0.0 by Doxygen 1.15.0.