LeviLamina
Loading...
Searching...
No Matches
LevelRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/renderer/debug/DebugRenderer.h"
7#include "mc/client/renderer/game/LevelBuilder.h"
8#include "mc/client/renderer/game/ShadowCascadeState.h"
9#include "mc/client/renderer/scripting/Renderer.h"
10#include "mc/deps/application/AppPlatformListener.h"
11#include "mc/deps/application/LowMemorySeverity.h"
12#include "mc/deps/core/math/Color.h"
13#include "mc/deps/core/utility/AutomaticID.h"
14#include "mc/deps/core/utility/NonOwnerPointer.h"
15#include "mc/deps/ecs/WeakEntityRef.h"
16#include "mc/deps/game_refs/OwnerPtr.h"
17#include "mc/deps/game_refs/StackRefResult.h"
18#include "mc/deps/minecraft_renderer/renderer/TexturePtr.h"
19#include "mc/world/level/BlockChangedEventTarget.h"
20#include "mc/world/level/LevelListener.h"
21#include "mc/world/level/Tick.h"
22
23// auto generated forward declare list
24// clang-format off
25class Actor;
26class Block;
28class BlockPos;
29class BlockSource;
32class Dimension;
33class GameRenderer;
35class GeometryGroup;
36class IClientInstance;
41class Options;
42class ParticleEngine;
45class ScreenContext;
47class TaskGroup;
48class Tessellator;
49class TextureAtlas;
55struct PlayerRenderView;
57struct SoundMapping;
58namespace PointLighting { struct PointLightCoordinator; }
59namespace cg { class ImageBuffer; }
60namespace mce { class Mesh; }
61namespace mce { class TextureGroup; }
62// clang-format on
63
65public:
66 // member variables
67 // NOLINTBEGIN
68 ::ll::TypedStorage<8, 64, ::std::unordered_map<::DimensionType, ::OwnerPtr<::RenderChunkCoordinator>>>
69 mRenderChunkCoordinators;
70 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::PointLighting::PointLightCoordinator>> mPointLightCoordinator;
71 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::TextureGroup>> mTextureGroup;
72 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mShadowCylinder;
73 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mShadowOverlayCube;
74 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mShadowDisc;
75 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mSkyMesh;
76 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mStarsMesh;
77 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mEndSkyMesh;
78 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mSunMesh;
79 ::ll::TypedStorage<8, 128, ::std::shared_ptr<::mce::Mesh>[8]> mMoonMesh;
80 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::Mesh>> mNameplateBackgroundMesh;
81 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mAtlasTexture;
82 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mBrightnessTex;
83 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mSunTex;
84 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mSunTexVibrantVisuals;
85 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mMoonTex;
86 ::ll::TypedStorage<8, 32, ::mce::TexturePtr> mEndSkyTex;
87 ::ll::TypedStorage<8, 24, ::std::vector<::mce::TexturePtr>> mCrackFrames;
88 ::ll::TypedStorage<1, 1, ::DebugRenderer> mDebugRenderer;
89 ::ll::TypedStorage<8, 168, ::Scripting::RenderHelper::Renderer> mScriptDebugRenderer;
90 ::ll::TypedStorage<8, 8, ::Tick> mTicks;
91 ::ll::TypedStorage<8, 8, ::BlockActorRenderDispatcher&> mBlockEntityRenderDispatcher;
92 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BlockTessellator>> mLocalRenderer;
93 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ParticleEngine>> mParticleEngine;
94 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::ParticleSystemEngine>> mParticleSystemEngine;
95 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GeometryEditorGui>> mGeometryEditorGui;
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mTaskGroup;
97 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::TaskGroup>> mSyncTaskGroup;
98 ::ll::TypedStorage<8, 8, ::GameRenderer&> mGameRenderer;
99 ::ll::TypedStorage<8, 8, ::MultiPlayerLevel&> mLevel;
100 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Options>> mOptions;
101 ::ll::TypedStorage<8, 8, ::IClientInstance&> mClientInstance;
102 ::ll::TypedStorage<8, 24, ::WeakEntityRef> mLocalUser;
103 ::ll::TypedStorage<8, 64, ::std::function<void()>> mReleaseParticleSystemInterfaceProxyCallback;
104 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LevelRendererPlayer>> mLevelRendererPlayer;
105 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LevelRendererShadowCamera>> mLevelRendererShadowCamera;
106 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LevelRendererShadowCamera>> mLevelRendererCloudShadowCamera;
107 ::ll::TypedStorage<4, 4, ::ShadowCascadeState> mShadowCascadeState;
108 ::ll::TypedStorage<8, 1464, ::LevelBuilder> mLevelBuilder;
109 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LevelRendererProxy>> mProxy;
110 ::ll::TypedStorage<4, 16, ::mce::Color> mClearBufferColor;
111 ::ll::TypedStorage<8, 16, ::std::weak_ptr<::PlayerRenderView>> mPlayerView;
112 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DataDrivenRendererV2RequiredData>> mDataDrivenRendererV2RequiredData;
113 // NOLINTEND
114
115public:
116 // prevent constructor by default
117 LevelRenderer& operator=(LevelRenderer const&);
118 LevelRenderer(LevelRenderer const&);
119 LevelRenderer();
120
121public:
122 // virtual functions
123 // NOLINTBEGIN
124 virtual ~LevelRenderer() /*override*/;
125
126 virtual void onAppSuspended() /*override*/;
127
128 virtual void onAppResumed() /*override*/;
129
130 virtual void onDeviceLost() /*override*/;
131
132 virtual void onLowMemory(::LowMemorySeverity) /*override*/;
133
134 virtual void onBlockChanged(
135 ::BlockSource& source,
136 ::BlockPos const& pos,
137 uint layer,
138 ::Block const& block,
139 ::Block const& oldBlock,
140 int updateFlags,
141 ::ActorBlockSyncMessage const* syncMsg,
142 ::BlockChangedEventTarget eventTarget,
143 ::Actor* blockChangeSource
144 ) /*override*/;
145
146 virtual void takePicture(
147 ::cg::ImageBuffer& outImage,
148 ::Actor* camera,
149 ::Actor* target,
150 ::ScreenshotOptions& screenshotOptions,
151 ::std::function<void(::cg::ImageBuffer&, ::ScreenshotOptions&)> completedScreenshotCallback
152 ) /*override*/;
153 // NOLINTEND
154
155public:
156 // member functions
157 // NOLINTBEGIN
158 MCAPI LevelRenderer(
159 ::IClientInstance& clientInstance,
160 ::MultiPlayerLevel& level,
161 ::std::shared_ptr<::Options> options,
162 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
163 ::Bedrock::NotNullNonOwnerPtr<::TextureAtlas const> const& terrainTexture,
164 ::WeakEntityRef localUser,
165 ::GameRenderer& gameRenderer,
166 ::Bedrock::NotNullNonOwnerPtr<::SoundPlayerInterface> const& soundPlayer,
167 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> const& geometryGroup,
168 ::SoundMapping const& sounds,
169 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const& actorResourceDefinitionGroup
170 );
171
172 MCAPI void _createMeshes(::Tessellator& tessellator);
173
174 MCAPI void _createParticleEngines();
175
176 MCAPI void _debugDrawClientSideChunkGenBlockDifferences();
177
178 MCAPI void _initPipelineTessellatorResources();
179
180 MCAPI void _initResources();
181
182 MCAPI void _resetMeshes();
183
184 MCAPI void _setLevelRendererCameras();
185
186 MCAPI void frameUpdate(::ClientFrameUpdateContext& clientFrameUpdateContext);
187
188 MCAPI ::BlockTessellator& getBlockRenderer();
189
190 MCAPI ::StackRefResult<::RenderChunkCoordinator> getRenderChunkCoordinator(::DimensionType dimID);
191
192 MCAPI void onDimensionChanged();
193
194 MCAPI void onOptionsChanged();
195
196 MCAPI void preRenderUpdate(
197 ::ScreenContext& screenContext,
198 ::LevelRenderPreRenderUpdateParameters& levelRenderPreRenderUpdateParameters
199 );
200
201 MCAPI void rebuildAllDDRv2Geometry();
202
203 MCAPI void reinit(
204 ::Bedrock::NotNullNonOwnerPtr<::TextureAtlas const> const& terrainTexture,
205 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> const& geometryGroup,
206 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const& actorResourceDefinitionGroup
207 );
208
209 MCAPI void renderLevel(::ScreenContext& screenContext, ::FrameRenderObject const& renderObj);
210
211 MCAPI void resetPointLightCoordinator();
212
213 MCAPI void tickLevelRenderer();
214 // NOLINTEND
215
216public:
217 // static variables
218 // NOLINTBEGIN
219 MCAPI static float const& Z_FAR_MIN();
220
221 MCAPI static float const& Z_NEAR();
222 // NOLINTEND
223
224public:
225 // constructor thunks
226 // NOLINTBEGIN
227 MCAPI void* $ctor(
228 ::IClientInstance& clientInstance,
229 ::MultiPlayerLevel& level,
230 ::std::shared_ptr<::Options> options,
231 ::std::shared_ptr<::mce::TextureGroup> textureGroup,
232 ::Bedrock::NotNullNonOwnerPtr<::TextureAtlas const> const& terrainTexture,
233 ::WeakEntityRef localUser,
234 ::GameRenderer& gameRenderer,
235 ::Bedrock::NotNullNonOwnerPtr<::SoundPlayerInterface> const& soundPlayer,
236 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup> const& geometryGroup,
237 ::SoundMapping const& sounds,
238 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const> const& actorResourceDefinitionGroup
239 );
240 // NOLINTEND
241
242public:
243 // destructor thunk
244 // NOLINTBEGIN
245 MCAPI void $dtor();
246 // NOLINTEND
247
248public:
249 // virtual function thunks
250 // NOLINTBEGIN
251 MCAPI void $onAppSuspended();
252
253 MCAPI void $onAppResumed();
254
255 MCAPI void $onDeviceLost();
256
257 MCAPI void $takePicture(
258 ::cg::ImageBuffer& outImage,
259 ::Actor* camera,
260 ::Actor* target,
261 ::ScreenshotOptions& screenshotOptions,
262 ::std::function<void(::cg::ImageBuffer&, ::ScreenshotOptions&)> completedScreenshotCallback
263 );
264 // NOLINTEND
265
266public:
267 // vftables
268 // NOLINTBEGIN
269 MCNAPI static void** $vftableForLevelListener();
270
271 MCNAPI static void** $vftableForAppPlatformListener();
272 // NOLINTEND
273};
Definition Actor.h:105
Definition AppPlatformListener.h:15
Definition BlockActorRenderDispatcher.h:5
Definition BlockPos.h:19
Definition BlockSource.h:68
Definition BlockTessellator.h:5
Definition Block.h:43
Definition DataDrivenRendererV2RequiredData.h:5
Definition Dimension.h:85
Definition GameRenderer.h:5
Definition GeometryEditorGui.h:5
Definition GeometryGroup.h:5
Definition IClientInstance.h:5
Definition LevelListener.h:28
Definition LevelRendererPlayer.h:5
Definition LevelRendererProxy.h:5
Definition LevelRendererShadowCamera.h:5
Definition LevelRenderer.h:5
static MCAPI void ** $vftableForLevelListener()
static MCAPI void ** $vftableForAppPlatformListener()
Definition MultiPlayerLevel.h:5
Definition Options.h:5
Definition ParticleEngine.h:5
Definition ParticleSystemEngine.h:5
Definition RenderChunkCoordinator.h:5
Definition ScreenContext.h:5
Definition SoundPlayerInterface.h:21
Definition TaskGroup.h:53
Definition Tessellator.h:5
Definition TextureAtlas.h:5
Definition ImageBuffer.h:16
Definition Mesh.h:7
Definition TextureGroup.h:7
Definition ActorBlockSyncMessage.h:8
Definition ActorResourceDefinitionGroup.h:5
Definition ClientFrameUpdateContext.h:5
Definition FrameRenderObject.h:5
Definition LevelRenderPreRenderUpdateParameters.h:5
Definition PlayerRenderView.h:5
Definition PointLightCoordinator.h:7
Definition ScreenshotOptions.h:9
Definition SoundMapping.h:5