Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
GameRenderer.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
17
18// auto generated forward declare list
19// clang-format off
21class Dimension;
23class IClientInstance;
26class Level;
29class Tessellator;
32namespace Gameface { class IOffscreenRenderer; }
33namespace mce { class Color; }
34namespace mce { class RenderContext; }
35namespace mce { class RenderStage; }
36// clang-format on
37
38class GameRenderer {
39public:
40 // GameRenderer inner types declare
41 // clang-format off
42 struct Overlays;
43 // clang-format on
44
45 // GameRenderer inner types define
46 enum class FrameCaptureMode : int {
47 Screenshot = 0,
48 Panorama = 1,
49 };
50
51 struct Overlays {
52 public:
53 // member variables
54 // NOLINTBEGIN
55 ::ll::UntypedStorage<8, 8> mUnk752dd6;
56 ::ll::UntypedStorage<8, 8> mUnk326994;
57 ::ll::UntypedStorage<8, 8> mUnkedc2e7;
58 // NOLINTEND
59
60 public:
61 // prevent constructor by default
62 Overlays& operator=(Overlays const&);
63 Overlays(Overlays const&);
64 Overlays();
65 };
66
67 using PauseStateChangeConnector = ::Bedrock::PubSub::Connector<void(bool)>;
68
69 using FrameObjectPtr = ::std::unique_ptr<::FrameRenderObject, ::std::function<void(::FrameRenderObject*)>>;
70
71public:
72 // member variables
73 // NOLINTBEGIN
74 ::ll::TypedStorage<8, 72, ::std::unique_ptr<::FrameRenderObject, ::std::function<void(::FrameRenderObject*)>>>
75 mFrameObject_NoAccessOutsideRender;
76 ::ll::TypedStorage<8, 16, ::LinearAllocator<::FrameRenderObject>> mLinearAllocator;
77 ::ll::TypedStorage<8, 208, ::MinecraftGraphicsPipeline> mMinecraftGraphicsPipeline;
78 ::ll::TypedStorage<8, 8, ::MinecraftGraphics&> mMinecraftGraphics;
79 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IClientInstance>> mClient;
80 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::IClientInstance>> mPrimaryClient;
81 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::Gameface::IOffscreenRenderer>> mGamefaceOffscreenRenderer;
82 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector>> mFrameAnomalyDetector;
83 ::ll::TypedStorage<8, 24, ::GameRenderer::Overlays> mOverlays;
84 ::ll::TypedStorage<8, 88, ::mce::RenderGraph> mRenderGraph;
85 ::ll::TypedStorage<4, 24, ::mce::Clock> mClock;
86 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Tessellator>> mTessellator;
87 ::ll::TypedStorage<8, 8, ::TickingTextureStage*> mTickingTextureStage;
88 ::ll::TypedStorage<4, 4, float> mLastClockTime;
89 ::ll::TypedStorage<1, 1, bool> mFlushedInitCommandList;
90 ::ll::TypedStorage<4, 4, int> _tick;
91 ::ll::TypedStorage<2, 2, short> mPointerX;
92 ::ll::TypedStorage<2, 2, short> mPointerY;
93 ::ll::TypedStorage<1, 1, bool> mUseLowFrequencyUIRender;
94 ::ll::TypedStorage<4, 8, ::std::optional<::GameRenderer::FrameCaptureMode>> mFrameCaptureMode;
95 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::InsideCubeRenderer>> mInsideCubeRenderer;
96 ::ll::TypedStorage<8, 8, ::std::chrono::nanoseconds> mLastFrameTime;
97 ::ll::TypedStorage<8, 24, ::std::vector<::std::shared_ptr<::PlayerRenderView>>> mPlayerViews;
98 ::ll::TypedStorage<8, 8, ::optional_ref<::mce::RenderStage>> mDirectOutputStage;
99 ::ll::TypedStorage<8, 8, ::optional_ref<::CommandListQueue>> mCommandListQueue;
100 ::ll::TypedStorage<8, 312, ::std::optional<::ScreenContext>> mCurrentFrameScreenContext;
101 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelViewMatrix;
102 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelViewMatrixAbsolute;
103 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelProjMatrix;
104 ::ll::TypedStorage<4, 64, ::Matrix> mLastLevelWorldMatrix;
105 ::ll::TypedStorage<4, 64, ::Matrix> mCubemapWorldMatrix;
106 ::ll::TypedStorage<1, 1, bool> mCubemapRotationPaused;
107 ::ll::TypedStorage<8, 8, double> mCubemapRotationSeconds;
108 ::ll::TypedStorage<1, 1, bool> mHasCustomSoftwareCursor;
109 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mCustomSoftwareCursorAsset;
110 ::ll::TypedStorage<8, 32, ::std::string> mExperimentsString;
111 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IRenderChunkGarbageCollection>> mGarbageCollection;
112 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mPauseSubscription;
113 // NOLINTEND
114
115public:
116 // prevent constructor by default
117 GameRenderer& operator=(GameRenderer const&);
118 GameRenderer(GameRenderer const&);
119 GameRenderer();
120
121public:
122 // virtual functions
123 // NOLINTBEGIN
124 virtual ~GameRenderer() = default;
125 // NOLINTEND
126
127public:
128 // member functions
129 // NOLINTBEGIN
131 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& ci,
132 ::MinecraftGraphics& graphics,
133 ::Bedrock::NotNullNonOwnerPtr<::Gameface::IOffscreenRenderer> gamefaceOffscreenRenderer,
134 ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector> const& frameAnomalyDetector
135 );
136
137 MCNAPI void _checkAndDrawInputUI(::ScreenContext& screenContext);
138
139 MCAPI void createRenderGraph(::mce::RenderContext& renderContext, bool onResume);
140
141 MCNAPI ::ScreenContext makeScreenContext(float a);
142
143 MCNAPI void onAppSuspended();
144
145 MCNAPI void onSubClientRemoved(::IClientInstance const& client);
146
148
149 MCAPI void renderCurrentFrame(float a);
150
151 MCNAPI void renderDebugScreen(::ScreenContext& screenContext, ::IClientInstance& client);
152
153 MCNAPI void setLevel(::Level* level, ::Dimension* dimension);
154
155 MCNAPI void tick();
156 // NOLINTEND
157
158public:
159 // static functions
160 // NOLINTBEGIN
161 MCNAPI static void setClearColor(::IClientInstance& client, ::ScreenContext& screenContext);
162 // NOLINTEND
163
164public:
165 // static variables
166 // NOLINTBEGIN
167 MCNAPI static ::mce::Color& mClearColor();
168
169 MCNAPI static bool& mSplitScreenActive();
170
171 MCNAPI static ::std::string& mVersionString();
172 // NOLINTEND
173
174public:
175 // constructor thunks
176 // NOLINTBEGIN
177 MCNAPI void* $ctor(
178 ::Bedrock::NotNullNonOwnerPtr<::IClientInstance> const& ci,
179 ::MinecraftGraphics& graphics,
180 ::Bedrock::NotNullNonOwnerPtr<::Gameface::IOffscreenRenderer> gamefaceOffscreenRenderer,
181 ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector> const& frameAnomalyDetector
182 );
183 // NOLINTEND
184};
Definition Connector.h:15
Definition CommandListQueue.h:5
Definition Dimension.h:86
Definition FrameAnomalyDetector.h:13
Definition GameRenderer.h:5
static MCAPI ::std::string & mVersionString()
MCAPI GameRenderer(::Bedrock::NotNullNonOwnerPtr<::IClientInstance > const &ci, ::MinecraftGraphics &graphics, ::Bedrock::NotNullNonOwnerPtr<::Gameface::IOffscreenRenderer > gamefaceOffscreenRenderer, ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector > const &frameAnomalyDetector)
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::IClientInstance > const &ci, ::MinecraftGraphics &graphics, ::Bedrock::NotNullNonOwnerPtr<::Gameface::IOffscreenRenderer > gamefaceOffscreenRenderer, ::Bedrock::NotNullNonOwnerPtr<::FrameAnomalyDetector > const &frameAnomalyDetector)
MCAPI void registerPauseManagerCallback(::Bedrock::PubSub::Connector< void(bool)> &connector)
MCAPI void renderDebugScreen(::ScreenContext &screenContext, ::IClientInstance &client)
static MCAPI ::mce::Color & mClearColor()
static MCAPI void setClearColor(::IClientInstance &client, ::ScreenContext &screenContext)
MCAPI void tick()
MCAPI void setLevel(::Level *level, ::Dimension *dimension)
MCAPI void onSubClientRemoved(::IClientInstance const &client)
MCAPI void onAppSuspended()
static MCAPI bool & mSplitScreenActive()
MCAPI void _checkAndDrawInputUI(::ScreenContext &screenContext)
MCAPI::ScreenContext makeScreenContext(float a)
Definition IOffscreenRenderer.h:7
Definition IClientInstance.h:5
Definition IRenderChunkGarbageCollection.h:5
Definition InsideCubeRenderer.h:5
Definition Level.h:255
Definition MinecraftGraphics.h:5
Definition PlayerRenderView.h:5
Definition ScreenContext.h:5
Definition Tessellator.h:5
Definition TickingTextureStage.h:5
Definition Color.h:13
Definition RenderContext.h:7
Definition RenderStage.h:7
Definition FrameRenderObject.h:5
Definition GameRenderer.h:15