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