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/deps/game_refs/WeakRef.h"
9#include "mc/deps/minecraft_renderer/game/RangeIndices.h"
10#include "mc/world/phys/AABB.h"
11
12// auto generated forward declare list
13// clang-format off
14class Block;
16class ChunkSource;
17class ChunkViewSource;
23class Tessellator;
25struct BlockQueueEntry;
27namespace ClientBlockPipeline { class BlockTessellatorPipeline; }
28namespace ClientBlockPipeline { class Description; }
29namespace ClientBlockPipeline { class MaterialRepository; }
30namespace ClientBlockPipeline { class TessellatorContext; }
31namespace mce { class Mesh; }
32namespace mce { class MeshData; }
33namespace mce::framebuilder { struct FrameLightingModelCapabilities; }
34// clang-format on
35
37public:
38 // member variables
39 // NOLINTBEGIN
40 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ChunkViewSource>> mLocalSource;
41 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTessellator>> mBlockTessellator;
42 ::ll::TypedStorage<1, 1, bool> mAllDark;
43 ::ll::TypedStorage<1, 1, bool> mSkyLit;
44 ::ll::TypedStorage<1, 1, bool> mBlendCanRenderAsOpaque;
45 ::ll::TypedStorage<4, 4, float> mAverageSkyLight;
46 ::ll::TypedStorage<8, 168, ::std::array<::std::vector<::RenderChunkQuadInfo>, 7>> mFaceMetadata;
47 ::ll::TypedStorage<4, 176, ::std::array<::RangeIndices, 22>> mRenderLayerRanges;
48 ::ll::TypedStorage<8, 64, ::RenderChunkMetrics::MetricData> mBuilderMetricData;
49 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mQueues;
50 ::ll::TypedStorage<8, 8, ::std::vector<::BlockQueueEntry>*> mSimpleOpaqueBlockQueue;
51 ::ll::TypedStorage<8, 176, uint64[22]> mQueueIndexCounts;
52 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Tessellator>> mOwnedTessellator;
53 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository>> mMaterialRepository;
54 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::RuntimeLocalLightingConfig const>> mLocalLightingConfig;
55 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlockPipeline::BlockTessellatorPipeline>> mPipelineTessellator;
56 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ClientBlockPipeline::Description>> mPipelineDescription;
57 ::ll::TypedStorage<8, 8, ::Tessellator&> mTessellator;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::mce::Mesh>> mBuiltMesh;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::mce::MeshData>> mMeshData;
60 ::ll::TypedStorage<1, 1, bool> mGUIRendering;
61 ::ll::TypedStorage<1, 1, bool> mUseNewTessellationPipeline;
62 ::ll::TypedStorage<1, 1, bool> mTextureShiftsEnabled;
63 ::ll::TypedStorage<4, 24, ::AABB> mBuildBoundingBox;
64 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::IRenderChunkGarbage>> mRenderChunkGarbage;
65 ::ll::TypedStorage<8, 16, ::WeakRef<::RenderChunkCoordinator>> mRenderChunkCoordinator;
66 // NOLINTEND
67
68public:
69 // prevent constructor by default
70 RenderChunkBuilder& operator=(RenderChunkBuilder const&);
71 RenderChunkBuilder(RenderChunkBuilder const&);
72 RenderChunkBuilder();
73
74public:
75 // member functions
76 // NOLINTBEGIN
77 MCAPI RenderChunkBuilder(
78 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
79 ::ChunkSource& mainSource,
80 ::Tessellator& tessellator,
81 ::WeakRef<::RenderChunkCoordinator> coordinator
82 );
83
84 MCAPI RenderChunkBuilder(
85 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
86 ::ChunkSource& mainSource,
87 ::Tessellator& tessellator,
88 ::std::weak_ptr<::IRenderChunkGarbage> garbage
89 );
90
91 MCAPI RenderChunkBuilder(
92 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
93 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
94 ::ChunkSource& mainSource,
95 ::WeakRef<::RenderChunkCoordinator> coordinator
96 );
97
98 MCAPI void build(
99 ::RenderChunkGeometry& renderChunkGeometry,
100 bool transparentLeaves,
101 ::BakedBlockLightType lightingType,
102 bool forExport,
103 ::mce::framebuilder::FrameLightingModelCapabilities const& lightingModelCapabilities
104 );
105
106 MCAPI ~RenderChunkBuilder();
107 // NOLINTEND
108
109public:
110 // static functions
111 // NOLINTBEGIN
112 MCAPI static void checkNeighborBlockIsAirOrSimpleBlock(
113 ::Block const& block,
114 uint64 const blockBitsetIndex,
115 ::AirAndSimpleBlockBits& airAndSimpleBlocks
116 );
117 // NOLINTEND
118
119public:
120 // constructor thunks
121 // NOLINTBEGIN
122 MCAPI void* $ctor(
123 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
124 ::ChunkSource& mainSource,
125 ::Tessellator& tessellator,
126 ::WeakRef<::RenderChunkCoordinator> coordinator
127 );
128
129 MCAPI void* $ctor(
130 ::std::shared_ptr<::ClientBlockPipeline::MaterialRepository> const& materialRepository,
131 ::ChunkSource& mainSource,
132 ::Tessellator& tessellator,
133 ::std::weak_ptr<::IRenderChunkGarbage> garbage
134 );
135
136 MCAPI void* $ctor(
137 ::MinecraftGameplayGraphicsResources& minecraftGameplayGraphicsResources,
138 ::ClientBlockPipeline::TessellatorContext& pipelineTessellatorContext,
139 ::ChunkSource& mainSource,
140 ::WeakRef<::RenderChunkCoordinator> coordinator
141 );
142 // NOLINTEND
143
144public:
145 // destructor thunk
146 // NOLINTBEGIN
147 MCAPI void $dtor();
148 // NOLINTEND
149};
Definition BlockTessellator.h:5
Definition Block.h:41
Definition ChunkSource.h:36
Definition ChunkViewSource.h:22
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
Definition RenderChunkCoordinator.h:5
Definition RenderChunkGeometry.h:5
Definition RuntimeLocalLightingConfig.h:5
Definition Tessellator.h:5
Definition MeshData.h:7
Definition Mesh.h:7
Definition AirAndSimpleBlockBits.h:5
Definition BlockQueueEntry.h:5
Definition RenderChunkQuadInfo.h:5
Definition FrameLightingModelCapabilities.h:7