LeviLamina
Loading...
Searching...
No Matches
LevelRendererCamera.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/model/models/SortedMeshDrawList.h"
7#include "mc/client/particlesystem/particle/ParticleRenderData.h"
8#include "mc/client/renderer/HistoricalFrameTimes.h"
9#include "mc/client/renderer/culling/FrustumCuller.h"
10#include "mc/client/renderer/game/ActorRenderCandidates.h"
11#include "mc/client/renderer/game/LevelRendererCameraType.h"
12#include "mc/client/renderer/game/TerrainMaterialVariationManager.h"
13#include "mc/client/world/level/fog/FogDistanceSetting.h"
14#include "mc/client/world/level/fog/ResolvedFogVolumetricCoefficientSetting.h"
15#include "mc/client/world/level/fog/ResolvedFogVolumetricDensitySetting.h"
16#include "mc/client/world/level/fog/ResolvedFogVolumetricHenyeyGreensteinGSetting.h"
17#include "mc/deps/core/math/FrustumEdges.h"
18#include "mc/deps/core/math/Vec3.h"
19#include "mc/deps/core/threading/Async.h"
20#include "mc/deps/core_graphics/ImageBuffer.h"
21#include "mc/deps/game_refs/OwnerPtr.h"
22#include "mc/deps/minecraft_renderer/game/FrustumCullerType.h"
23#include "mc/deps/minecraft_renderer/game/LevelCullerType.h"
24#include "mc/deps/minecraft_renderer/game/ShadowContext.h"
25#include "mc/deps/minecraft_renderer/game/TerrainLayerLOD.h"
26#include "mc/deps/minecraft_renderer/renderer/MaterialPtr.h"
27#include "mc/deps/minecraft_renderer/resources/ClientTexture.h"
28#include "mc/deps/renderer/Camera.h"
29#include "mc/platform/brstd/flat_map.h"
30#include "mc/util/GridArea.h"
31#include "mc/world/actor/ActorType.h"
32#include "mc/world/level/BlockPos.h"
33#include "mc/world/level/ChunkPos.h"
34#include "mc/world/level/FogDefinition.h"
35#include "mc/world/level/SubChunkPos.h"
36
37// auto generated forward declare list
38// clang-format off
39class AABB;
40class Actor;
43class BlockActor;
44class BlockSource;
47class Dimension;
48class Font;
49class IClientInstance;
52class Level;
53class LevelBuilder;
54class LevelCullerBase;
55class LevelRenderer;
57class LocalPlayer;
58class Player;
62class ScreenContext;
63class WeatherRenderer;
69struct OccluderFace;
70struct TerrainLayer;
71struct ViewRenderObject;
72namespace mce { class TextureGroup; }
73namespace mce { class TexturePtr; }
74// clang-format on
75
77public:
78 // LevelRendererCamera inner types declare
79 // clang-format off
81 struct RainState;
82 struct FogBrightnessPair;
84 struct PlayerStateParams;
87 // clang-format on
88
89 // LevelRendererCamera inner types define
91 public:
92 // member variables
93 // NOLINTBEGIN
94 ::ll::TypedStorage<8, 24, ::std::vector<::FrustumEdges>> lastFrusumEdges;
95 ::ll::TypedStorage<8, 24, ::std::vector<::mce::Camera>> lastCascadeCameras;
96 ::ll::TypedStorage<8, 512, ::mce::Camera> lastDebugCamera;
97 ::ll::TypedStorage<4, 12, ::glm::vec3> mReferenceForwardVector;
98 ::ll::TypedStorage<8, 24, ::std::vector<::FrustumEdges>> frusumEdges;
99 ::ll::TypedStorage<8, 24, ::std::vector<::mce::Camera>> cascadeCameras;
100 ::ll::TypedStorage<4, 4, int> renderDebugCamera;
101 // NOLINTEND
102 };
103
104 struct RainState {
105 public:
106 // member variables
107 // NOLINTBEGIN
108 ::ll::TypedStorage<4, 4, float> mRainPosX;
109 ::ll::TypedStorage<4, 4, float> mRainPosY;
110 ::ll::TypedStorage<4, 4, float> mRainPosZ;
111 ::ll::TypedStorage<4, 4, int> mRainPosSamples;
112 ::ll::TypedStorage<4, 4, int> mRainCount;
113 ::ll::TypedStorage<8, 24, ::std::vector<::Vec3>> mSmokeParticles;
114 ::ll::TypedStorage<8, 24, ::std::vector<::Vec3>> mRainSplashParticles;
115 // NOLINTEND
116 };
117
118 struct FogBrightnessPair {
119 public:
120 // member variables
121 // NOLINTBEGIN
122 ::ll::TypedStorage<4, 4, float> mCurrentValue;
123 ::ll::TypedStorage<4, 4, float> mOriginalValue;
124 // NOLINTEND
125 };
126
127 struct FogBrightnessParams {
128 public:
129 // member variables
130 // NOLINTBEGIN
131 ::ll::TypedStorage<1, 1, bool> mIsInEnd;
132 ::ll::TypedStorage<1, 1, bool> mCameraUnderLiquid;
133 ::ll::TypedStorage<4, 8, ::LevelRendererCamera::FogBrightnessPair> mFogBrightnessPair;
134 ::ll::TypedStorage<4, 12, ::BlockPos> mCameraPos;
135 ::ll::TypedStorage<8, 8, ::IConstBlockSource*> mBlockSource;
136 // NOLINTEND
137 };
138
139 struct PlayerStateParams {
140 public:
141 // member variables
142 // NOLINTBEGIN
143 ::ll::TypedStorage<8, 8, ::LocalPlayer*> mLocalPlayer;
144 ::ll::TypedStorage<8, 8, ::Actor const*> mLocalPlayerVehicle;
145 ::ll::TypedStorage<1, 1, bool> mPlayerHasPassengers;
146 ::ll::TypedStorage<1, 1, bool> mShouldRenderPlayerModel;
147 ::ll::TypedStorage<1, 1, bool> mIsSpectator;
148 // NOLINTEND
149 };
150
152 public:
153 // member variables
154 // NOLINTBEGIN
155 ::ll::TypedStorage<4, 4, ::ActorType const> mActorType;
156 ::ll::TypedStorage<4, 4, int const> mMaxCount;
157 ::ll::TypedStorage<4, 4, int> mCurrentCount;
158 // NOLINTEND
159 };
160
161 struct RenderChunkPosBounds {
162 public:
163 // member variables
164 // NOLINTBEGIN
165 ::ll::TypedStorage<4, 12, ::SubChunkPos> min;
166 ::ll::TypedStorage<4, 12, ::SubChunkPos> max;
167 // NOLINTEND
168 };
169
170 using BlockActorList = ::std::vector<::gsl::not_null<::BlockActor*>>;
171
172 using ActorList = ::std::vector<::Actor*>;
173
174 using LevelRendererArea = ::GridArea<::std::shared_ptr<::RenderChunkInstanced>>;
175
176 using ActorRenderQueue = ::brstd::flat_map<
177 ::gsl::not_null<::Actor*>,
178 ::ShadowContext,
179 ::std::less<::gsl::not_null<::Actor*>>,
180 ::std::vector<::gsl::not_null<::Actor*>>,
181 ::std::vector<::ShadowContext>>;
182
183public:
184 // member variables
185 // NOLINTBEGIN
186 ::ll::TypedStorage<8, 8, uint64> mChunkQueueSize;
187 ::ll::TypedStorage<8, 408, uint64[3][17]> mTerrainChunkQueueSize;
188 ::ll::TypedStorage<8, 24, ::std::vector<::OccluderFace>> mChunkOccluders;
189 ::ll::TypedStorage<8, 24, ::ActorRenderCandidates> mActorRenderCandidates;
190 ::ll::TypedStorage<
191 8,
192 48,
193 ::brstd::flat_map<
194 ::gsl::not_null<::Actor*>,
195 ::ShadowContext,
196 ::std::less<::gsl::not_null<::Actor*>>,
197 ::std::vector<::gsl::not_null<::Actor*>>,
198 ::std::vector<::ShadowContext>>>
199 mActorRenderQueue;
200 ::ll::TypedStorage<8, 24, ::SortedMeshDrawList> mSortedMeshDrawList;
201 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::IVanillaRenderBlockActorComponent*>>>
202 mRenderComponentRenderQueue;
203 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::IVanillaRenderBlockActorComponent*>>>
204 mRenderComponentRenderAlphaQueue;
205 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::IVanillaRenderBlockActorComponent*>>>
206 mRenderComponentShadowQueue;
207 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> shadowVolumeBack;
208 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> shadowVolumeFront;
209 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> shadowOverlayMat;
210 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> starsMaterial;
211 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> skyPlaneMaterial;
212 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> sunMoonMaterial;
213 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> endSkyMaterial;
214 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> cloudMaterial;
215 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> wireframeMaterial;
216 ::ll::TypedStorage<8, 16, ::mce::MaterialPtr> mCubemapMaterial;
217 ::ll::TypedStorage<8, 24, ::std::vector<::mce::TexturePtr>> mCubemapTextures;
218 ::ll::TypedStorage<8, 24, ::mce::ClientTexture> mCubemapTexture;
219 ::ll::TypedStorage<8, 8, uint64 const> mAmbientSamplesDefaultSize;
220 ::ll::TypedStorage<8, 56, ::std::optional<::cg::ImageBuffer>> mSkyAmbientSamplesBuffer;
221 ::ll::TypedStorage<8, 136, ::TerrainMaterialVariationManager> mTerrainMaterialVariationManager;
222 ::ll::TypedStorage<4, 4, float> mDeltaTime;
223 ::ll::TypedStorage<4, 4, float> mLastTime;
224 ::ll::TypedStorage<4, 4, float> mWaterLevel;
225 ::ll::TypedStorage<4, 8, ::glm::vec2> mFogControl;
226 ::ll::TypedStorage<4, 4, float> mBaseFogEnd;
227 ::ll::TypedStorage<4, 4, float> mBaseFogStart;
228 ::ll::TypedStorage<4, 8, ::glm::vec2> mCameraLightIntensity;
229 ::ll::TypedStorage<4, 8, ::LevelRendererCamera::FogBrightnessPair> mFogBrightnessPair;
230 ::ll::TypedStorage<4, 28, ::FogDistanceSetting> mCurrentDistanceFog;
231 ::ll::TypedStorage<4, 28, ::FogDistanceSetting> mLastTargetDistanceFog;
232 ::ll::TypedStorage<4, 12, ::ResolvedFogVolumetricDensitySetting> mCurrentFogDensity;
233 ::ll::TypedStorage<4, 32, ::ResolvedFogVolumetricCoefficientSetting> mAirFogCoefficient;
234 ::ll::TypedStorage<4, 32, ::ResolvedFogVolumetricCoefficientSetting> mWaterFogCoefficient;
235 ::ll::TypedStorage<4, 32, ::ResolvedFogVolumetricCoefficientSetting> mCloudFogCoefficient;
236 ::ll::TypedStorage<4, 4, ::ResolvedFogVolumetricHenyeyGreensteinGSetting> mAirHenyeyGreensteinG;
237 ::ll::TypedStorage<4, 4, ::ResolvedFogVolumetricHenyeyGreensteinGSetting> mWaterHenyeyGreensteinG;
238 ::ll::TypedStorage<1, 1, bool> mFogWasUnderwaterLastCheck;
239 ::ll::TypedStorage<1, 1, bool> mFogWasUnderLavaLastCheck;
240 ::ll::TypedStorage<1, 1, bool> mFogWasUnderPowderSnowLastCheck;
241 ::ll::TypedStorage<1, 1, bool> mBlendFogThisFrame;
242 ::ll::TypedStorage<4, 4, float> mMobEffectFogLevel;
243 ::ll::TypedStorage<8, 224, ::ParticleRenderData> mParticleRenderData;
244 ::ll::TypedStorage<4, 4, float> mTransitionFogTime;
245 ::ll::TypedStorage<1, 1, bool> mInTransitionFog;
246 ::ll::TypedStorage<4, 4, float const> mRenderDistanceCloudFadeOutMultiplier;
247 ::ll::TypedStorage<4, 4, float> mFakeHDR;
248 ::ll::TypedStorage<4, 4, float> mAverageBrightness;
249 ::ll::TypedStorage<4, 4, uint> mFrameID;
250 ::ll::TypedStorage<4, 4, int> mViewAreaDistance;
251 ::ll::TypedStorage<4, 4, float> mFarChunksDistance;
252 ::ll::TypedStorage<4, 4, float> mRenderDistance;
253 ::ll::TypedStorage<4, 4, float> mCullEndDistance;
254 ::ll::TypedStorage<4, 4, int const> mMaxInflightChunks;
255 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::GridArea<::std::shared_ptr<::RenderChunkInstanced>>>> mViewArea;
256 ::ll::TypedStorage<4, 12, ::BlockPos> mLastFaceSortPos;
257 ::ll::TypedStorage<4, 12, ::Vec3> mLastFaceSortDir;
258 ::ll::TypedStorage<4, 12, ::Vec3> mLastDirtySortPos;
259 ::ll::TypedStorage<4, 12, ::BlockPos> mLastNearbyFaceSortPos;
260 ::ll::TypedStorage<4, 24, ::LevelRendererCamera::RenderChunkPosBounds> mLastFaceSortBounds;
261 ::ll::TypedStorage<4, 12, ::Vec3> mLastChunkResortPos;
262 ::ll::TypedStorage<4, 12, ::Vec3> mCameraPos;
263 ::ll::TypedStorage<4, 12, ::Vec3> mCameraTargetPos;
264 ::ll::TypedStorage<4, 204, ::FrustumCuller> mFrustumCuller;
265 ::ll::TypedStorage<1, 1, ::FrustumCullerType> mFrustumCullerType;
266 ::ll::TypedStorage<8, 512, ::mce::Camera> mWorldSpaceCamera;
267 ::ll::TypedStorage<8, 24, ::std::vector<::Actor*>> mWaterHoleActorQueue;
268 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::WeatherRenderer>> mWeatherRenderer;
269 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::BiomeBlendingMapRenderer>> mBiomeBlendingMapRenderer;
270 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ChunkRenderObjectCollection>> mChunkRenderObjects;
271 ::ll::TypedStorage<1, 1, bool> mCameraUnderWater;
272 ::ll::TypedStorage<1, 1, bool> mCameraUnderLiquid;
273 ::ll::TypedStorage<1, 1, bool> mCameraUnderPowderSnow;
274 ::ll::TypedStorage<1, 1, bool> mCameraUnderLava;
275 ::ll::TypedStorage<1, 1, bool> mCameraInRain;
276 ::ll::TypedStorage<1, 1, bool> mShowSky;
277 ::ll::TypedStorage<1, 1, bool> mIsCameraInCaptureMode;
278 ::ll::TypedStorage<8, 8, ::Level&> mLevel;
279 ::ll::TypedStorage<8, 16, ::OwnerPtr<::BlockSource>> mViewRegion;
280 ::ll::TypedStorage<8, 8, ::Dimension*> mDimension;
281 ::ll::TypedStorage<2, 2, short> mCloudHeight;
282 ::ll::TypedStorage<8, 8, ::LevelRenderer&> mLevelRenderer;
283 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::LevelCullerBase>> mLevelCuller;
284 ::ll::TypedStorage<1, 1, ::LevelCullerType> mLastCullerType;
285 ::ll::TypedStorage<1, 1, bool> mForceCulling;
286 ::ll::TypedStorage<1, 1, bool> mRecullWhenNotBusy;
287 ::ll::TypedStorage<4, 4, int> mViewAreaSide;
288 ::ll::TypedStorage<2, 2, short> mViewAreaHeight;
289 ::ll::TypedStorage<1, 1, bool> mViewAreaChanged;
290 ::ll::TypedStorage<4, 4, float> mLastFogEnd;
291 ::ll::TypedStorage<4, 4, float> mLastSunAngle;
292 ::ll::TypedStorage<4, 12, ::Vec3> mLastCameraPos;
293 ::ll::TypedStorage<4, 12, ::Vec3> mLastCameraDir;
294 ::ll::TypedStorage<4, 16, ::std::optional<::glm::vec3>> mPrevCloudCenterPos;
295 ::ll::TypedStorage<8, 8, ::ResourcePackManager&> mResourcePackManager;
296 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::mce::TextureGroup>> mTextureGroup;
297 ::ll::TypedStorage<8, 24, ::std::vector<::gsl::not_null<::IVanillaRenderBlockActorComponent*>>> mTempBlockActorList;
298 ::ll::TypedStorage<8, 64, ::std::unordered_set<::ChunkPos>> mPendingPermanentlyRenderedBlockActorRequests;
299 ::ll::TypedStorage<8, 16, ::std::map<::ChunkPos, ::std::unordered_set<::BlockPos>>> mPermanentlyRenderedBlockActors;
300 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::LevelRendererCameraProxy>> mProxy;
301 ::ll::TypedStorage<8, 8, double> mLastFrameTimeStart;
302 ::ll::TypedStorage<8, 488, ::HistoricalFrameTimes> mHistoricalFrameTimes;
303 ::ll::TypedStorage<8, 16, ::Bedrock::Threading::Async<void>> mChunkFaceSortTaskHandle;
304 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::CameraAimAssistRenderer>> mCameraAimAssistRenderer;
305 // NOLINTEND
306
307public:
308 // prevent constructor by default
309 LevelRendererCamera& operator=(LevelRendererCamera const&);
310 LevelRendererCamera(LevelRendererCamera const&);
311 LevelRendererCamera();
312
313public:
314 // virtual functions
315 // NOLINTBEGIN
316 virtual ~LevelRendererCamera() = default;
317
318 virtual ::LevelRendererCameraType getCameraType() const;
319
320 virtual void addCameraListenerToRenderChunkCoordinator();
321
322 virtual void onAppSuspended();
323
324 virtual void onAppResumed();
325
326 virtual void onDeviceLost();
327
328 virtual void onLowMemory();
329
330 virtual void initResources();
331
332 virtual void frameUpdate(::ClientFrameUpdateContext& clientFrameUpdateContext);
333
334 virtual void tickLevelRendererCamera();
335
336 virtual void tickRain();
337
338 virtual void updateViewArea(::LevelRenderPreRenderUpdateParameters const& levelRenderPreRenderUpdateParameters);
339
340 virtual void callRenderNameTags(::ScreenContext& screenContext, ::ViewRenderObject const& renderObj, ::Font& font);
341
342 virtual ::NameTagRenderObjectCollection extractNameTags(::ScreenContext& screenContext) const;
343
344 virtual void callRenderCracks(::BaseActorRenderContext& renderContext, ::ViewRenderObject const& renderObj);
345
346 virtual ::CrackRenderObjectCollection extractCracks(::ScreenContext& screenContext) const;
347
348 virtual void renderEntityEffects(::BaseActorRenderContext& renderContext);
349
350 virtual void renderBlockEntities(::BaseActorRenderContext& renderContext, bool renderAlphaLayer);
351
352 virtual void setViewArea(::LevelRenderPreRenderUpdateParameters const& levelRenderPreRenderUpdateParameters);
353
354 virtual bool getForceFog(::Actor const& cameraActor) const;
355
356 virtual void setupFog(::ScreenContext& screenContext, float const skyIntensityOverride);
357
358 virtual float getAmbientBrightness() const;
359
360 virtual void recalculateRenderDistance(float const renderDistanceScalar);
361
362 virtual void preRenderUpdate(
363 ::ScreenContext& screenContext,
364 ::LevelRenderPreRenderUpdateParameters& levelRenderPreRenderUpdateParameters
365 );
366
367 virtual void render(
368 ::BaseActorRenderContext& baseEntityRenderContext,
369 ::ViewRenderObject const& renderObj,
370 ::IClientInstance& ci
371 );
372
373 virtual void postRenderUpdate();
374
375 virtual void notifyGeoChangedForAffectedEntities(::RenderChunkShared& renderChunkShared, uchar version);
376
377 virtual void updateLevelCullerType(::LevelCullerType const newLevelCullerType) = 0;
378
379 virtual void queueRenderEntities(::LevelRenderPreRenderUpdateParameters const& preRenderUpdateParameters);
380
381 virtual void _releaseRespectiveResources();
382
383 virtual void setupViewArea();
384
385 virtual ::FogDefinition::DistanceSettingType _getFogDistanceSettingType() const;
386
387 virtual ::FogDefinition::DensitySettingType _getFogDensitySettingType() const;
388 // NOLINTEND
389
390public:
391 // member functions
392 // NOLINTBEGIN
393 MCAPI void _addToRenderChunkQueue(
394 ::ChunkRenderObjectCollection& collection,
395 ::TerrainMaterialVariationManager const& terrainVariationMgr,
396 ::TerrainLayer const& layer,
397 ::TerrainLayerLOD const layerLOD,
398 ::RenderChunkInstanced const& renderChunkInstanced,
399 uint64 chunkIdx,
400 ::BlockPos const& chunkPos
401 );
402
403 MCAPI ::std::shared_ptr<::LevelCullerBase> _createCuller(
404 ::LevelCullerType type,
405 ::std::weak_ptr<::LevelRendererCamera> levelRendererCamera,
406 ::LevelBuilder& levelBuilder
407 );
408
409 MCAPI ::ResolvedFogVolumetricCoefficientSetting
410 _getCurrentCoefficientFogSetting(::FogDefinition::CoefficientSettingType settingType) const;
411
412 MCAPI ::ResolvedFogVolumetricHenyeyGreensteinGSetting
413 _getCurrentHenyeyGreensteinGFogSetting(::FogDefinition::HenyeyGreensteinGSettingType settingType) const;
414
415 MCAPI void _initCubemapTextures(::Dimension const& dimension);
416
417 MCAPI void _releaseResources();
418
419 MCAPI void
420 _resortNearbyChunks(::Vec3 const& viewPos, ::GridArea<::std::shared_ptr<::RenderChunkInstanced>> const& viewArea);
421
422 MCAPI bool _shouldRenderLeashedEntity(::Actor* actor, ::Vec3 cameraPos);
423
424 MCAPI void _tryInsertBlockEntityIntoRenderQueues(
425 ::IVanillaRenderBlockActorComponent* renderComponent,
426 ::std::map<::ChunkPos, ::std::unordered_set<::BlockPos>> const& skipList
427 );
428
429 MCAPI ::GridArea<::std::shared_ptr<::RenderChunkInstanced>>& _viewAreaMutable();
430
431 MCAPI bool cullerIsVisible(::Vec3 const& point, float radius) const;
432
433 MCAPI ::LevelRendererCamera::RainState doRainUpdate();
434
435 MCAPI ::RenderChunkInstanced* getOrCreateRenderChunkInstancedAt(::SubChunkPos const& rcp);
436
437 MCAPI ::RenderChunkInstanced* getRenderChunkInstancedAt(::SubChunkPos const& rcp) const;
438
439 MCAPI ::std::shared_ptr<::RenderChunkInstanced> getRenderChunkInstancedAtShared(::SubChunkPos const& rcp) const;
440
441 MCAPI uint64 getRenderChunkInstancedDifferentGeoCount();
442
443 MCAPI uint64 getRenderChunkInstancedEstimatedIndexMemoryUsed();
444
445 MCAPI bool isAABBVisible(::AABB const& bb, bool useFastCulling) const;
446
447 MCAPI void onViewRadiusChanged(bool resetAll);
448
449 MCAPI void preDimensionChanged(::Player& player);
450
451 MCAPI void recaptureViewAreaDimensions();
452
453 MCAPI void renderChunkVisibilityChanged(::RenderChunkShared& renderChunkShared, bool visibilityMatrixChanged);
454
455 MCAPI void renderSky(
456 ::ScreenContext& screenContext,
457 ::ViewRenderObject const& renderObj,
458 ::BaseSceneDirectionalLightRenderData const& sceneDirectionalLightRenderData
459 ) const;
460
461 MCAPI void resetChunkCullingData(::ChunkPos const& cp);
462
463 MCAPI void updateFarChunksDistance();
464
465 MCAPI void updatePerChunkFaceSortState(::Vec3 const& viewPos, ::Vec3 const& viewDir, bool isOrthoCamera);
466 // NOLINTEND
467
468public:
469 // virtual function thunks
470 // NOLINTBEGIN
471 MCFOLD ::LevelRendererCameraType $getCameraType() const;
472
473 MCAPI void $addCameraListenerToRenderChunkCoordinator();
474
475 MCAPI void $onAppSuspended();
476
477 MCAPI void $onAppResumed();
478
479 MCAPI void $onDeviceLost();
480
481 MCFOLD void $onLowMemory();
482
483 MCFOLD void $initResources();
484
485 MCFOLD void $frameUpdate(::ClientFrameUpdateContext& clientFrameUpdateContext);
486
487 MCAPI void $tickLevelRendererCamera();
488
489 MCAPI void $tickRain();
490
491 MCAPI void $updateViewArea(::LevelRenderPreRenderUpdateParameters const& levelRenderPreRenderUpdateParameters);
492
493 MCFOLD void $callRenderNameTags(::ScreenContext& screenContext, ::ViewRenderObject const& renderObj, ::Font& font);
494
495 MCAPI ::NameTagRenderObjectCollection $extractNameTags(::ScreenContext& screenContext) const;
496
497 MCFOLD void $callRenderCracks(::BaseActorRenderContext& renderContext, ::ViewRenderObject const& renderObj);
498
499 MCAPI ::CrackRenderObjectCollection $extractCracks(::ScreenContext& screenContext) const;
500
501 MCFOLD void $renderEntityEffects(::BaseActorRenderContext& renderContext);
502
503 MCAPI void $renderBlockEntities(::BaseActorRenderContext& renderContext, bool renderAlphaLayer);
504
505 MCAPI void $setViewArea(::LevelRenderPreRenderUpdateParameters const& levelRenderPreRenderUpdateParameters);
506
507 MCFOLD bool $getForceFog(::Actor const& cameraActor) const;
508
509 MCAPI void $setupFog(::ScreenContext& screenContext, float const skyIntensityOverride);
510
511 MCAPI float $getAmbientBrightness() const;
512
513 MCAPI void $recalculateRenderDistance(float const renderDistanceScalar);
514
515 MCAPI void $preRenderUpdate(
516 ::ScreenContext& screenContext,
517 ::LevelRenderPreRenderUpdateParameters& levelRenderPreRenderUpdateParameters
518 );
519
520 MCAPI void $render(
521 ::BaseActorRenderContext& baseEntityRenderContext,
522 ::ViewRenderObject const& renderObj,
523 ::IClientInstance& ci
524 );
525
526 MCFOLD void $postRenderUpdate();
527
528 MCFOLD void $notifyGeoChangedForAffectedEntities(::RenderChunkShared& renderChunkShared, uchar version);
529
530 MCAPI void $queueRenderEntities(::LevelRenderPreRenderUpdateParameters const& preRenderUpdateParameters);
531
532 MCFOLD void $_releaseRespectiveResources();
533
534 MCAPI void $setupViewArea();
535
536 MCAPI ::FogDefinition::DistanceSettingType $_getFogDistanceSettingType() const;
537
538 MCAPI ::FogDefinition::DensitySettingType $_getFogDensitySettingType() const;
539 // NOLINTEND
540};
Definition AABB.h:18
Definition Actor.h:114
Definition BaseActorRenderContext.h:5
Definition BiomeBlendingMapRenderer.h:5
Definition BlockActor.h:28
Definition BlockSource.h:71
Definition CameraAimAssistRenderer.h:5
Definition ClientFrameUpdateContext.h:5
Definition Dimension.h:86
Definition Font.h:5
Definition IClientInstance.h:5
Definition IConstBlockSource.h:25
Definition IVanillaRenderBlockActorComponent.h:19
Definition LevelBuilder.h:5
Definition LevelCullerBase.h:5
Definition LevelRendererCameraProxy.h:5
Definition LevelRendererCamera.h:5
Definition LevelRenderer.h:5
Definition Level.h:253
Definition LocalPlayer.h:5
Definition Player.h:129
Definition RenderChunkInstanced.h:5
Definition RenderChunkShared.h:5
Definition ResourcePackManager.h:38
Definition ScreenContext.h:5
Definition WeatherRenderer.h:5
Definition TextureGroup.h:7
Definition TexturePtr.h:7
Definition BaseSceneDirectionalLightRenderData.h:5
Definition ChunkRenderObjectCollection.h:5
Definition CrackRenderObjectCollection.h:5
Definition LevelRenderPreRenderUpdateParameters.h:5
Definition LevelRendererCamera.h:23
Definition LevelRendererCamera.h:31
Definition LevelRendererCamera.h:19
Definition LevelRendererCamera.h:27
Definition LevelRendererCamera.h:25
Definition LevelRendererCamera.h:21
Definition LevelRendererCamera.h:29
Definition NameTagRenderObjectCollection.h:5
Definition OccluderFace.h:5
Definition TerrainLayer.h:5
Definition ViewRenderObject.h:5