载入中...
搜索中...
未找到
TerrainMaterialAtlas.h
浏览该文件的文档.
1#pragma once
2
7
8namespace eve::graphics {
9class IResourceFactory;
10class Shader;
11class Texture;
12} // namespace eve::graphics
13namespace eve::asset_procgen {
14
17 std::uint32_t width = 0, height = 0;
18 std::vector<std::uint8_t> pixels;
19};
20
26
29 std::vector<TerrainMaterialAtlasGroup> groups;
31};
32
39
42 std::uint32_t maximumLayers = 16;
43 std::uint32_t maximumTileDimension = 4096;
44 std::uint64_t maximumOutputBytes = 1024ull * 1024ull * 1024ull;
46};
47
50 const TerrainMaterialAtlases& atlases, const LoadedTerrainMaterial& material,
51 const TerrainMaterialAtlasLimits& limits = {});
52
63[[nodiscard]] EVENGINE_API_ORCHESTRATION Result<TerrainMaterialAtlases> buildTerrainMaterialAtlases(
64 const asset::EvpackResourceReader& reader, const LoadedTerrainMaterial& material,
65 const asset::EvpackCapabilities& capabilities, const TerrainMaterialAtlasLimits& limits = {});
66
67
75
78 std::vector<TerrainMaterialGpuGroup> groups;
80};
81
92
95 graphics::IResourceFactory& factory, const TerrainMaterialAtlases& atlases);
96
100
104
108
111 const PackedTerrainMaterialGpuSet& gpu);
112
123 const TerrainMaterialGpuSet& gpu,
125 std::size_t groupIndex);
126} // namespace eve::asset_procgen
Backend-neutral canonical EVIMG decoding.
Runtime canonical terrain-layer semantics.
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
Shader * shader
Material * material
const AssetImportLimits & limits
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Texture / mesh / shader / canvas creation and release.
Custom GPU program.
Definition Shader.h:39
GPU texture created via Graphics::newTexture. Owns GPU resources through an opaque backend handle.
Definition Texture.h:18
Result< PackedTerrainMaterialAtlases > packTerrainMaterialAtlases(const TerrainMaterialAtlases &atlases, const LoadedTerrainMaterial &material, const TerrainMaterialAtlasLimits &limits)
Repack grouped CPU atlases and material parameters for one terrain draw.
Result< void > bindTerrainMaterialGroup(graphics::Shader &shader, const TerrainMaterialGpuSet &gpu, const LoadedTerrainMaterial &material, std::size_t groupIndex)
Bind one uploaded group and its four layer values to a terrain shader.
Result< void > bindPackedTerrainMaterial(graphics::Shader &shader, const PackedTerrainMaterialGpuSet &gpu)
Bind a packed terrain set for one draw and publish its feature counts.
Result< PackedTerrainMaterialGpuSet > uploadPackedTerrainMaterialAtlases(graphics::IResourceFactory &factory, const PackedTerrainMaterialAtlases &atlases)
Upload a packed terrain set transactionally.
Result< TerrainMaterialAtlases > buildTerrainMaterialAtlases(const asset::EvpackResourceReader &reader, const LoadedTerrainMaterial &material, const asset::EvpackCapabilities &capabilities, const TerrainMaterialAtlasLimits &limits)
Resolve canonical image references and assemble one 2x2 atlas per control map.
Result< void > releasePackedTerrainMaterialAtlases(graphics::IResourceFactory &factory, PackedTerrainMaterialGpuSet &set)
Release and clear a packed terrain GPU set.
Result< void > releaseTerrainMaterialAtlases(graphics::IResourceFactory &factory, TerrainMaterialGpuSet &set)
Release every texture in a GPU set and clear it even if one backend release fails.
Result< TerrainMaterialGpuSet > uploadTerrainMaterialAtlases(graphics::IResourceFactory &factory, const TerrainMaterialAtlases &atlases)
Upload every atlas transactionally; partial failure releases earlier textures.
卡牌游戏 UI 工具模块:工厂 + 脚本绑定入口。 功能参考 ycarowr/UiCard:扇形手牌布局、抽牌/洗牌、悬浮放大、拖拽到落牌区、 敌方手牌(背面/偷看)、费用不足置灰,以及可实时调节的布局...
Definition Animation.h:25
Bounds applied before allocating decoded image bytes.
Owning capability-selected terrain material candidate.
Single-draw terrain textures covering up to sixteen layers.
Backend-owned texture set for a single draw of up to sixteen layers.
Owning base-level linear RGBA8 image ready for backend upload.
Four-layer atlas group driven by one RGBA control image.
Bounds for deterministic terrain atlas construction.
Complete terrain material image set; up to four groups cover sixteen layers.
std::vector< TerrainMaterialAtlasGroup > groups
Four backend-owned textures for one uploaded terrain group.
Backend-owned terrain textures released together on their graphics thread.
std::vector< TerrainMaterialGpuGroup > groups