Monopoly — Portage moderne 0.1.0
Portage moderne C/C++23 du Monopoly de 1999
Loading...
Searching...
No Matches
World3DGPUScene.hpp
Go to the documentation of this file.
1#pragma once
2
5
6#include <cstdint>
7#include <expected>
8#include <optional>
9#include <vector>
10
11namespace monopoly::engine
12{
14 {
17 std::uint16_t priority{};
18 std::int32_t clock{};
24 std::uint32_t firstIndex{};
25 std::uint32_t indexCount{};
28 std::optional<data::MeshTextureRegion> texture;
29 std::array<SDL_GPUTextureSamplerBinding, 5> modernTextures{};
30 };
31
32 // Retire stopped mesh assets even when the interface has no 3D view.
33 // Active instances remain owners regardless of their current visibility.
34 void pruneWorld3DGPUScene(const SequenceWorld3DSlot& slot, MeshGPUCache& cache);
35
36 // Final portable scene-data boundary before the SDL_GPU graphics pipeline.
37 // It preserves sequencer traversal and per-mesh batch order. Embedded HMD
38 // texture pixels are already uploaded by MeshGPUCache at this boundary.
39 [[nodiscard]] std::expected<std::vector<World3DGPUIndexedBatch>, MeshGPUError>
40 buildWorld3DGPUScene(const SequenceWorld3DSlot& slot, MeshGPUCache& cache);
41}
PlayerNumber slot
unsigned index
std::uint32_t DataId
Definition DataBanks.hpp:10
std::expected< std::vector< World3DGPUIndexedBatch >, MeshGPUError > buildWorld3DGPUScene(const SequenceWorld3DSlot &slot, MeshGPUCache &cache)
void pruneWorld3DGPUScene(const SequenceWorld3DSlot &slot, MeshGPUCache &cache)
std::uint64_t SequenceNodeId
std::optional< data::MeshTextureRegion > texture
std::array< SDL_GPUTextureSamplerBinding, 5 > modernTextures