LeviLamina
Loading...
Searching...
No Matches
CommonPlatform.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/platform/DisplayOrientation.h"
7#include "mc/deps/core/platform/FileStorageDirectory.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/platform/brstd/move_only_function.h"
10
11// auto generated forward declare list
12// clang-format off
13class ActivationUri;
14class PropertyBag;
16namespace Bedrock { class ActivationArguments; }
17namespace Bedrock { class IIslandCore; }
18namespace Bedrock { class IIslandManager; }
19namespace Bedrock { struct PlatformBuildInfo; }
20namespace Bedrock { struct PlatformRuntimeInfo; }
21class IMinecraftGame;
22// clang-format on
23
24namespace Bedrock {
25
27public:
28 // CommonPlatform inner types define
30
31public:
32 // member variables
33 // NOLINTBEGIN
34 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::PlatformRuntimeInfo>> mPlatformRuntimeInfo;
35 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::PlatformBuildInfo>> mPlatformBuildInfo;
36 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::IIslandManager>> mIslandMgr;
37 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::IIslandCore>> mApp;
38 ::ll::TypedStorage<8, 24, ::Bedrock::NonOwnerPointer<::IMinecraftGame>> mMinecraftGame_Shim;
39 ::ll::TypedStorage<8, 64, ::brstd::move_only_function<::std::unique_ptr<::IMinecraftGame>()>> mCreateGame;
40 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mbQueueRenderParameterSignal;
41 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mHasInitialized;
42 // NOLINTEND
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47#ifdef LL_PLAT_S
48 virtual ~CommonPlatform() = default;
49#else // LL_PLAT_C
50 virtual ~CommonPlatform();
51#endif
52
53 virtual bool updatePlatformInfo() = 0;
54
55 virtual bool updatePlatformGraphicsInfo() = 0;
56
57 virtual void issueShutdown();
58
59 virtual void issueSuspend();
60
61 virtual void issueResume();
62
63 virtual void issueBack();
64
65 virtual void issueLowMemory();
66
67 virtual void issueFocusLost();
68
69 virtual void issueFocusGained();
70
71 virtual void issueInputPaneVisible();
72
73 virtual void issueInputPaneHidden();
74
75 virtual void issueSuspendWarning();
76
77 virtual void issueVisibilityChange(bool visible);
78
79 virtual void issueWindowSizeChange(int width, int height);
80
81 virtual void issueDPIChange(float dpi);
82
83 virtual void issueOrientationChange(::DisplayOrientation const& orientation);
84
85 virtual void feedButtonPress(int const& button);
86
87 virtual void feedKeyPress(char const key);
88
89 virtual void setTextboxText(::std::string const& text);
90
91 virtual void setStorageDirectory(
92 ::FileStorageDirectory dir,
93 bool isCallback,
94 ::PropertyBag const& extraData,
95 ::std::function<void(bool)>
96 );
97
98 virtual ::FileStorageDirectory setInitialStorageDirectory(::FileStorageDirectory dir);
99
100 virtual ::FileStorageDirectory getStorageDirectory() const;
101
102 virtual bool _preAppCreation(::Bedrock::ActivationArguments const&) = 0;
103
104 virtual bool _postAppCreation(::Bedrock::ActivationArguments const& actArgs) = 0;
105
106 virtual void _processActivationArguments(::Bedrock::ActivationArguments const& args) = 0;
107
108 virtual bool _update(bool canRender) = 0;
109
110 virtual bool _isShuttingDown() = 0;
111
112 virtual bool _isShutdown() = 0;
113
114 virtual void pushNotificationReceived_Shim(::PushNotificationMessage const& msg) = 0;
115
116 virtual void notifyUriListeners_Shim(::ActivationUri const& uri) = 0;
117
118 virtual ::std::string getDeviceId_Shim() const = 0;
119 // NOLINTEND
120
121public:
122 // member functions
123 // NOLINTBEGIN
124#ifdef LL_PLAT_C
125 MCAPI bool _createApp();
126
127 MCAPI bool init(::Bedrock::ActivationArguments const& actArgs);
128
129 MCAPI bool startApp(::Bedrock::ActivationArguments const& actArgs);
130
131 MCAPI int update(bool canRender);
132#endif
133 // NOLINTEND
134
135public:
136 // destructor thunk
137 // NOLINTBEGIN
138 MCAPI void $dtor();
139 // NOLINTEND
140
141public:
142 // virtual function thunks
143 // NOLINTBEGIN
144#ifdef LL_PLAT_C
145 MCFOLD void $issueShutdown();
146
147 MCFOLD void $issueSuspend();
148
149 MCFOLD void $issueResume();
150
151 MCFOLD void $issueBack();
152
153 MCFOLD void $issueLowMemory();
154
155 MCFOLD void $issueFocusLost();
156
157 MCFOLD void $issueFocusGained();
158
159 MCFOLD void $issueInputPaneVisible();
160
161 MCFOLD void $issueInputPaneHidden();
162
163 MCFOLD void $issueSuspendWarning();
164
165 MCFOLD void $issueVisibilityChange(bool visible);
166
167 MCFOLD void $issueWindowSizeChange(int width, int height);
168
169 MCFOLD void $issueDPIChange(float dpi);
170
171 MCFOLD void $issueOrientationChange(::DisplayOrientation const& orientation);
172
173 MCAPI void $feedButtonPress(int const& button);
174
175 MCAPI void $feedKeyPress(char const key);
176
177 MCFOLD void $setTextboxText(::std::string const& text);
178
179 MCFOLD void $setStorageDirectory(
180 ::FileStorageDirectory dir,
181 bool isCallback,
182 ::PropertyBag const& extraData,
183 ::std::function<void(bool)>
184 );
185
186 MCFOLD ::FileStorageDirectory $setInitialStorageDirectory(::FileStorageDirectory dir);
187
188 MCFOLD ::FileStorageDirectory $getStorageDirectory() const;
189#endif
190
191
192 // NOLINTEND
193
194public:
195 // vftables
196 // NOLINTBEGIN
197 MCNAPI static void** $vftable();
198 // NOLINTEND
199};
200
201} // namespace Bedrock
Definition ActivationUri.h:5
Definition ActivationArguments.h:7
Definition CommonPlatform.h:26
static MCAPI void ** $vftable()
Definition IIslandCore.h:12
Definition IIslandManager.h:13
Definition IMinecraftGame.h:5
Definition PropertyBag.h:8
Definition PushNotificationMessage.h:5
Definition move_only_function.h:9
Definition PlatformBuildInfo.h:7
Definition PlatformRuntimeInfo.h:7