LeviLamina
Loading...
Searching...
No Matches
RenderChunkBuilder.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/block/BakedBlockLightType.h"
7#include "mc/client/renderer/chunks/RenderChunkPerformanceTrackingData.h"
8#include "mc/deps/game_refs/WeakRef.h"
9#include "mc/deps/minecraft_renderer/game/RangeIndices.h"
10#include "mc/world/level/chunk/ChunkSourceViewGenerateMode.h"
11#include "mc/world/phys/AABB.h"
12
13// auto generated forward declare list
14// clang-format off
15class Block;
16class BlockPos;
17class BlockSource;
18class ChunkSource;
19class ChunkViewSource;
21class SubChunkPos;
22class Tessellator;
24struct BlockQueueEntry;
25struct BlockTessellator;
31namespace ClientBlockPipeline { struct BlockTessellatorPipeline; }
32namespace ClientBlockPipeline { struct Description; }
33namespace ClientBlockPipeline { struct MaterialRepository; }
34namespace ClientBlockPipeline { struct TessellatorContext; }
35namespace mce { class Mesh; }
36namespace mce { class MeshData; }
37namespace mce::framebuilder { struct FrameLightingModelCapabilities; }
38// clang-format on
39
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ChunkViewSource>> mLocalSource;
45 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTessellator>> mBlockTessellator;
46 ::ll::TypedStorage<1, 1, bool> mAllDark;
47 ::ll::TypedStorage<1, 1, bool> mSkyLit;
48 ::ll::TypedStorage<1, 1, bool> mBlendCanRenderAsOpaque;
49 ::ll::TypedStorage<4, 4, float> mAverageSkyLight;
50 ::ll::TypedStorage<8, 168, ::std::array<::std::vector<::RenderChunkQuadInfo>, 7>> mFaceMetadata;
51 ::ll::TypedStorage<4, 136, ::std::array<::RangeIndices, 17>> mRenderLayerRanges;
52 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mQueues;
53 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mSimpleOpaqueBlockQueue;
54 ::ll::TypedStorage<8, 136, uint64[17]> mQueueIndexCounts;
55 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Tessellator>> mOwnedTessellator;
56 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository>> mMaterialRepository;
57 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::RuntimeLocalLightingConfig const>> mLocalLightingConfig;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlockPipeline::BlockTessellatorPipeline>> mPipelineTessellator;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlockPipeline::Description>> mPipelineDescription;
60 ::ll::TypedStorage<8, 8, ::Tessellator&> mTessellator;
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::mce::Mesh>> mBuiltMesh;
62 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::mce::MeshData>> mMeshData;
63 ::ll::TypedStorage<1, 1, bool> mGUIRendering;
64 ::ll::TypedStorage<4, 24, ::AABB> mBuildBoundingBox;
65 ::ll::TypedStorage<1, 1, bool> mUseNewTessellationPipeline;
66 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IRenderChunkGarbage>> mRenderChunkGarbage;
67 ::ll::TypedStorage<8, 16, ::WeakRef<::RenderChunkCoordinator>> mRenderChunkCoordinator;
68 // NOLINTEND
69
70public:
71 // prevent constructor by default
72 RenderChunkBuilder& operator=(RenderChunkBuilder const&);
73 RenderChunkBuilder(RenderChunkBuilder const&);
74 RenderChunkBuilder();
75
76public:
77 // member functions
78 // NOLINTBEGIN
80 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
81 ::ChunkSource& mainSource,
82 ::Tessellator& tessellator,
84 );
85
87 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
88 ::ChunkSource& mainSource,
89 ::Tessellator& tessellator,
90 ::std::weak_ptr<::IRenderChunkGarbage> garbage
91 );
92
94 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
95 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
96 ::ChunkSource& mainSource,
98 );
99
101
102 MCNAPI void _overrideStaticBlockLighting(::BlockSource& region, ::SubChunkPos const& subChunkPos);
103
104 MCNAPI bool _sortBlocks(
105 ::BlockSource& region,
106 ::RenderChunkGeometry& renderChunkGeometry,
107 bool transparentLeaves,
108 ::AirAndSimpleBlockBits& airAndSimpleBlocks,
110 );
111
113 ::RenderChunkGeometry& renderChunkGeometry,
116 );
117
118 MCNAPI bool _tessellateQueues(
119 ::RenderChunkGeometry& renderChunkGeometry,
120 ::BlockSource& region,
121 ::AirAndSimpleBlockBits& airAndSimpleBlocks,
123 );
124
125 MCNAPI void _updateFacesMetadata();
126
127 MCNAPI void build(
128 ::RenderChunkGeometry& renderChunkGeometry,
129 bool transparentLeaves,
130 ::BakedBlockLightType lightingType,
131 bool forExport,
132 ::mce::framebuilder::FrameLightingModelCapabilities const& lightingModelCapabilities
133 );
134
135 MCNAPI void prepareWorldData(::BlockPos const& pos, ::ChunkSourceViewGenerateMode viewMoveMode);
136
138 // NOLINTEND
139
140public:
141 // static functions
142 // NOLINTBEGIN
144 ::Block const& block,
145 uint64 blockBitsetIndex,
146 ::AirAndSimpleBlockBits& airAndSimpleBlocks
147 );
148 // NOLINTEND
149
150public:
151 // constructor thunks
152 // NOLINTBEGIN
153 MCNAPI void* $ctor(
154 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
155 ::ChunkSource& mainSource,
156 ::Tessellator& tessellator,
158 );
159
160 MCNAPI void* $ctor(
161 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
162 ::ChunkSource& mainSource,
163 ::Tessellator& tessellator,
164 ::std::weak_ptr<::IRenderChunkGarbage> garbage
165 );
166
167 MCNAPI void* $ctor(
168 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
169 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
170 ::ChunkSource& mainSource,
172 );
173 // NOLINTEND
174
175public:
176 // destructor thunk
177 // NOLINTBEGIN
178 MCNAPI void $dtor();
179 // NOLINTEND
180};
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition Block.h:43
Definition ChunkSource.h:37
Definition ChunkViewSource.h:22
Definition MinecraftGameplayGraphicsResources.h:5
Definition RenderChunkBuilder.h:5
MCAPI bool _tessellateQueues(::RenderChunkGeometry &renderChunkGeometry, ::BlockSource &region, ::AirAndSimpleBlockBits &airAndSimpleBlocks, ::RenderChunkPerformanceTrackingData::RenderChunkBuildDetails &renderChunkBuildDetails)
MCAPI void * $ctor(::MinecraftGameplayGraphicsResources &minecraftGameplayGraphicsResources, ::ClientBlockPipeline::TessellatorContext &pipelineTessellatorContext, ::ChunkSource &mainSource, ::WeakRef<::RenderChunkCoordinator > coordinator)
MCAPI void * $ctor(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::std::weak_ptr<::IRenderChunkGarbage > garbage)
MCAPI ~RenderChunkBuilder()
MCAPI void prepareWorldData(::BlockPos const &pos, ::ChunkSourceViewGenerateMode viewMoveMode)
MCAPI void _buildRanges(::RenderChunkPerformanceTrackingData::RenderChunkBuildDetails &renderChunkBuildDetails)
MCAPI bool _sortBlocks(::BlockSource &region, ::RenderChunkGeometry &renderChunkGeometry, bool transparentLeaves, ::AirAndSimpleBlockBits &airAndSimpleBlocks, ::RenderChunkPerformanceTrackingData::RenderChunkBuildDetails &renderChunkBuildDetails)
static MCAPI void checkNeighborBlockIsAirOrSimpleBlock(::Block const &block, uint64 blockBitsetIndex, ::AirAndSimpleBlockBits &airAndSimpleBlocks)
MCAPI bool _tessellateNewPipeline(::RenderChunkGeometry &renderChunkGeometry, ::BlockSource &, ::RenderChunkPerformanceTrackingData::RenderChunkBuildDetails &renderChunkBuildDetails)
MCAPI void _updateFacesMetadata()
MCAPI void build(::RenderChunkGeometry &renderChunkGeometry, bool transparentLeaves, ::BakedBlockLightType lightingType, bool forExport, ::mce::framebuilder::FrameLightingModelCapabilities const &lightingModelCapabilities)
MCAPI RenderChunkBuilder(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::std::weak_ptr<::IRenderChunkGarbage > garbage)
MCAPI void * $ctor(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::WeakRef<::RenderChunkCoordinator > coordinator)
MCAPI void _overrideStaticBlockLighting(::BlockSource &region, ::SubChunkPos const &subChunkPos)
MCAPI RenderChunkBuilder(::MinecraftGameplayGraphicsResources &minecraftGameplayGraphicsResources, ::ClientBlockPipeline::TessellatorContext &pipelineTessellatorContext, ::ChunkSource &mainSource, ::WeakRef<::RenderChunkCoordinator > coordinator)
MCAPI void $dtor()
MCAPI RenderChunkBuilder(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::WeakRef<::RenderChunkCoordinator > coordinator)
Definition SubChunkPos.h:5
Definition Tessellator.h:5
Definition WeakRef.h:8
Definition MeshData.h:10
Definition Mesh.h:7
Definition AirAndSimpleBlockBits.h:5
Definition BlockQueueEntry.h:5
Definition BlockTessellator.h:5
Definition BlockTessellatorPipeline.h:7
Definition Description.h:7
Definition MaterialRepository.h:7
Definition TessellatorContext.h:7
Definition IRenderChunkGarbage.h:5
Definition RenderChunkCoordinator.h:5
Definition RenderChunkGeometry.h:5
Definition RenderChunkPerformanceTrackingData.h:20
Definition RenderChunkQuadInfo.h:5
Definition RuntimeLocalLightingConfig.h:5
Definition FrameLightingModelCapabilities.h:7