3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/gui/screens/ScreenContext.h"
7#include "mc/client/renderer/MinecraftGraphicsPipeline.h"
8#include "mc/client/renderer/RenderGraph.h"
9#include "mc/deps/core/file/PathBuffer.h"
10#include "mc/deps/core/math/Matrix.h"
11#include "mc/deps/core/memory/LinearAllocator.h"
12#include "mc/deps/core/timing/Clock.h"
13#include "mc/deps/core/utility/NonOwnerPointer.h"
14#include "mc/deps/core/utility/optional_ref.h"
15#include "mc/deps/core/utility/pub_sub/Connector.h"
16#include "mc/deps/core/utility/pub_sub/Subscription.h"
33namespace mce {
class Color; }
46 enum class FrameCaptureMode :
int {
55 ::ll::UntypedStorage<8, 8> mUnk326994;
56 ::ll::UntypedStorage<8, 8> mUnkedc2e7;
61 Overlays& operator=(Overlays
const&);
62 Overlays(Overlays
const&);
86 mFrameObject_NoAccessOutsideRender;
87 ::ll::TypedStorage<8, 16, ::LinearAllocator<::FrameRenderObject>> mLinearAllocator;
88 ::ll::TypedStorage<8, 208, ::MinecraftGraphicsPipeline> mMinecraftGraphicsPipeline;
89 ::ll::TypedStorage<8, 8, ::MinecraftGraphics&> mMinecraftGraphics;
90 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IClientInstance>> mClient;
91 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mPrimaryClient;
92 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector>> mFrameAnomalyDetector;
93 ::ll::TypedStorage<8, 16, ::GameRenderer::Overlays> mOverlays;
94 ::ll::TypedStorage<8, 88, ::mce::RenderGraph> mRenderGraph;
95 ::ll::TypedStorage<4, 24, ::mce::Clock> mClock;
96 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Tessellator>> mTessellator;
97 ::ll::TypedStorage<8, 8, ::TickingTextureStage*> mTickingTextureStage;
98 ::ll::TypedStorage<4, 4, float> mLastClockTime;
99 ::ll::TypedStorage<1, 1, bool> mFlushedInitCommandList;
100 ::ll::TypedStorage<4, 4, int> _tick;
101 ::ll::TypedStorage<2, 2, short> mPointerX;
102 ::ll::TypedStorage<2, 2, short> mPointerY;
103 ::ll::TypedStorage<1, 1, bool> mUseLowFrequencyUIRender;
104 ::ll::TypedStorage<4, 8, ::std::optional<::GameRenderer::FrameCaptureMode>> mFrameCaptureMode;
105 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InsideCubeRenderer>> mInsideCubeRenderer;
106 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mLastFrameTime;
107 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::PlayerRenderView>>> mPlayerViews;
108 ::ll::TypedStorage<8, 8, ::optional_ref<::mce::RenderStage>> mDirectOutputStage;
109 ::ll::TypedStorage<8, 8, ::optional_ref<::CommandListQueue>> mCommandListQueue;
110 ::ll::TypedStorage<8, 280, ::std::optional<::ScreenContext>> mCurrentFrameScreenContext;
111 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelViewMatrix;
112 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelViewMatrixAbsolute;
113 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelProjMatrix;
114 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelWorldMatrix;
115 ::ll::TypedStorage<4, 64, ::Matrix> mCubemapWorldMatrix;
116 ::ll::TypedStorage<1, 1, bool> mCubemapRotationPaused;
117 ::ll::TypedStorage<8, 8, double> mCubemapRotationSeconds;
118 ::ll::TypedStorage<1, 1, bool> mHasCustomSoftwareCursor;
119 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mCustomSoftwareCursorAsset;
120 ::ll::TypedStorage<8, 32, ::std::string> mExperimentsString;
121 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IRenderChunkGarbageCollection>> mGarbageCollection;
122 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPauseSubscription;
127 GameRenderer& operator=(GameRenderer
const&);
128 GameRenderer(GameRenderer
const&);
134 virtual ~GameRenderer();
141 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& ci,
143 ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector>
const& frameAnomalyDetector
149 _extractFrame(
::ScreenContext& screenContext,
bool renderGraphContainsPlayScreen);
153 MCAPI ::std::weak_ptr<::PlayerRenderView> addPlayerRenderView(
::LevelRenderer& renderer);
159 MCFOLD ::Matrix
const& getCubemapWorldMat()
const;
161 MCFOLD ::Matrix
const& getLastLevelProjSpace()
const;
163 MCFOLD ::Matrix
const& getLastLevelViewSpace()
const;
165 MCFOLD ::Tessellator& getTessellator();
167 MCAPI ::ScreenContext makeScreenContext(
float a);
169 MCFOLD
void onAppResumed();
171 MCAPI
void onAppSuspended();
175 MCAPI
void recreateTickingTextureStage();
179 MCAPI
void renderCurrentFrame(
float a);
181 MCAPI
void renderCursor(
::ScreenContext& screenContext,
float xMouse,
float yMouse);
185 MCAPI
void setCapturingFrame(::std::optional<::GameRenderer::FrameCaptureMode> frameCaptureMode);
191 MCAPI
void setCubemapRotationPaused(
bool paused);
193 MCAPI
void setLastLevelProjSpace(
::Matrix const& projMat);
195 MCAPI
void setLastLevelViewSpace(
::Matrix const& viewMat);
197 MCAPI
void setLastLevelViewSpaceAbsolute(
::Matrix const& viewMat);
199 MCAPI
void setLastLevelWorldSpace(
::Matrix const& worldMat);
203 MCAPI
void setLowFrequencyUIRender(
bool val);
209 MCAPI
bool useLowFrequencyUIRender()
const;
223 MCAPI static ::mce::Color& mClearColor();
225 MCAPI
static bool& mSplitScreenActive();
227 MCAPI static ::std::string& mVersionString();
234 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>
const& ci,
236 ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector>
const& frameAnomalyDetector
Definition CommandListQueue.h:5
Definition Dimension.h:88
Definition FrameAnomalyDetector.h:14
Definition GameRenderer.h:5
static MCAPI void ** $vftable()
Definition IClientInstance.h:5
Definition IRenderChunkGarbageCollection.h:5
Definition InsideCubeRenderer.h:5
Definition LevelRenderer.h:5
Definition MinecraftGraphics.h:5
Definition PlayerRenderView.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TickingTextureStage.h:5
Definition RenderContext.h:7
Definition RenderStage.h:7
Definition FrameRenderObject.h:5
Definition GameRenderer.h:15