Skip to content
LeviMC
English
AutoLightDark
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/render_chunk_metrics/MetricData.h"
8#include "mc/client/renderer/chunks/render_chunk_vertex_streaming/PackedRenderChunkLayerGroupBuffers.h"
9#include "mc/deps/core/utility/NonOwnerPointer.h"
10#include "mc/deps/game_refs/WeakRef.h"
11#include "mc/deps/minecraft_renderer/game/RangeIndices.h"
12#include "mc/world/phys/AABB.h"
13
14// auto generated forward declare list
15// clang-format off
16class Block;
18class ChunkSource;
19class ChunkViewSource;
25class Tessellator;
27struct BlockQueueEntry;
29namespace ClientBlockPipeline { class BlockTessellatorPipeline; }
30namespace ClientBlockPipeline { class Description; }
31namespace ClientBlockPipeline { class MaterialRepository; }
32namespace ClientBlockPipeline { class TessellatorContext; }
33namespace RenderChunkVertexStreaming { class RenderChunkVertexStreamPlanRegistry; }
34namespace mce { class Mesh; }
35namespace mce { class MeshData; }
36namespace mce::framebuilder { struct FrameLightingModelCapabilities; }
37// clang-format on
38
40public:
41 // member variables
42 // NOLINTBEGIN
43 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ChunkViewSource>> mLocalSource;
44 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTessellator>> mBlockTessellator;
45 ::ll::TypedStorage<1, 1, bool> mAllDark;
46 ::ll::TypedStorage<1, 1, bool> mSkyLit;
47 ::ll::TypedStorage<1, 1, bool> mBlendCanRenderAsOpaque;
48 ::ll::TypedStorage<4, 4, float> mAverageSkyLight;
49 ::ll::TypedStorage<8, 168, ::std::array<::std::vector<::RenderChunkQuadInfo>, 7>> mFaceMetadata;
50 ::ll::TypedStorage<4, 176, ::std::array<::RangeIndices, 22>> mRenderLayerRanges;
51 ::ll::TypedStorage<8, 64, ::RenderChunkMetrics::MetricData> mBuilderMetricData;
52 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mQueues;
53 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mSimpleOpaqueBlockQueue;
54 ::ll::TypedStorage<8, 176, uint64[22]> 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<8, 352, ::std::optional<::RenderChunkVertexStreaming::PackedRenderChunkLayerGroupBuffers>>
64 mPackedRenderChunkLayerGroupBuffers;
65 ::ll::TypedStorage<1, 1, bool> mGUIRendering;
66 ::ll::TypedStorage<1, 1, bool> mUseNewTessellationPipeline;
67 ::ll::TypedStorage<1, 1, bool> mTextureShiftsEnabled;
68 ::ll::TypedStorage<4, 24, ::AABB> mBuildBoundingBox;
69 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IRenderChunkGarbage>> mRenderChunkGarbage;
70 ::ll::TypedStorage<8, 16, ::WeakRef<::RenderChunkCoordinator>> mRenderChunkCoordinator;
71 ::ll::TypedStorage<
72 8,
73 24,
74 ::Bedrock::NonOwnerPointer<::RenderChunkVertexStreaming::RenderChunkVertexStreamPlanRegistry const>>
75 mRenderChunkVertexStreamPlanRegistry;
76 // NOLINTEND
77
78public:
79 // prevent constructor by default
80 RenderChunkBuilder& operator=(RenderChunkBuilder const&);
81 RenderChunkBuilder(RenderChunkBuilder const&);
82 RenderChunkBuilder();
83
84public:
85 // member functions
86 // NOLINTBEGIN
88 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
89 ::ChunkSource& mainSource,
90 ::Tessellator& tessellator,
92 );
93
95 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
96 ::ChunkSource& mainSource,
97 ::Tessellator& tessellator,
98 ::std::weak_ptr<::IRenderChunkGarbage> garbage
99 );
100
101 MCAPI RenderChunkBuilder(
102 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
103 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
104 ::ChunkSource& mainSource,
106 ::RenderChunkVertexStreaming::RenderChunkVertexStreamPlanRegistry const& renderChunkVertexStreamPlanRegistry
107 );
108
109 MCNAPI ::RenderChunkVertexStreaming::PackedRenderChunkLayerGroupBuffers acquirePackedRenderChunkLayerGroupBuffers();
110
111 MCAPI void build(
112 ::RenderChunkGeometry& renderChunkGeometry,
113 bool transparentLeaves,
114 ::BakedBlockLightType lightingType,
115 bool forExport,
116 ::mce::framebuilder::FrameLightingModelCapabilities const& lightingModelCapabilities
117 );
118
119 MCAPI ~RenderChunkBuilder();
120 // NOLINTEND
121
122public:
123 // static functions
124 // NOLINTBEGIN
126 ::Block const& block,
127 uint64 const blockBitsetIndex,
128 ::AirAndSimpleBlockBits& airAndSimpleBlocks
129 );
130 // NOLINTEND
131
132public:
133 // constructor thunks
134 // NOLINTBEGIN
135 MCNAPI void* $ctor(
136 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
137 ::ChunkSource& mainSource,
138 ::Tessellator& tessellator,
140 );
141
142 MCNAPI void* $ctor(
143 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
144 ::ChunkSource& mainSource,
145 ::Tessellator& tessellator,
146 ::std::weak_ptr<::IRenderChunkGarbage> garbage
147 );
148
149 MCAPI void* $ctor(
150 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
151 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
152 ::ChunkSource& mainSource,
154 ::RenderChunkVertexStreaming::RenderChunkVertexStreamPlanRegistry const& renderChunkVertexStreamPlanRegistry
155 );
156 // NOLINTEND
157
158public:
159 // destructor thunk
160 // NOLINTBEGIN
161 MCAPI void $dtor();
162 // NOLINTEND
163};
Definition BlockTessellator.h:5
Definition Block.h:42
Definition ChunkSource.h:37
Definition ChunkViewSource.h:23
Definition BlockTessellatorPipeline.h:7
Definition Description.h:7
Definition MaterialRepository.h:7
Definition TessellatorContext.h:7
Definition IRenderChunkGarbage.h:5
Definition MinecraftGameplayGraphicsResources.h:5
Definition RenderChunkBuilder.h:5
MCAPI::RenderChunkVertexStreaming::PackedRenderChunkLayerGroupBuffers acquirePackedRenderChunkLayerGroupBuffers()
MCAPI void * $ctor(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::std::weak_ptr<::IRenderChunkGarbage > garbage)
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 RenderChunkBuilder(::std::shared_ptr<::ClientBlockPipeline::MaterialRepository > const &materialRepository, ::ChunkSource &mainSource, ::Tessellator &tessellator, ::WeakRef<::RenderChunkCoordinator > coordinator)
static MCAPI void checkNeighborBlockIsAirOrSimpleBlock(::Block const &block, uint64 const blockBitsetIndex, ::AirAndSimpleBlockBits &airAndSimpleBlocks)
Definition RenderChunkCoordinator.h:5
Definition RenderChunkGeometry.h:5
Definition RenderChunkVertexStreamPlanRegistry.h:7
Definition RuntimeLocalLightingConfig.h:5
Definition Tessellator.h:5
Definition WeakRef.h:8
Definition MeshData.h:7
Definition Mesh.h:7
Definition AirAndSimpleBlockBits.h:5
Definition BlockQueueEntry.h:5
Definition RenderChunkQuadInfo.h:5
Definition FrameLightingModelCapabilities.h:7