3#include "mc/_HeaderOutputPredefine.h"
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"
29 using MCGameFactory = ::brstd::move_only_function<::std::unique_ptr<::IMinecraftGame>()>;
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;
51 virtual ~CommonPlatform();
53 virtual bool updatePlatformInfo() = 0;
55 virtual bool updatePlatformGraphicsInfo() = 0;
57 virtual void issueShutdown();
59 virtual void issueSuspend();
61 virtual void issueResume();
63 virtual void issueBack();
65 virtual void issueLowMemory();
67 virtual void issueFocusLost();
69 virtual void issueFocusGained();
71 virtual void issueInputPaneVisible();
73 virtual void issueInputPaneHidden();
75 virtual void issueSuspendWarning();
77 virtual void issueVisibilityChange(
bool visible);
79 virtual void issueWindowSizeChange(
int width,
int height);
81 virtual void issueDPIChange(
float dpi);
83 virtual void issueOrientationChange(::DisplayOrientation
const& orientation);
85 virtual void feedButtonPress(
int const& button);
87 virtual void feedKeyPress(
char const key);
89 virtual void setTextboxText(::std::string
const&);
91 virtual void setStorageDirectory(::FileStorageDirectory,
bool, ::PropertyBag
const&, ::std::function<
void(
bool)>);
93 virtual ::FileStorageDirectory setInitialStorageDirectory(::FileStorageDirectory);
95 virtual ::FileStorageDirectory getStorageDirectory()
const;
97 virtual bool _preAppCreation(::Bedrock::ActivationArguments
const&) = 0;
99 virtual bool _postAppCreation(::Bedrock::ActivationArguments
const& actArgs) = 0;
101 virtual void _processActivationArguments(::Bedrock::ActivationArguments
const& args) = 0;
103 virtual bool _update(
bool canRender) = 0;
105 virtual bool _isShuttingDown() = 0;
107 virtual bool _isShutdown() = 0;
109 virtual void pushNotificationReceived_Shim(::PushNotificationMessage
const& msg) = 0;
111 virtual void notifyUriListeners_Shim(::ActivationUri
const& uri) = 0;
113 virtual ::std::string getDeviceId_Shim()
const = 0;
119 MCAPI
explicit CommonPlatform(::brstd::move_only_function<::std::unique_ptr<::IMinecraftGame>()> createGame);
121 MCAPI
bool _createApp();
123 MCAPI
void activate(::Bedrock::ActivationArguments
const& actArgs);
125 MCAPI
bool hasInitialized()
const;
127 MCAPI
bool init(::Bedrock::ActivationArguments
const& actArgs);
129 MCAPI
bool startApp(::Bedrock::ActivationArguments
const& actArgs);
131 MCAPI
int update(
bool canRender);
137 MCAPI
void* $ctor(::brstd::move_only_function<::std::unique_ptr<::IMinecraftGame>()> createGame);
149 MCFOLD
void $issueShutdown();
151 MCFOLD
void $issueSuspend();
153 MCFOLD
void $issueResume();
155 MCFOLD
void $issueBack();
157 MCFOLD
void $issueLowMemory();
159 MCFOLD
void $issueFocusLost();
161 MCFOLD
void $issueFocusGained();
163 MCFOLD
void $issueInputPaneVisible();
165 MCFOLD
void $issueInputPaneHidden();
167 MCFOLD
void $issueSuspendWarning();
169 MCFOLD
void $issueVisibilityChange(
bool visible);
171 MCFOLD
void $issueWindowSizeChange(
int width,
int height);
173 MCFOLD
void $issueDPIChange(
float dpi);
175 MCFOLD
void $issueOrientationChange(::DisplayOrientation
const& orientation);
177 MCAPI
void $feedButtonPress(
int const& button);
179 MCAPI
void $feedKeyPress(
char const key);
181 MCFOLD
void $setTextboxText(::std::string
const&);
183 MCFOLD
void $setStorageDirectory(::FileStorageDirectory,
bool, ::PropertyBag
const&, ::std::function<
void(
bool)>);
185 MCFOLD ::FileStorageDirectory $setInitialStorageDirectory(::FileStorageDirectory);
187 MCFOLD ::FileStorageDirectory $getStorageDirectory()
const;
Definition ActivationUri.h:5
Definition ActivationArguments.h:7
Definition IIslandCore.h:12
Definition IIslandManager.h:13
Definition IMinecraftGame.h:5
Definition PropertyBag.h:9
Definition PushNotificationMessage.h:5