Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
SequenceRenderData.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "MeshRuntime.hpp"
4#include "SequenceRuntime.hpp"
5
6#include <expected>
7#include <memory>
8#include <vector>
9
10namespace monopoly::sequence
11{
13
21
23 {
27 std::uint16_t priority{};
28 std::int32_t clock{};
30 std::shared_ptr<const data::MeshRuntimeAsset> asset;
32 std::optional<SequenceBounds3D> bounds;
33 std::shared_ptr<const data::MeshRenderData> renderData;
34 // Kept separate from the leaf priority used for presentation ordering.
35 std::uint16_t rootSequencePriority{};
36 };
37
38 // Resolves the current CPU mesh intent transactionally. No SDL/GPU/render
39 // slot object is created here; failed mesh resolution publishes nothing.
40 [[nodiscard]] std::expected<std::vector<SequenceMeshRenderItem>,
41 SequenceRenderDataError> collectSequenceMeshRenderData(
42 const SequenceRuntime& runtime, data::MeshRuntimeCache& meshes);
43}
unsigned index
std::uint32_t DataId
Definition DataBanks.hpp:10
std::expected< std::vector< SequenceMeshRenderItem >, SequenceRenderDataError > collectSequenceMeshRenderData(const SequenceRuntime &runtime, data::MeshRuntimeCache &meshes)
std::uint64_t SequenceNodeId
std::optional< SequenceBounds3D > bounds
std::shared_ptr< const data::MeshRuntimeAsset > asset
std::shared_ptr< const data::MeshRenderData > renderData