3#include "mc/_HeaderOutputPredefine.h"
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"
60namespace mce {
class Mesh; }
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;
117 LevelRenderer& operator=(LevelRenderer
const&);
118 LevelRenderer(LevelRenderer
const&);
124 virtual ~LevelRenderer() ;
126 virtual void onAppSuspended() ;
128 virtual void onAppResumed() ;
130 virtual void onDeviceLost() ;
132 virtual void onLowMemory(::LowMemorySeverity) ;
134 virtual void onBlockChanged(
135 ::BlockSource& source,
136 ::BlockPos
const& pos,
138 ::Block
const& block,
139 ::Block
const& oldBlock,
141 ::ActorBlockSyncMessage
const* syncMsg,
142 ::BlockChangedEventTarget eventTarget,
143 ::Actor* blockChangeSource
146 virtual void takePicture(
147 ::cg::ImageBuffer& outImage,
150 ::ScreenshotOptions& screenshotOptions,
151 ::std::function<
void(::cg::ImageBuffer&, ::ScreenshotOptions&)> completedScreenshotCallback
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
172 MCAPI
void _createMeshes(::Tessellator& tessellator);
174 MCAPI
void _createParticleEngines();
176 MCAPI
void _debugDrawClientSideChunkGenBlockDifferences();
178 MCAPI
void _initPipelineTessellatorResources();
180 MCAPI
void _initResources();
182 MCAPI
void _resetMeshes();
184 MCAPI
void _setLevelRendererCameras();
186 MCAPI
void frameUpdate(::ClientFrameUpdateContext& clientFrameUpdateContext);
188 MCAPI ::BlockTessellator& getBlockRenderer();
190 MCAPI ::StackRefResult<::RenderChunkCoordinator> getRenderChunkCoordinator(::DimensionType dimID);
192 MCAPI
void onDimensionChanged();
194 MCAPI
void onOptionsChanged();
196 MCAPI
void preRenderUpdate(
197 ::ScreenContext& screenContext,
198 ::LevelRenderPreRenderUpdateParameters& levelRenderPreRenderUpdateParameters
201 MCAPI
void rebuildAllDDRv2Geometry();
204 ::Bedrock::NotNullNonOwnerPtr<::TextureAtlas const>
const& terrainTexture,
205 ::Bedrock::NotNullNonOwnerPtr<::GeometryGroup>
const& geometryGroup,
206 ::Bedrock::NotNullNonOwnerPtr<::ActorResourceDefinitionGroup const>
const& actorResourceDefinitionGroup
209 MCAPI
void renderLevel(::ScreenContext& screenContext, ::FrameRenderObject
const& renderObj);
211 MCAPI
void resetPointLightCoordinator();
213 MCAPI
void tickLevelRenderer();
219 MCAPI
static float const& Z_FAR_MIN();
221 MCAPI
static float const& Z_NEAR();
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
251 MCAPI
void $onAppSuspended();
253 MCAPI
void $onAppResumed();
255 MCAPI
void $onDeviceLost();
257 MCAPI
void $takePicture(
258 ::cg::ImageBuffer& outImage,
261 ::ScreenshotOptions& screenshotOptions,
262 ::std::function<
void(::cg::ImageBuffer&, ::ScreenshotOptions&)> completedScreenshotCallback
Definition BlockActorRenderDispatcher.h:5
Definition BlockSource.h:68
Definition BlockTessellator.h:5
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 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 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