LeviLamina
Loading...
Searching...
No Matches
AppPlatform.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/application/AppAction.h"
7#include "mc/deps/application/ClipboardFeatureFlags.h"
8#include "mc/deps/application/DeviceSunsetTier.h"
9#include "mc/deps/application/IAppPlatform.h"
10#include "mc/deps/application/LowMemorySeverity.h"
11#include "mc/deps/application/OsVersion.h"
12#include "mc/deps/application/ProcessExecutionState.h"
13#include "mc/deps/application/StoragePermissionResult.h"
14#include "mc/deps/core/NetworkConnectionType.h"
15#include "mc/deps/core/debug/AssertDialogResponse.h"
16#include "mc/deps/core/file/FileAccessType.h"
17#include "mc/deps/core/file/PathBuffer.h"
18#include "mc/deps/core/platform/AppFocusState.h"
19#include "mc/deps/core/platform/AppLifecycleContext.h"
20#include "mc/deps/core/platform/BuildPlatform.h"
21#include "mc/deps/core/platform/FileStorageDirectory.h"
22#include "mc/deps/core/platform/FullscreenMode.h"
23#include "mc/deps/core/platform/OperationMode.h"
24#include "mc/deps/core/platform/PermissionRequestReason.h"
25#include "mc/deps/core/platform/PlatformType.h"
26#include "mc/deps/core/platform/UIScalingRules.h"
27#include "mc/deps/core/resource/ResourceFileSystem.h"
28#include "mc/deps/core/secure_storage/ISecureStorageKeySystem.h"
29#include "mc/deps/core/string/BasicStackString.h"
30#include "mc/deps/core/threading/Async.h"
31#include "mc/deps/core/threading/MPMCQueue.h"
32#include "mc/deps/core/utility/NonOwnerPointer.h"
33#include "mc/deps/core/utility/ServiceRegistrationToken.h"
34#include "mc/deps/core/utility/Subject.h"
35#include "mc/deps/core/utility/UniqueService.h"
36#include "mc/deps/core/utility/pub_sub/Publisher.h"
37#include "mc/deps/core/utility/pub_sub/Subscription.h"
38#include "mc/deps/input/InputMode.h"
39#include "mc/deps/input/PointerType.h"
40#include "mc/platform/Result.h"
41#include "mc/platform/threading/Mutex.h"
42
43// auto generated forward declare list
44// clang-format off
51class IFileAccess;
53class PDFWriter;
54class PropertyBag;
55class SecureStorage;
58class UriListener;
61struct TextBoxSelection;
62namespace Bedrock { class DeviceIdManager; }
63namespace Bedrock { class FilePickerManager; }
64namespace Bedrock { class IApplicationDataStores; }
65namespace Bedrock { class SignalReceiver; }
66namespace Bedrock { struct PlatformBuildInfo; }
67namespace Bedrock { struct PlatformRuntimeInfo; }
68namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
69namespace Core { class FileStorageArea; }
70namespace Core { class LoadTimeProfiler; }
71namespace Core { class Path; }
72namespace Core { class PathView; }
73namespace mce { class UUID; }
74namespace mce { struct Image; }
75class ActivationUri;
79class RectangleArea;
81namespace ApplicationSignal { class ClipboardCopy; }
82namespace ApplicationSignal { class ClipboardPaste; }
83namespace ApplicationSignal { class ClipboardPasteRequest; }
84namespace Bedrock { class CommonPlatform; }
85namespace Social { struct UserCreationData; }
86namespace Webview { class PlatformArguments; }
87// clang-format on
88
89class AppPlatform : public ::IAppPlatform, public ::ISecureStorageKeySystem {
90public:
91 // AppPlatform inner types declare
92 // clang-format off
93 struct ReadMode;
94 // clang-format on
95
96 // AppPlatform inner types define
97 struct ReadMode {
98 public:
99 // member variables
100 // NOLINTBEGIN
102 // NOLINTEND
103
104 public:
105 // prevent constructor by default
106 ReadMode& operator=(ReadMode const&);
107 ReadMode(ReadMode const&);
108 ReadMode();
109 };
110
111 using Listener = ::AppPlatformListener;
112
113public:
114 // member variables
115 // NOLINTBEGIN
116 ::ll::TypedStorage<8, 8, uint64> mFreeMemoryMaximumBytes;
117 ::ll::TypedStorage<1, 1, bool> mRequestedRestart;
118 ::ll::TypedStorage<1, 1, bool> mPointerFocusLost;
119 ::ll::TypedStorage<1, 1, bool> mKeyboardVisible;
120 ::ll::TypedStorage<1, 1, bool> mOnInitUriListenerRegDone;
121 ::ll::TypedStorage<8, 16, ::std::multimap<float, ::AppPlatformListener*>> mListeners;
122 ::ll::TypedStorage<8, 104, ::Core::Subject<::NetworkChangeObserver, ::Bedrock::Threading::Mutex>>
123 mNetworkChangeSubject;
124 ::ll::TypedStorage<1, 1, ::NetworkConnectionType> mNetworkConnectionType;
125#ifdef LL_PLAT_C
126 ::ll::TypedStorage<8, 8, void*> mHWND;
127 ::ll::TypedStorage<8, 64, ::std::unordered_multimap<::std::string, ::UriListener*>> mUriListeners;
128#endif
129 ::ll::TypedStorage<8, 64, ::std::function<void(::StoragePermissionResult)>> mStoragePermissionRequestResultCallback;
130 ::ll::TypedStorage<1, 4, ::AppLifecycleContext> mAppLifecycleContext;
131 ::ll::TypedStorage<4, 4, ::AppFocusState> mFocusState;
132 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mShareLock;
133 ::ll::TypedStorage<8, 32, ::std::string> mShareTitle;
134 ::ll::TypedStorage<8, 32, ::std::string> mShareText;
135 ::ll::TypedStorage<8, 32, ::std::string> mShareUri;
136 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IFileAccess>> mDefaultFileAccess;
137 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IFileAccess>> mPackageFileAccess;
138 ::ll::TypedStorage<8, 8, uint64> mMaximumMemoryUsage;
139 ::ll::TypedStorage<8, 32, ::std::string> mLocale;
140 ::ll::TypedStorage<8, 8, double> mActiveSeconds;
141 ::ll::TypedStorage<8, 8, double> mLastActiveTime;
142 ::ll::TypedStorage<1, 1, bool> mAppIsActive;
143 ::ll::TypedStorage<8, 40, ::std::optional<::std::string>> mDeviceTier;
144 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::AppPlatformNetworkSettings>> mAppPlatformNetworkSettings;
145 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mTerminating;
146 ::ll::TypedStorage<1, 1, ::std::atomic<bool>> mSuspended;
147 ::ll::TypedStorage<4, 4, int> mForcedDpi;
148 ::ll::TypedStorage<4, 4, ::UIScalingRules> mForcedUIScalingRules;
149 ::ll::TypedStorage<1, 1, bool> mForceUIScalingRules;
150 ::ll::TypedStorage<1, 1, bool> mShowLostFocusToasts;
151 ::ll::TypedStorage<1, 1, bool> mAllowLostFocusToasts;
152 ::ll::TypedStorage<1, 1, bool> mAreThreadsFrozen;
153 ::ll::TypedStorage<1, 1, bool> mIsLowMemoryDevice;
154 ::ll::TypedStorage<1, 1, bool> mIsLowPhysicalMemoryDevice;
155 ::ll::TypedStorage<1, 1, bool> mIsUserStorageInitialized;
156 ::ll::TypedStorage<8, 32, ::Core::PathBuffer<::std::string>> mScratchPath;
157 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mScratchPathMutex;
158 ::ll::TypedStorage<8, 32, ::std::string> mLastDeviceSessionId;
159 ::ll::TypedStorage<8, 80, ::std::recursive_mutex> mListenerLock;
160 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::SignalReceiver>> mSignalRcvr;
161 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::PlatformRuntimeInfo>> mPlatformRuntimeInfo;
162 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::Bedrock::PlatformBuildInfo>> mPlatformBuildInfo;
163 ::ll::TypedStorage<8, 16, ::Bedrock::UniqueService<::Core::LoadTimeProfiler>> mProfiler;
164 ::ll::TypedStorage<8, 16, ::Bedrock::UniqueService<::Bedrock::IApplicationDataStores>> mApplicationDataStores;
165 ::ll::TypedStorage<8, 16, ::Bedrock::UniqueService<::Bedrock::DeviceIdManager>> mDeviceIdManager;
166 ::ll::TypedStorage<8, 16, ::Bedrock::UniqueService<::Bedrock::FilePickerManager>> mFilePickerManager;
167 ::ll::TypedStorage<8, 8, ::ServiceRegistrationToken<::AppPlatform>> mAppPlatformServiceRegistrationToken;
168 ::ll::TypedStorage<4, 4, uint> mCPUBoostCounter;
169 ::ll::TypedStorage<8, 16, ::Bedrock::PubSub::Subscription> mLoadTimerOptionSubscription;
170 ::ll::TypedStorage<
171 8,
172 8,
173 ::std::unique_ptr<
175 mOnLowMemory;
176 ::ll::TypedStorage<8, 8, int64> mCurrentMemorySeverityIdx;
177 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::HardwareMemoryTierUtil>> mHardwareMemoryTierUtil;
178#ifdef LL_PLAT_C
179 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::ThrottledFileWriteManager>> mThrottledFileWriteManager;
180#endif
181 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IAppPlatformImpl>>> mImpl;
182 // NOLINTEND
183
184public:
185 // prevent constructor by default
186 AppPlatform();
187
188public:
189 // virtual functions
190 // NOLINTBEGIN
191 virtual ~AppPlatform() /*override*/;
192
193 virtual void initialize();
194
195 virtual void teardown();
196
197 virtual void initAppPlatformNetworkSettings() /*override*/;
198
199 virtual uint64 getHighPerformanceThreadsCount() const;
200
201 virtual uint64 getTotalHardwareThreadsCount() const;
202
203 virtual void initializeGraphicsDeviceTier();
204
205 virtual void addListener(::AppPlatformListener* l, float priority);
206
207 virtual void removeListener(::AppPlatformListener* l);
208
209 virtual ::ProcessExecutionState getProcessExecutionState() const;
210
211 virtual void restartApp(bool restart);
212
213 virtual bool restartRequested() /*override*/;
214
215 virtual ::Core::PathBuffer<::std::string> getPackagePath() const = 0;
216
217 virtual int const numberOfThrottledTreatmentPacksToImportPerMinute() const /*override*/;
218
219 virtual bool const areTreatmentPacksThrottled() const /*override*/;
220
221 virtual ::HardwareMemoryTierUtil const& getHardwareMemoryTierUtil() const /*override*/;
222
223#ifdef LL_PLAT_C
224 virtual ::Core::PathBuffer<::std::string> getDataUrl() const = 0;
225
226 virtual void loadPNG(::mce::Image& out, ::Core::Path const& filename);
227
228 virtual void loadTGA(::mce::Image& out, ::Core::Path const& filename);
229
230 virtual void loadJPEG(::mce::Image& out, ::Core::Path const& filename);
231
232 virtual int getKeyFromKeyCode(int, int, int);
233
234 virtual void textEditComponentGainedFocus(
235 ::std::string const& currentText,
236 int maxLength,
237 bool limitInput,
238 bool numbersOnly,
239 bool isMultiline
240 );
241
242 virtual void textEditComponentLostFocus();
243
244 virtual void showKeyboard(
245 ::std::string const& currentText,
246 int maxLength,
247 bool limitInput,
248 bool numbersOnly,
249 bool isMultiline,
250 int const controllerId,
251 ::glm::vec2 const& position,
252 float controlHeight,
253 ::InputMode inputMode
254 );
255
256 virtual void hideKeyboard();
257
258 virtual bool blankLineDismissesChat() const;
259
260 virtual bool signWrapsTextEntry() const;
261
262 virtual bool isFullScreenKeyboard() const;
263
264 virtual bool actionSuspendsApp(::AppAction) const;
265
266 virtual float getKeyboardHeight() const;
267
268 virtual bool refocusMouse(bool lostMouse, bool oldMouseGrabbed);
269
270 virtual void setMousePointerType(::Bedrock::Input::PointerType pointerType);
271
272 virtual void hideMousePointer();
273
274 virtual void showMousePointer();
275
276 virtual void postInteractiveSignIn();
277
278 virtual bool useHardwareMouse();
279
280 virtual void provideHardwareMouseImageData(::mce::Image const&);
281
282 virtual bool hasCustomSoftwareCursor() const;
283
284 virtual ::Core::PathBuffer<::std::string> getCustomSoftwareCursorAsset() const;
285
286 virtual bool getPointerFocus();
287
288 virtual void setPointerFocus(bool lostFocus);
289
290 virtual bool isInvertScrollEnabled() const;
291
292 virtual void toggleSimulateTouchWithMouse();
293
294 virtual void _fireAppSuspended();
295
296 virtual void _fireAppResumed();
297
298 virtual void _fireAppFocusLost();
299
300 virtual void _fireAppFocusGained();
301
302 virtual void _fireResizeBegin();
303
304 virtual void _fireResizeEnd();
305
306 virtual void _fireDeviceLost();
307
308 virtual void _fireSurfaceCreated();
309
310 virtual void _fireSurfaceDestroyed();
311
312 virtual void _fireAppConfigurationChanged();
313
314 virtual void _fireAppPaused();
315
316 virtual void _fireAppUnpaused();
317
318 virtual void swapBuffers() = 0;
319
320 virtual void discardBackbuffer();
321
322 virtual ::std::string getSystemLocale() const = 0;
323
324 virtual ::std::string getTermsOfUseHyperlink() const;
325
326 virtual void pickImage(::std::shared_ptr<::ImagePickingCallback> callback) = 0;
327
328 virtual void pickFile(::std::shared_ptr<::FilePickerSettings> settings);
329
330 virtual bool supportsAlbumExport() const;
331
332 virtual bool supportsPDFExport() const;
333
334 virtual ::std::shared_ptr<::PDFWriter> createPlatformPDFWriter();
335
336 virtual void shareFile(::Core::Path const&, ::std::function<void(bool)>);
337
338 virtual bool hasHardwareBackButton();
339
340 virtual bool supportsMSAA() const;
341
342 virtual bool supports3rdPartyServers() const;
343
344 virtual bool supportsManualAddedServers() const;
345
346 virtual bool supportsFilePicking() const;
347
348 virtual bool supportsTouch() const;
349
350 virtual bool supportsKeyboardMouse() const;
351
352 virtual bool supportsGamepad() const;
353
354 virtual ::ClipboardFeatureFlags getClipboardFeatures() const;
355
356 virtual bool supportsClipboardSet() const;
357
358 virtual bool supportsClipboardGet() const;
359
360 virtual bool supportsClipboardAsyncGet() const;
361
362 virtual void setClipboard(::std::string const& value) const;
363
364 virtual ::std::wstring getClipboardText() const;
365
366 virtual void getClipboardTextAsync(::std::function<void(::std::string const&)>) const;
367
368 virtual bool supportsShare() const;
369
370 virtual void share() const;
371
372 virtual bool allowSplitScreen();
373
374 virtual float splitScreenRenderDistScalar(uint numPlayers);
375
376 virtual float uiOpenRenderDistScalar();
377
378 virtual void pushNotificationReceived(::PushNotificationMessage const& msg);
379
380 virtual void openStoragePermissionRequest(
381 ::PermissionRequestReason,
382 ::std::function<void(::StoragePermissionResult)> resultCallback
383 );
384
385 virtual void setStorageDirectory(
386 ::FileStorageDirectory dir,
387 bool isCallback,
388 ::PropertyBag const& extraData,
389 ::std::function<void(bool)> onComplete
390 );
391
392 virtual ::FileStorageDirectory setInitialStorageDirectory(::FileStorageDirectory);
393
394 virtual ::FileStorageDirectory getStorageDirectory() const;
395
396 virtual void setStorageDirectoryChangeDenied(::std::function<void(::FileStorageDirectory)>);
397
398 virtual ::Bedrock::PubSub::Subscription
399 addStorageDirectoryChangedSubscriber(::std::function<void(::Core::Path const&)> callback);
400
401 virtual void runStoragePermissionResultCallback(::StoragePermissionResult result);
402
403 virtual bool hasExternalStoragePermission();
404
405 virtual bool delayOptionSaveUntilCloudSync() const;
406
407 virtual void updateTextEditBoxPosition(
408 ::RectangleArea const& controlPosition,
409 ::RectangleArea const& selectionPosition,
410 float const guiScale
411 );
412
413 virtual ::BatteryMonitorInterface const& getBatteryMonitorInterface() const;
414
415 virtual ::ThermalMonitorInterface const& getThermalMonitorInterface() const;
416
417 virtual void trialCorrelationStart();
418
419 virtual void setAllowLostFocusToasts(bool allowLostFocusToasts);
420
421 virtual void setShowLostFocusToasts(bool showLostFocusToasts);
422
423 virtual bool getShowLostFocusToasts();
424
425 virtual double getTimeSFromProcessStart() const = 0;
426
427#endif
428 virtual ::Bedrock::Threading::Async<::IntegrityTokenResult> requestIntegrityToken(::std::string const& nonceToken);
429
430 virtual void setIntegrityToken(::std::string const& integrityToken);
431
432 virtual void setIntegrityTokenErrorMessage(::std::string const& errorMessage);
433
434 virtual bool supportsInPackageRecursion() const;
435
436 virtual bool supportsXboxLiveAchievements() const;
437
438 virtual void hideSplashScreen();
439
440 virtual ::std::string getFeedbackBugsLink() const;
441
442 virtual ::std::string getFeedbackHelpLink() const;
443
444 virtual auto getModalErrorMessageProc() -> ::AssertDialogResponse (*)(::std::string const&, ::std::string const&);
445
446 virtual void updateLocalization(::std::string const&);
447
448 virtual void setSleepEnabled(bool);
449
450 virtual ::Core::PathBuffer<::std::string> getScratchPath();
451
452 virtual ::Core::PathBuffer<::std::string> getInternalPackStoragePath() const;
453
454 virtual ::Core::PathBuffer<::std::string> getSettingsPath();
455
456 virtual ::Core::PathBuffer<::std::string> getLoggingPath() const /*override*/;
457
458 virtual ::Core::PathBuffer<::std::string> getPackagedShaderCachePath();
459
460 virtual ::Core::PathBuffer<::std::string> getShaderCachePath();
461
462 virtual ::Core::PathBuffer<::std::string> getUserdataPathForLevels() const;
463
464 virtual ::Core::PathBuffer<::std::string> getCacheStoragePath();
465
466 virtual ::Core::PathBuffer<::std::string> getOnDiskScratchPath();
467
468 virtual ::Core::PathBuffer<::std::string> getOnDiskPackScratchPath();
469
470 virtual ::Core::PathBuffer<::std::string> getLevelInfoCachePath() const;
471
472 virtual ::Core::PathBuffer<::std::string> getCatalogSearchScratchPath();
473
474 virtual ::Core::PathBuffer<::std::string> getUserStorageRootPath() const;
475
476 virtual ::std::shared_ptr<::Core::FileStorageArea> getOrCreateStorageAreaForUser(::Social::UserCreationData const&);
477
478 virtual bool hasSeparatedStorageAreasForContentAcquisition() const;
479
480 virtual uint64 getOptimalLDBSize();
481
482 virtual int getMaxLDBFilesOpen() const;
483
484 virtual bool getDisableLDBSeekCompactions() const;
485
486 virtual void showDialog(int);
487
488 virtual void createUserInput();
489
490 virtual void createUserInput(int dialogId);
491
492 virtual int getUserInputStatus();
493
494 virtual ::std::vector<::std::string> getUserInput();
495
496 virtual ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> getFileAccess(::ResourceFileSystem fileSystem);
497
498 virtual ::Core::PathBuffer<::std::string> copyImportFileToTempFolder(::Core::Path const& filePath);
499
500 virtual void registerFileForCollectionWithCrashDump(::Core::Path const&);
501
502 virtual void registerExperimentsActiveCrashDump(::std::vector<::std::string> const& activeExperiments) const;
503
504 virtual int getScreenWidth() const;
505
506 virtual int getScreenHeight() const;
507
508 virtual int getDisplayWidth();
509
510 virtual int getDisplayHeight();
511
512#ifdef LL_PLAT_S
513 virtual void setScreenSize(int, int);
514#else // LL_PLAT_C
515 virtual void setScreenSize(int width, int height);
516#endif
517
518 virtual void setWindowSize(int width, int height);
519
520#ifdef LL_PLAT_S
521 virtual void setWindowText(::std::string const& title);
522#else // LL_PLAT_C
523 virtual void setWindowText(::std::string const&);
524#endif
525
526 virtual ::std::optional<::OperationMode> getOperationMode() const;
527
528 virtual bool allowContentLogWriteToDisk();
529
530 virtual uint getMaxClubsRequests() const;
531
532 virtual void queueForMainThread_DEPRECATED(::std::function<void()> callback) = 0;
533
534 virtual ::MPMCQueue<::std::function<void()>>& getMainThreadQueue() = 0;
535
536 virtual bool supportsLaunchingLegacyVersion() const;
537
538 virtual void launchLegacyVersion();
539
540 virtual bool canManageLegacyData() const;
541
542 virtual bool supportsDayOneExperience() const;
543
544 virtual bool canMigrateWorldData() const;
545
546 virtual bool isContentAutoUpdateAllowed() const;
547
548 virtual int getMaxSimultaneousDownloads() const;
549
550 virtual uint getMaxSimultaneousServiceRequests() const;
551
552 virtual bool isDownloadAndImportBlocking() const;
553
554 virtual bool isDownloadBuffered() const;
555
556 virtual bool supportsAutoSaveOnDBCompaction() const;
557
558 virtual ::std::string getTextBoxBackend() const = 0;
559
560 virtual void setTextBoxBackend(::std::string const& newText) = 0;
561
562 virtual int getCaretPosition() const = 0;
563
564 virtual void setCaretPosition(int position) = 0;
565
566 virtual void setTextBoxSelection(::TextBoxSelection selection);
567
568 virtual bool supportsVibration() const;
569
570 virtual void vibrate(int);
571
572 virtual ::Core::PathBuffer<::std::string> getAssetFileFullPath(::Core::Path const& filename);
573
574 virtual ::Bedrock::Result<::std::string> _readAssetFileInternal(::Core::PathView filename);
575
576 virtual bool hasAssetFile(::Core::Path const& filename);
577
578 virtual bool copyAssetFile(::Core::Path const& filename, ::Core::Path const& destination);
579
580 virtual ::std::set<::Core::PathBuffer<::std::string>>
581 listAssetFilesIn(::Core::Path const& path, ::std::string const& extension) const;
582
583 virtual bool supportsClientUpdate() const;
584
585 virtual ::std::string getClientUpdateUrl() const;
586
587 virtual int checkLicense();
588
589 virtual bool hasBuyButtonWhenInvalidLicense();
590
591 virtual bool isNetworkAvailable() const /*override*/;
592
593 virtual bool isLANAvailable() const /*override*/;
594
595 virtual bool isNetworkEnabled(bool) const /*override*/;
596
597 virtual void setNetworkAllowed(bool);
598
599 virtual bool isNetworkAllowed() const;
600
601 virtual bool isInternetAvailable() const /*override*/;
602
603 virtual ::std::optional<bool> isOnWifiConnectionTelemetryValue();
604
605 virtual ::NetworkConnectionType getNetworkConnectionType();
606
607 virtual void setNetworkConnectionType(::NetworkConnectionType connectionType);
608
609 virtual int getDefaultNetworkMaxPlayers() const /*override*/;
610
611 virtual bool multiplayerRequiresPremiumAccess() const /*override*/;
612
613 virtual bool multiplayerRequiresUGCEnabled() const /*override*/;
614
615 virtual bool isCrossPlatformToggleVisible() const;
616
617 virtual bool isTelemetryAllowed();
618
619 virtual bool isTrialWorldsTransferToFullGameAllowed() const;
620
621 virtual void buyGame();
622
623 virtual void finish();
624
625 virtual bool canLaunchUri(::std::string const& uri);
626
627 virtual void launchUri(::std::string const& uri);
628
629 virtual void launchSettings();
630
631 virtual bool useXboxControlHelpers() const;
632
633 virtual ::PlatformType getPlatformType() const;
634
635 virtual bool isCentennial() const;
636
637 virtual ::std::string getPackageFamilyName() const;
638
639 virtual ::BuildPlatform getBuildPlatform() const /*override*/;
640
641 virtual ::std::string getSubPlatformString() const = 0;
642
643 virtual int getNumberOfParticleFramesToInterpolate() const;
644
645 virtual int getDpi() const;
646
647 virtual void setDpi(int dpi);
648
649 virtual ::UIScalingRules getUIScalingRules() const;
650
651 virtual void setUIScalingRules(::UIScalingRules UIScalingRules);
652
653 virtual bool hasIDEProfiler();
654
655 virtual ::std::string getPlatformStringVar(int);
656
657 virtual ::std::string getApplicationId() const = 0;
658
659 virtual uint64 getFreeMemory() const = 0;
660
661 virtual uint64 getMemoryLimit() const = 0;
662
663 virtual uint64 getUsedMemory() = 0;
664
665 virtual uint64 getTotalPhysicalMemory() const = 0;
666
667 virtual uint64 getMaximumUsedMemory();
668
669 virtual uint64 getLowMemoryEventThreshold(::LowMemorySeverity) const;
670
671 virtual uint64 getLowMemoryEventRecoveryThreshold(::LowMemorySeverity severity) const;
672
673 virtual uint64 getLowPhysicalMemoryThreshold() const /*override*/;
674
675 virtual void calculateIfLowMemoryDevice();
676
677 virtual bool isLowMemoryDevice() const /*override*/;
678
679 virtual bool isLowPhysicalMemoryDevice() const /*override*/;
680
681 virtual uint64 getTextureMemoryBudget() const;
682
683 virtual uint64 getSingleMipDefaultMemoryBudget() const;
684
685 virtual void readyForApplicationExitInfo() const;
686
687 virtual ::DeviceSunsetTier getDeviceSunsetTier() const;
688
689 virtual int getMaxSimRadiusInChunks() const;
690
691 virtual ::std::vector<::std::string> getBroadcastAddresses();
692
693 virtual ::std::vector<::std::string> getIPAddresses();
694
695 virtual bool useAppPlatformForTelemetryIPAddress();
696
697 virtual ::std::string getModelName();
698
699 virtual void updateBootstrapSettingsFromTreatmentsAsync();
700
701#ifdef LL_PLAT_C
702 virtual ::std::string getDeviceId() const /*override*/;
703
704 virtual ::std::string createUUID() = 0;
705
706 virtual bool isTablet() const = 0;
707
708 virtual void registerUriListener(::UriListener& listener);
709
710 virtual void registerUriListener(::std::string const& verb, ::UriListener& listener);
711
712 virtual void unregisterUriListener(::UriListener const& listener);
713
714 virtual void notifyUriListeners(::ActivationUri const& uri);
715
716 virtual void notifyUriListenerRegistrationDone();
717
718#endif
719 virtual void setFullscreenMode(::FullscreenMode const fullscreenMode);
720
721 virtual bool isNetworkThrottled() const;
722
723 virtual bool isLANAllowed() const /*override*/;
724
725 virtual bool doesLANRequireMultiplayerRestrictions() const;
726
727 virtual void collectGraphicsHardwareDetails();
728
729 virtual ::std::string getEdition() const;
730
731 virtual ::OsVersion getOSVersion() const;
732
733 virtual void setThreadsFrozen(bool frozen);
734
735 virtual bool areThreadsFrozen() const;
736
737 virtual float getDefaultSafeZoneScaleX() const;
738
739 virtual float getDefaultSafeZoneScaleY() const;
740
741 virtual float getDefaultSafeZoneScaleAll() const;
742
743 virtual float getDefaultScreenPositionX() const;
744
745 virtual float getDefaultScreenPositionY() const;
746
747 virtual bool isQuitCapable() const;
748
749 virtual bool requireControllerAtStartup() const;
750
751 virtual bool notifyControllerConnectionStateChange() const;
752
753 virtual bool platformRequiresControllerApplet() const;
754
755 virtual ::InputMode getDefaultInputMode() const;
756
757 virtual ::AppFocusState getFocusState();
758
759 virtual ::AppLifecycleContext& getAppLifecycleContext();
760
761 virtual uint64 calculateAvailableDiskFreeSpace(::Core::Path const& rootPath) = 0;
762
763 virtual bool supportsFliteTTS() const;
764
765 virtual ::std::unique_ptr<::SecureStorage> getSecureStorage();
766
767 virtual ::SecureStorageKey getSecureStorageKey(::std::string const&) /*override*/;
768
769 virtual void setSecureStorageKey(::std::string const&, ::SecureStorageKey const&) /*override*/;
770
771 virtual bool devHotReloadRenderResources() const;
772
773 virtual bool shouldPauseDownloadsWhenEnterGame() const;
774
775 virtual bool compareAppReceiptToLocalReceipt(::std::string const&);
776
777 virtual ::mce::UUID const& getThirdPartyPackUUID() const;
778
779 virtual ::mce::UUID const& getPlatformBetaPackUUID() const;
780
781 virtual bool saveTreatmentPacksAsZips() const;
782
783 virtual bool saveEncryptedPacksAsZips() const;
784
785 virtual bool saveEncryptedWorldTemplatePacksAsZips() const;
786
787 virtual bool saveEncryptedPersonaPacksAsZips() const;
788
789 virtual bool allowsResourcePackDevelopment() const;
790
791 virtual bool supportsLegacySinglePremiumCacheDirectory() const;
792
793 virtual bool supportsWorldShare() const;
794
795 virtual bool hasJournalingFilesystem() const;
796
797 virtual bool isAutoCompactionEnabled() const;
798
799 virtual ::std::chrono::nanoseconds getLevelSaveInterval() const;
800
801 virtual ::std::chrono::nanoseconds getOptionsSaveInterval() const;
802
803 virtual bool hasPlatformSpecificInvites() const /*override*/;
804
805 virtual bool usePlatformProfilePicturesOnly() const;
806
807 virtual bool allowBetaXblSignIn() const;
808
809 virtual bool requiresXboxLiveSigninToPlay() const;
810
811 virtual bool requiresLiveGoldForMultiplayer() const;
812
813 virtual bool shouldRegisterForXboxLiveNotifications() const;
814
815 virtual bool isRealmsEnabled() const /*override*/;
816
817 virtual bool minimizeBackgroundDownloads() const;
818
819 virtual bool requiresAutoSaveIconExplanationPopup() const;
820
821 virtual ::IPlatformScreenshots& getPlatformScreenshots();
822
823 virtual uint maxFileDataRequestConcurrency() const;
824
825 virtual void goToExternalConsumablesStoreListing() const /*override*/;
826
827 virtual float getStoreNetworkFailureTimeout() const;
828
829 virtual ::std::shared_ptr<::Core::FileStorageArea>
830 createLoggingStorageArea(::Core::FileAccessType fileAccessType, ::Core::PathView loggingPath);
831
832 virtual void handlePlatformSpecificCommerceError(uint error);
833
834 virtual bool isEduMode() const;
835
836 virtual bool importAsFlatFile() const;
837
838 virtual bool isWebviewSupported() const;
839
840#ifdef LL_PLAT_S
841 virtual ::std::shared_ptr<::WebviewInterface> createWebview(::Webview::PlatformArguments&& args) const;
842#else // LL_PLAT_C
843 virtual ::std::shared_ptr<::WebviewInterface> createWebview(::Webview::PlatformArguments&&) const;
844#endif
845
846 virtual bool canAppSelfTerminate() const = 0;
847
848 virtual bool getPlatformTTSExists() const;
849
850 virtual bool getPlatformTTSEnabled() const;
851
852 virtual ::std::variant<::HWND__*, ::std::monostate> getRenderSurfaceParameters() const;
853
854 virtual bool shouldRemoveGraphicsDeviceOnAppTermination() const;
855
856 virtual bool isJoinableViaExternalServers() const;
857
858 virtual void onPrimaryUserNetworkReady();
859
860 virtual bool isDisplayInitialized() const;
861
862 virtual bool usesAsyncOptionSaving() const;
863
864 virtual void showPlatformStoreIcon(bool shouldShow);
865
866 virtual void showPlatformEmptyStoreDialog(::std::function<void(bool)>&& callback) /*override*/;
867
868#ifdef LL_PLAT_C
869 virtual void showXboxLiveUserSettings();
870
871#endif
872 virtual void initializeGameStreaming();
873
874 virtual void notifyNetworkConfigurationChanged();
875
876 virtual void setKeepScreenOnFlag(bool);
877
878 virtual void initializeMulticast() const;
879
880 virtual void requestMulticastReceivePermission();
881
882 virtual bool hasMulticastReceivePermission() const;
883
884 virtual void releaseMulticastReceivePermission() const;
885
886 virtual void onMinecraftGameInitComplete();
887
888 virtual void onFullGameUnlock();
889
890 virtual bool is24HourTimeFormat() const;
891
892 virtual ::Bedrock::Threading::Async<bool> showOSUserDialog(::std::string, ::std::string, ::std::string);
893
894#ifdef LL_PLAT_C
895 virtual ::Bedrock::NotNullNonOwnerPtr<::ThrottledFileWriteManager> getThrottledFileWriteManager() const;
896
897#endif
898 virtual ::Core::PathBuffer<::std::string> _getCurrentStoragePath() const = 0;
899
900 virtual ::Core::PathBuffer<::std::string> _getExternalStoragePath() const = 0;
901
902 virtual ::Core::PathBuffer<::std::string> _getInternalStoragePath() const = 0;
903
904 virtual ::Core::PathBuffer<::std::string> _getUserdataPath() const = 0;
905
906 virtual ::Core::PathBuffer<::std::string> _getSharedDataPath() const = 0;
907
908#ifdef LL_PLAT_C
909 virtual void _notifyUriListeners(::ActivationUri const& uri, bool ignoreVerb);
910
911#endif
912 virtual bool _tryEnableCPUBoost();
913
914 virtual void _disableCPUBoost();
915
916 virtual ::Bedrock::CommonPlatform* getPlatformShim() const;
917
918 virtual void _initializeFileStorageAreas();
919
920 virtual void _teardownFileStorageAreas();
921
922 virtual int getPlatformDpi() const;
923
924 virtual ::UIScalingRules getPlatformUIScalingRules() const;
925
926 virtual ::Core::PathBuffer<::std::string> getPlatformTempPath() const = 0;
927
928 virtual void _onInitialize();
929
930 virtual void _onTeardown();
931 // NOLINTEND
932
933public:
934 // member functions
935 // NOLINTBEGIN
936 MCAPI AppPlatform(bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
937
938#ifdef LL_PLAT_C
939 MCAPI void _clipboardCopyHandler(::ApplicationSignal::ClipboardCopy const& signal);
940
941 MCAPI void _clipboardPasteHandler(::ApplicationSignal::ClipboardPaste const& signal);
942
943 MCAPI void _clipboardPasteRequestHandler(::ApplicationSignal::ClipboardPasteRequest const& signal);
944#endif
945
946#ifdef LL_PLAT_S
947 MCAPI void _fireAppTerminated();
948
949 MCAPI void _terminateListeners();
950#endif
951
952#ifdef LL_PLAT_C
953 MCAPI void checkAndTriggerOnLowMemory();
954
955 MCAPI ::std::string getDeviceIdWarning() const;
956#endif
957
958 MCAPI ::std::string getGraphicsDeviceTier() const;
959
960 MCAPI ::std::optional<::std::locale> getLocaleForDateTimeFormatting() const;
961
962#ifdef LL_PLAT_C
963 MCAPI ::std::string getShareText() const;
964
965 MCAPI ::std::string getShareTitle() const;
966
967 MCAPI ::std::string getShareUri() const;
968
969 MCAPI double getTotalActiveSeconds();
970
971 MCAPI void loadImage(::mce::Image& out, ::Core::Path const& filename);
972#endif
973
974 MCAPI ::Bedrock::Result<::std::string>
975 readAssetFile(::Core::PathView filename, ::AppPlatform::ReadMode const& readMode);
976
977#ifdef LL_PLAT_C
978 MCAPI bool requiresNetworkOutageMessaging() const;
979
980 MCAPI void setShareData(::std::string shareTitle, ::std::string shareText, ::std::string shareUri);
981
982 MCAPI void setShareMetaData(::std::string const& shareTitle, ::std::string const& shareText);
983#endif
984 // NOLINTEND
985
986public:
987 // static functions
988 // NOLINTBEGIN
989#ifdef LL_PLAT_S
990 MCAPI static ::Bedrock::Result<::std::string> _readAssetFileGeneric(::Core::PathView filename);
991#endif
992
993#ifdef LL_PLAT_C
994 MCAPI static void imGuiAddInputChar(ushort c);
995
996 MCAPI static bool mouseInputHandledByImGui();
997
998 MCAPI static bool updateImGuiKeyboard(uchar param, bool isDown);
999
1000 MCAPI static void updateImGuiMouseButton(uchar button, bool isDown);
1001
1002 MCAPI static void updateImGuiMousePosition(float x, float y);
1003
1004 MCAPI static void updateImGuiMouseScrollBar(float value);
1005#endif
1006 // NOLINTEND
1007
1008public:
1009 // static variables
1010 // NOLINTBEGIN
1011 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& HOME_PATH();
1012
1013 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& LOG_PATH();
1014
1015 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& SETTINGS_PATH();
1016
1017 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& SHADERCACHE_PATH();
1018
1019#ifdef LL_PLAT_C
1020 MCAPI static bool& mIsInitialized();
1021
1022 MCAPI static ::ActivationUri& mPendingProtocolActivation();
1023
1024 MCAPI static ::Bedrock::Threading::Mutex& mProtocolMutex();
1025#endif
1026 // NOLINTEND
1027
1028public:
1029 // constructor thunks
1030 // NOLINTBEGIN
1031 MCAPI void* $ctor(bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
1032 // NOLINTEND
1033
1034public:
1035 // destructor thunk
1036 // NOLINTBEGIN
1037 MCAPI void $dtor();
1038 // NOLINTEND
1039
1040public:
1041 // virtual function thunks
1042 // NOLINTBEGIN
1043 MCAPI void $initialize();
1044
1045 MCAPI void $teardown();
1046
1047 MCAPI void $initAppPlatformNetworkSettings();
1048
1049 MCAPI uint64 $getHighPerformanceThreadsCount() const;
1050
1051 MCAPI uint64 $getTotalHardwareThreadsCount() const;
1052
1053 MCFOLD void $initializeGraphicsDeviceTier();
1054
1055 MCAPI void $addListener(::AppPlatformListener* l, float priority);
1056
1057 MCAPI void $removeListener(::AppPlatformListener* l);
1058
1059 MCAPI ::ProcessExecutionState $getProcessExecutionState() const;
1060
1061 MCAPI void $restartApp(bool restart);
1062
1063 MCAPI bool $restartRequested();
1064
1065 MCFOLD int const $numberOfThrottledTreatmentPacksToImportPerMinute() const;
1066
1067 MCFOLD bool const $areTreatmentPacksThrottled() const;
1068
1069 MCAPI ::HardwareMemoryTierUtil const& $getHardwareMemoryTierUtil() const;
1070
1071 MCAPI ::Bedrock::Threading::Async<::IntegrityTokenResult> $requestIntegrityToken(::std::string const& nonceToken);
1072
1073 MCFOLD void $setIntegrityToken(::std::string const& integrityToken);
1074
1075 MCFOLD void $setIntegrityTokenErrorMessage(::std::string const& errorMessage);
1076
1077 MCFOLD bool $supportsInPackageRecursion() const;
1078
1079 MCFOLD bool $supportsXboxLiveAchievements() const;
1080
1081 MCFOLD void $hideSplashScreen();
1082
1083 MCAPI ::std::string $getFeedbackBugsLink() const;
1084
1085 MCAPI ::std::string $getFeedbackHelpLink() const;
1086
1087 MCAPI auto $getModalErrorMessageProc() -> ::AssertDialogResponse (*)(::std::string const&, ::std::string const&);
1088
1089 MCFOLD void $updateLocalization(::std::string const&);
1090
1091 MCFOLD void $setSleepEnabled(bool);
1092
1093 MCAPI ::Core::PathBuffer<::std::string> $getScratchPath();
1094
1095 MCAPI ::Core::PathBuffer<::std::string> $getInternalPackStoragePath() const;
1096
1097 MCAPI ::Core::PathBuffer<::std::string> $getSettingsPath();
1098
1099 MCFOLD ::Core::PathBuffer<::std::string> $getLoggingPath() const;
1100
1101 MCFOLD ::Core::PathBuffer<::std::string> $getPackagedShaderCachePath();
1102
1103 MCAPI ::Core::PathBuffer<::std::string> $getShaderCachePath();
1104
1105 MCFOLD ::Core::PathBuffer<::std::string> $getUserdataPathForLevels() const;
1106
1107 MCFOLD ::Core::PathBuffer<::std::string> $getCacheStoragePath();
1108
1109 MCFOLD ::Core::PathBuffer<::std::string> $getOnDiskScratchPath();
1110
1111 MCAPI ::Core::PathBuffer<::std::string> $getOnDiskPackScratchPath();
1112
1113 MCFOLD ::Core::PathBuffer<::std::string> $getLevelInfoCachePath() const;
1114
1115 MCFOLD ::Core::PathBuffer<::std::string> $getCatalogSearchScratchPath();
1116
1117 MCAPI ::Core::PathBuffer<::std::string> $getUserStorageRootPath() const;
1118
1119 MCFOLD ::std::shared_ptr<::Core::FileStorageArea> $getOrCreateStorageAreaForUser(::Social::UserCreationData const&);
1120
1121 MCFOLD bool $hasSeparatedStorageAreasForContentAcquisition() const;
1122
1123 MCFOLD uint64 $getOptimalLDBSize();
1124
1125 MCAPI int $getMaxLDBFilesOpen() const;
1126
1127 MCFOLD bool $getDisableLDBSeekCompactions() const;
1128
1129 MCFOLD void $showDialog(int);
1130
1131 MCFOLD void $createUserInput();
1132
1133 MCAPI void $createUserInput(int dialogId);
1134
1135 MCFOLD int $getUserInputStatus();
1136
1137 MCFOLD ::std::vector<::std::string> $getUserInput();
1138
1139 MCAPI ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> $getFileAccess(::ResourceFileSystem fileSystem);
1140
1141 MCAPI ::Core::PathBuffer<::std::string> $copyImportFileToTempFolder(::Core::Path const& filePath);
1142
1143 MCFOLD void $registerFileForCollectionWithCrashDump(::Core::Path const&);
1144
1145 MCFOLD void $registerExperimentsActiveCrashDump(::std::vector<::std::string> const& activeExperiments) const;
1146
1147 MCAPI int $getScreenWidth() const;
1148
1149 MCAPI int $getScreenHeight() const;
1150
1151#ifdef LL_PLAT_S
1152 MCFOLD int $getDisplayWidth();
1153#else // LL_PLAT_C
1154 MCAPI int $getDisplayWidth();
1155#endif
1156
1157 MCAPI int $getDisplayHeight();
1158
1159#ifdef LL_PLAT_S
1160 MCFOLD void $setScreenSize(int, int);
1161#else // LL_PLAT_C
1162 MCFOLD void $setScreenSize(int width, int height);
1163#endif
1164
1165 MCFOLD void $setWindowSize(int width, int height);
1166
1167#ifdef LL_PLAT_S
1168 MCFOLD void $setWindowText(::std::string const& title);
1169#else // LL_PLAT_C
1170 MCFOLD void $setWindowText(::std::string const&);
1171#endif
1172
1173 MCFOLD ::std::optional<::OperationMode> $getOperationMode() const;
1174
1175 MCFOLD bool $allowContentLogWriteToDisk();
1176
1177 MCFOLD uint $getMaxClubsRequests() const;
1178
1179 MCFOLD bool $supportsLaunchingLegacyVersion() const;
1180
1181 MCFOLD void $launchLegacyVersion();
1182
1183 MCFOLD bool $canManageLegacyData() const;
1184
1185 MCFOLD bool $supportsDayOneExperience() const;
1186
1187 MCFOLD bool $canMigrateWorldData() const;
1188
1189 MCFOLD bool $isContentAutoUpdateAllowed() const;
1190
1191 MCAPI int $getMaxSimultaneousDownloads() const;
1192
1193 MCFOLD uint $getMaxSimultaneousServiceRequests() const;
1194
1195 MCFOLD bool $isDownloadAndImportBlocking() const;
1196
1197 MCFOLD bool $isDownloadBuffered() const;
1198
1199 MCFOLD bool $supportsAutoSaveOnDBCompaction() const;
1200
1201 MCAPI void $setTextBoxSelection(::TextBoxSelection selection);
1202
1203 MCFOLD bool $supportsVibration() const;
1204
1205 MCFOLD void $vibrate(int);
1206
1207 MCAPI ::Core::PathBuffer<::std::string> $getAssetFileFullPath(::Core::Path const& filename);
1208
1209 MCAPI ::Bedrock::Result<::std::string> $_readAssetFileInternal(::Core::PathView filename);
1210
1211 MCAPI bool $hasAssetFile(::Core::Path const& filename);
1212
1213 MCAPI bool $copyAssetFile(::Core::Path const& filename, ::Core::Path const& destination);
1214
1215 MCAPI ::std::set<::Core::PathBuffer<::std::string>>
1216 $listAssetFilesIn(::Core::Path const& path, ::std::string const& extension) const;
1217
1218 MCFOLD bool $supportsClientUpdate() const;
1219
1220 MCAPI ::std::string $getClientUpdateUrl() const;
1221
1222 MCFOLD int $checkLicense();
1223
1224 MCFOLD bool $hasBuyButtonWhenInvalidLicense();
1225
1226 MCAPI bool $isNetworkAvailable() const;
1227
1228 MCFOLD bool $isLANAvailable() const;
1229
1230 MCFOLD bool $isNetworkEnabled(bool) const;
1231
1232 MCFOLD void $setNetworkAllowed(bool);
1233
1234 MCFOLD bool $isNetworkAllowed() const;
1235
1236 MCFOLD bool $isInternetAvailable() const;
1237
1238 MCFOLD ::std::optional<bool> $isOnWifiConnectionTelemetryValue();
1239
1240 MCFOLD ::NetworkConnectionType $getNetworkConnectionType();
1241
1242 MCAPI void $setNetworkConnectionType(::NetworkConnectionType connectionType);
1243
1244 MCAPI int $getDefaultNetworkMaxPlayers() const;
1245
1246 MCFOLD bool $multiplayerRequiresPremiumAccess() const;
1247
1248 MCFOLD bool $multiplayerRequiresUGCEnabled() const;
1249
1250 MCFOLD bool $isCrossPlatformToggleVisible() const;
1251
1252 MCFOLD bool $isTelemetryAllowed();
1253
1254 MCFOLD void $buyGame();
1255
1256 MCFOLD void $finish();
1257
1258 MCFOLD bool $canLaunchUri(::std::string const& uri);
1259
1260 MCFOLD void $launchUri(::std::string const& uri);
1261
1262 MCFOLD void $launchSettings();
1263
1264 MCFOLD bool $useXboxControlHelpers() const;
1265
1266 MCFOLD ::PlatformType $getPlatformType() const;
1267
1268 MCFOLD bool $isCentennial() const;
1269
1270 MCFOLD ::std::string $getPackageFamilyName() const;
1271
1272 MCFOLD ::BuildPlatform $getBuildPlatform() const;
1273
1274 MCFOLD int $getNumberOfParticleFramesToInterpolate() const;
1275
1276 MCAPI int $getDpi() const;
1277
1278 MCAPI void $setDpi(int dpi);
1279
1280 MCAPI ::UIScalingRules $getUIScalingRules() const;
1281
1282 MCAPI void $setUIScalingRules(::UIScalingRules UIScalingRules);
1283
1284 MCFOLD bool $hasIDEProfiler();
1285
1286 MCAPI ::std::string $getPlatformStringVar(int);
1287
1288 MCAPI uint64 $getMaximumUsedMemory();
1289
1290 MCFOLD uint64 $getLowMemoryEventThreshold(::LowMemorySeverity) const;
1291
1292 MCAPI uint64 $getLowMemoryEventRecoveryThreshold(::LowMemorySeverity severity) const;
1293
1294 MCAPI uint64 $getLowPhysicalMemoryThreshold() const;
1295
1296 MCAPI void $calculateIfLowMemoryDevice();
1297
1298#ifdef LL_PLAT_S
1299 MCFOLD bool $isLowMemoryDevice() const;
1300#else // LL_PLAT_C
1301 MCAPI bool $isLowMemoryDevice() const;
1302#endif
1303
1304#ifdef LL_PLAT_S
1305 MCFOLD bool $isLowPhysicalMemoryDevice() const;
1306#else // LL_PLAT_C
1307 MCAPI bool $isLowPhysicalMemoryDevice() const;
1308#endif
1309
1310 MCFOLD uint64 $getTextureMemoryBudget() const;
1311
1312 MCFOLD uint64 $getSingleMipDefaultMemoryBudget() const;
1313
1314 MCFOLD void $readyForApplicationExitInfo() const;
1315
1316 MCFOLD ::DeviceSunsetTier $getDeviceSunsetTier() const;
1317
1318 MCAPI int $getMaxSimRadiusInChunks() const;
1319
1320 MCFOLD ::std::vector<::std::string> $getBroadcastAddresses();
1321
1322 MCFOLD ::std::vector<::std::string> $getIPAddresses();
1323
1324 MCFOLD bool $useAppPlatformForTelemetryIPAddress();
1325
1326 MCAPI ::std::string $getModelName();
1327
1328 MCFOLD void $updateBootstrapSettingsFromTreatmentsAsync();
1329
1330 MCFOLD void $setFullscreenMode(::FullscreenMode const fullscreenMode);
1331
1332 MCAPI bool $isNetworkThrottled() const;
1333
1334 MCFOLD bool $isLANAllowed() const;
1335
1336 MCFOLD bool $doesLANRequireMultiplayerRestrictions() const;
1337
1338#ifdef LL_PLAT_S
1339 MCAPI void $collectGraphicsHardwareDetails();
1340#else // LL_PLAT_C
1341 MCFOLD void $collectGraphicsHardwareDetails();
1342#endif
1343
1344 MCAPI ::std::string $getEdition() const;
1345
1346 MCFOLD ::OsVersion $getOSVersion() const;
1347
1348 MCAPI void $setThreadsFrozen(bool frozen);
1349
1350 MCAPI bool $areThreadsFrozen() const;
1351
1352 MCFOLD float $getDefaultSafeZoneScaleX() const;
1353
1354 MCFOLD float $getDefaultSafeZoneScaleY() const;
1355
1356 MCFOLD float $getDefaultSafeZoneScaleAll() const;
1357
1358 MCFOLD float $getDefaultScreenPositionX() const;
1359
1360 MCFOLD float $getDefaultScreenPositionY() const;
1361
1362#ifdef LL_PLAT_S
1363 MCAPI bool $isQuitCapable() const;
1364#else // LL_PLAT_C
1365 MCFOLD bool $isQuitCapable() const;
1366#endif
1367
1368 MCFOLD bool $requireControllerAtStartup() const;
1369
1370 MCFOLD bool $notifyControllerConnectionStateChange() const;
1371
1372 MCFOLD bool $platformRequiresControllerApplet() const;
1373
1374 MCAPI ::InputMode $getDefaultInputMode() const;
1375
1376 MCAPI ::AppFocusState $getFocusState();
1377
1378 MCAPI ::AppLifecycleContext& $getAppLifecycleContext();
1379
1380 MCFOLD bool $supportsFliteTTS() const;
1381
1382 MCAPI ::std::unique_ptr<::SecureStorage> $getSecureStorage();
1383
1384 MCAPI ::SecureStorageKey $getSecureStorageKey(::std::string const&);
1385
1386 MCFOLD void $setSecureStorageKey(::std::string const&, ::SecureStorageKey const&);
1387
1388 MCFOLD bool $devHotReloadRenderResources() const;
1389
1390 MCFOLD bool $shouldPauseDownloadsWhenEnterGame() const;
1391
1392 MCFOLD bool $compareAppReceiptToLocalReceipt(::std::string const&);
1393
1394 MCFOLD ::mce::UUID const& $getThirdPartyPackUUID() const;
1395
1396 MCFOLD ::mce::UUID const& $getPlatformBetaPackUUID() const;
1397
1398 MCFOLD bool $saveTreatmentPacksAsZips() const;
1399
1400 MCFOLD bool $saveEncryptedPacksAsZips() const;
1401
1402 MCFOLD bool $saveEncryptedWorldTemplatePacksAsZips() const;
1403
1404 MCFOLD bool $saveEncryptedPersonaPacksAsZips() const;
1405
1406 MCFOLD bool $allowsResourcePackDevelopment() const;
1407
1408 MCFOLD bool $supportsLegacySinglePremiumCacheDirectory() const;
1409
1410 MCFOLD bool $supportsWorldShare() const;
1411
1412 MCFOLD bool $hasJournalingFilesystem() const;
1413
1414 MCFOLD bool $isAutoCompactionEnabled() const;
1415
1416 MCAPI ::std::chrono::nanoseconds $getLevelSaveInterval() const;
1417
1418 MCAPI ::std::chrono::nanoseconds $getOptionsSaveInterval() const;
1419
1420 MCFOLD bool $hasPlatformSpecificInvites() const;
1421
1422 MCFOLD bool $usePlatformProfilePicturesOnly() const;
1423
1424 MCFOLD bool $allowBetaXblSignIn() const;
1425
1426 MCFOLD bool $requiresXboxLiveSigninToPlay() const;
1427
1428 MCFOLD bool $requiresLiveGoldForMultiplayer() const;
1429
1430 MCFOLD bool $shouldRegisterForXboxLiveNotifications() const;
1431
1432 MCAPI bool $isRealmsEnabled() const;
1433
1434 MCFOLD bool $minimizeBackgroundDownloads() const;
1435
1436 MCFOLD bool $requiresAutoSaveIconExplanationPopup() const;
1437
1438 MCAPI ::IPlatformScreenshots& $getPlatformScreenshots();
1439
1440 MCFOLD uint $maxFileDataRequestConcurrency() const;
1441
1442 MCFOLD void $goToExternalConsumablesStoreListing() const;
1443
1444 MCAPI float $getStoreNetworkFailureTimeout() const;
1445
1446 MCAPI ::std::shared_ptr<::Core::FileStorageArea>
1447 $createLoggingStorageArea(::Core::FileAccessType fileAccessType, ::Core::PathView loggingPath);
1448
1449 MCFOLD void $handlePlatformSpecificCommerceError(uint error);
1450
1451 MCFOLD bool $isEduMode() const;
1452
1453 MCFOLD bool $importAsFlatFile() const;
1454
1455 MCFOLD bool $isWebviewSupported() const;
1456
1457#ifdef LL_PLAT_S
1458 MCFOLD ::std::shared_ptr<::WebviewInterface> $createWebview(::Webview::PlatformArguments&& args) const;
1459#else // LL_PLAT_C
1460 MCFOLD ::std::shared_ptr<::WebviewInterface> $createWebview(::Webview::PlatformArguments&&) const;
1461#endif
1462
1463 MCFOLD bool $getPlatformTTSExists() const;
1464
1465 MCFOLD bool $getPlatformTTSEnabled() const;
1466
1467 MCAPI ::std::variant<::HWND__*, ::std::monostate> $getRenderSurfaceParameters() const;
1468
1469 MCFOLD bool $shouldRemoveGraphicsDeviceOnAppTermination() const;
1470
1471 MCFOLD bool $isJoinableViaExternalServers() const;
1472
1473 MCFOLD void $onPrimaryUserNetworkReady();
1474
1475 MCFOLD bool $isDisplayInitialized() const;
1476
1477 MCFOLD bool $usesAsyncOptionSaving() const;
1478
1479 MCFOLD void $showPlatformStoreIcon(bool shouldShow);
1480
1481 MCAPI void $showPlatformEmptyStoreDialog(::std::function<void(bool)>&& callback);
1482
1483 MCFOLD void $initializeGameStreaming();
1484
1485 MCAPI void $notifyNetworkConfigurationChanged();
1486
1487 MCFOLD void $setKeepScreenOnFlag(bool);
1488
1489 MCFOLD void $initializeMulticast() const;
1490
1491 MCFOLD void $requestMulticastReceivePermission();
1492
1493 MCFOLD bool $hasMulticastReceivePermission() const;
1494
1495 MCFOLD void $releaseMulticastReceivePermission() const;
1496
1497 MCFOLD void $onMinecraftGameInitComplete();
1498
1499 MCFOLD void $onFullGameUnlock();
1500
1501 MCFOLD bool $is24HourTimeFormat() const;
1502
1503 MCAPI ::Bedrock::Threading::Async<bool> $showOSUserDialog(::std::string, ::std::string, ::std::string);
1504
1505 MCFOLD bool $_tryEnableCPUBoost();
1506
1507 MCFOLD void $_disableCPUBoost();
1508
1509 MCFOLD ::Bedrock::CommonPlatform* $getPlatformShim() const;
1510
1511#ifdef LL_PLAT_S
1512 MCFOLD void $_initializeFileStorageAreas();
1513#else // LL_PLAT_C
1514 MCAPI void $_initializeFileStorageAreas();
1515#endif
1516
1517 MCAPI void $_teardownFileStorageAreas();
1518
1519 MCFOLD int $getPlatformDpi() const;
1520
1521 MCAPI ::UIScalingRules $getPlatformUIScalingRules() const;
1522
1523 MCFOLD void $_onInitialize();
1524
1525 MCFOLD void $_onTeardown();
1526
1527#ifdef LL_PLAT_C
1528 MCFOLD void $loadPNG(::mce::Image& out, ::Core::Path const& filename);
1529
1530 MCFOLD void $loadTGA(::mce::Image& out, ::Core::Path const& filename);
1531
1532 MCFOLD void $loadJPEG(::mce::Image& out, ::Core::Path const& filename);
1533
1534 MCFOLD int $getKeyFromKeyCode(int, int, int);
1535
1536 MCFOLD void $textEditComponentGainedFocus(
1537 ::std::string const& currentText,
1538 int maxLength,
1539 bool limitInput,
1540 bool numbersOnly,
1541 bool isMultiline
1542 );
1543
1544 MCFOLD void $textEditComponentLostFocus();
1545
1546 MCAPI void $showKeyboard(
1547 ::std::string const& currentText,
1548 int maxLength,
1549 bool limitInput,
1550 bool numbersOnly,
1551 bool isMultiline,
1552 int const controllerId,
1553 ::glm::vec2 const& position,
1554 float controlHeight,
1555 ::InputMode inputMode
1556 );
1557
1558 MCAPI void $hideKeyboard();
1559
1560 MCAPI bool $blankLineDismissesChat() const;
1561
1562 MCFOLD bool $signWrapsTextEntry() const;
1563
1564 MCFOLD bool $isFullScreenKeyboard() const;
1565
1566 MCFOLD bool $actionSuspendsApp(::AppAction) const;
1567
1568 MCFOLD float $getKeyboardHeight() const;
1569
1570 MCAPI bool $refocusMouse(bool lostMouse, bool oldMouseGrabbed);
1571
1572 MCFOLD void $setMousePointerType(::Bedrock::Input::PointerType pointerType);
1573
1574 MCFOLD void $hideMousePointer();
1575
1576 MCFOLD void $showMousePointer();
1577
1578 MCFOLD void $postInteractiveSignIn();
1579
1580 MCFOLD bool $useHardwareMouse();
1581
1582 MCFOLD void $provideHardwareMouseImageData(::mce::Image const&);
1583
1584 MCFOLD bool $hasCustomSoftwareCursor() const;
1585
1586 MCFOLD ::Core::PathBuffer<::std::string> $getCustomSoftwareCursorAsset() const;
1587
1588 MCAPI bool $getPointerFocus();
1589
1590 MCAPI void $setPointerFocus(bool lostFocus);
1591
1592 MCFOLD bool $isInvertScrollEnabled() const;
1593
1594 MCFOLD void $toggleSimulateTouchWithMouse();
1595
1596 MCAPI void $_fireAppSuspended();
1597
1598 MCAPI void $_fireAppResumed();
1599
1600 MCAPI void $_fireAppFocusLost();
1601
1602 MCAPI void $_fireAppFocusGained();
1603
1604 MCAPI void $_fireResizeBegin();
1605
1606 MCAPI void $_fireResizeEnd();
1607
1608 MCAPI void $_fireDeviceLost();
1609
1610 MCAPI void $_fireSurfaceCreated();
1611
1612 MCAPI void $_fireSurfaceDestroyed();
1613
1614 MCFOLD void $_fireAppConfigurationChanged();
1615
1616 MCAPI void $_fireAppPaused();
1617
1618 MCAPI void $_fireAppUnpaused();
1619
1620 MCFOLD void $discardBackbuffer();
1621
1622 MCAPI ::std::string $getTermsOfUseHyperlink() const;
1623
1624 MCFOLD void $pickFile(::std::shared_ptr<::FilePickerSettings> settings);
1625
1626 MCFOLD bool $supportsAlbumExport() const;
1627
1628 MCFOLD bool $supportsPDFExport() const;
1629
1630 MCFOLD ::std::shared_ptr<::PDFWriter> $createPlatformPDFWriter();
1631
1632 MCFOLD void $shareFile(::Core::Path const&, ::std::function<void(bool)>);
1633
1634 MCFOLD bool $hasHardwareBackButton();
1635
1636 MCFOLD bool $supportsMSAA() const;
1637
1638 MCFOLD bool $supports3rdPartyServers() const;
1639
1640 MCFOLD bool $supportsManualAddedServers() const;
1641
1642 MCFOLD bool $supportsFilePicking() const;
1643
1644 MCFOLD bool $supportsTouch() const;
1645
1646 MCFOLD bool $supportsKeyboardMouse() const;
1647
1648 MCFOLD bool $supportsGamepad() const;
1649
1650 MCFOLD ::ClipboardFeatureFlags $getClipboardFeatures() const;
1651
1652 MCAPI bool $supportsClipboardSet() const;
1653
1654 MCAPI bool $supportsClipboardGet() const;
1655
1656 MCAPI bool $supportsClipboardAsyncGet() const;
1657
1658 MCFOLD void $setClipboard(::std::string const& value) const;
1659
1660 MCAPI ::std::wstring $getClipboardText() const;
1661
1662 MCFOLD void $getClipboardTextAsync(::std::function<void(::std::string const&)>) const;
1663
1664 MCFOLD bool $supportsShare() const;
1665
1666 MCFOLD void $share() const;
1667
1668 MCAPI bool $allowSplitScreen();
1669
1670 MCAPI float $splitScreenRenderDistScalar(uint numPlayers);
1671
1672 MCAPI float $uiOpenRenderDistScalar();
1673
1674 MCAPI void $pushNotificationReceived(::PushNotificationMessage const& msg);
1675
1676 MCAPI void $openStoragePermissionRequest(
1677 ::PermissionRequestReason,
1678 ::std::function<void(::StoragePermissionResult)> resultCallback
1679 );
1680
1681 MCFOLD void $setStorageDirectory(
1682 ::FileStorageDirectory dir,
1683 bool isCallback,
1684 ::PropertyBag const& extraData,
1685 ::std::function<void(bool)> onComplete
1686 );
1687
1688 MCFOLD ::FileStorageDirectory $setInitialStorageDirectory(::FileStorageDirectory);
1689
1690 MCFOLD ::FileStorageDirectory $getStorageDirectory() const;
1691
1692 MCFOLD void $setStorageDirectoryChangeDenied(::std::function<void(::FileStorageDirectory)>);
1693
1694 MCFOLD ::Bedrock::PubSub::Subscription
1695 $addStorageDirectoryChangedSubscriber(::std::function<void(::Core::Path const&)> callback);
1696
1697 MCAPI void $runStoragePermissionResultCallback(::StoragePermissionResult result);
1698
1699 MCFOLD bool $hasExternalStoragePermission();
1700
1701 MCFOLD bool $delayOptionSaveUntilCloudSync() const;
1702
1703 MCFOLD void $updateTextEditBoxPosition(
1704 ::RectangleArea const& controlPosition,
1705 ::RectangleArea const& selectionPosition,
1706 float const guiScale
1707 );
1708
1709 MCAPI ::BatteryMonitorInterface const& $getBatteryMonitorInterface() const;
1710
1711 MCAPI ::ThermalMonitorInterface const& $getThermalMonitorInterface() const;
1712
1713 MCFOLD void $trialCorrelationStart();
1714
1715 MCAPI void $setAllowLostFocusToasts(bool allowLostFocusToasts);
1716
1717 MCAPI void $setShowLostFocusToasts(bool showLostFocusToasts);
1718
1719 MCAPI bool $getShowLostFocusToasts();
1720
1721 MCAPI ::std::string $getDeviceId() const;
1722
1723 MCAPI void $registerUriListener(::UriListener& listener);
1724
1725 MCAPI void $registerUriListener(::std::string const& verb, ::UriListener& listener);
1726
1727 MCAPI void $unregisterUriListener(::UriListener const& listener);
1728
1729 MCAPI void $notifyUriListeners(::ActivationUri const& uri);
1730
1731 MCAPI void $notifyUriListenerRegistrationDone();
1732
1733 MCFOLD void $showXboxLiveUserSettings();
1734
1735 MCAPI ::Bedrock::NotNullNonOwnerPtr<::ThrottledFileWriteManager> $getThrottledFileWriteManager() const;
1736
1737 MCAPI void $_notifyUriListeners(::ActivationUri const& uri, bool ignoreVerb);
1738#endif
1739
1740
1741 // NOLINTEND
1742};
Definition ActivationUri.h:5
Definition AppLifecycleContext.h:5
Definition AppPlatformListener.h:15
Definition AppPlatformNetworkSettings.h:8
Definition ClipboardCopy.h:7
Definition ClipboardPasteRequest.h:7
Definition ClipboardPaste.h:7
Definition BatteryMonitorInterface.h:9
Definition CommonPlatform.h:7
Definition DeviceIdManager.h:19
Definition FilePickerManager.h:17
Definition IApplicationDataStores.h:16
Definition Publisher.h:25
Definition SignalReceiver.h:18
Definition FileStorageArea.h:31
Definition LoadTimeProfiler.h:10
Definition PathView.h:19
Definition Path.h:12
Definition FilePickerSettings.h:5
Definition HardwareMemoryTierUtil.h:16
Definition IAppPlatformImpl.h:24
Definition IAppPlatform.h:15
Definition IFileAccess.h:15
Definition IPlatformScreenshots.h:10
Definition ISecureStorageKeySystem.h:10
Definition ImagePickingCallback.h:5
Definition NetworkChangeObserver.h:5
Definition PDFWriter.h:11
Definition Path.h:16
Definition PropertyBag.h:8
Definition PushNotificationMessage.h:5
Definition RectangleArea.h:5
Definition SecureStorageKey.h:5
Definition SecureStorage.h:10
Definition ThermalMonitorInterface.h:8
Definition ThrottledFileWriteManager.h:5
Definition UriListener.h:10
Definition WebviewInterface.h:5
Definition PlatformArguments.h:7
Definition UUID.h:7
STL namespace.
Definition AppPlatform.h:97
Definition PlatformBuildInfo.h:7
Definition PlatformRuntimeInfo.h:7
Definition IntegrityTokenResult.h:5
Definition UserCreationData.h:7
Definition TextBoxSelection.h:5
Definition Alias.h:14
Definition Image.h:13