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
53class IFileAccess;
55class PDFWriter;
56class PropertyBag;
57class SecureStorage;
60class UriListener;
63struct TextBoxSelection;
64namespace Bedrock { class DeviceIdManager; }
65namespace Bedrock { class FilePickerManager; }
66namespace Bedrock { class IApplicationDataStores; }
67namespace Bedrock { class SignalReceiver; }
68namespace Bedrock { struct PlatformBuildInfo; }
69namespace Bedrock { struct PlatformRuntimeInfo; }
70namespace Bedrock::PubSub::ThreadModel { struct MultiThreaded; }
71namespace Core { class FileStorageArea; }
72namespace Core { class LoadTimeProfiler; }
73namespace Core { class Path; }
74namespace Core { class PathView; }
75namespace mce { class UUID; }
76namespace mce { struct Image; }
77class ActivationUri;
81class RectangleArea;
83namespace ApplicationSignal { class ClipboardCopy; }
84namespace ApplicationSignal { class ClipboardPaste; }
85namespace ApplicationSignal { class ClipboardPasteRequest; }
86namespace Bedrock { class CommonPlatform; }
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 uint64 getHighPerformanceThreadsCount() const;
202
203 virtual uint64 getTotalHardwareThreadsCount() const;
204
205 virtual void initializeGraphicsDeviceTier();
206
207 virtual void addListener(::AppPlatformListener* l, float priority);
208
209 virtual void removeListener(::AppPlatformListener* l);
210
211 virtual ::ProcessExecutionState getProcessExecutionState() const;
212
213 virtual void restartApp(bool restart);
214
215 virtual bool restartRequested() /*override*/;
216
217 virtual ::Core::PathBuffer<::std::string> getPackagePath() const = 0;
218
219 virtual int const numberOfThrottledTreatmentPacksToImportPerMinute() const /*override*/;
220
221 virtual bool const areTreatmentPacksThrottled() const /*override*/;
222
223 virtual ::HardwareMemoryTierUtil const& getHardwareMemoryTierUtil() const /*override*/;
224
225#ifdef LL_PLAT_C
226 virtual ::Core::PathBuffer<::std::string> getDataUrl() const = 0;
227
228 virtual void loadPNG(::mce::Image& out, ::Core::Path const& filename);
229
230 virtual void loadTGA(::mce::Image& out, ::Core::Path const& filename);
231
232 virtual void loadJPEG(::mce::Image& out, ::Core::Path const& filename);
233
234 virtual int getKeyFromKeyCode(int, int, int);
235
236 virtual void textEditComponentGainedFocus(
237 ::std::string const& currentText,
238 int maxLength,
239 bool limitInput,
240 bool numbersOnly,
241 bool isMultiline
242 );
243
244 virtual void textEditComponentLostFocus();
245
246 virtual void showKeyboard(
247 ::std::string const& currentText,
248 int maxLength,
249 bool limitInput,
250 bool numbersOnly,
251 bool isMultiline,
252 int const controllerId,
253 ::glm::vec2 const& position,
254 float controlHeight,
255 ::InputMode inputMode
256 );
257
258 virtual void hideKeyboard();
259
260 virtual bool blankLineDismissesChat() const;
261
262 virtual bool signWrapsTextEntry() const;
263
264 virtual bool isFullScreenKeyboard() const;
265
266 virtual bool actionSuspendsApp(::AppAction) const;
267
268 virtual float getKeyboardHeight() const;
269
270 virtual bool refocusMouse(bool lostMouse, bool oldMouseGrabbed);
271
272 virtual void setMousePointerType(::Bedrock::Input::PointerType pointerType);
273
274 virtual void hideMousePointer();
275
276 virtual void showMousePointer();
277
278 virtual void postInteractiveSignIn();
279
280 virtual bool useHardwareMouse();
281
282 virtual void provideHardwareMouseImageData(::mce::Image const&);
283
284 virtual bool hasCustomSoftwareCursor() const;
285
286 virtual ::Core::PathBuffer<::std::string> getCustomSoftwareCursorAsset() const;
287
288 virtual bool getPointerFocus();
289
290 virtual void setPointerFocus(bool lostFocus);
291
292 virtual bool isInvertScrollEnabled() const;
293
294 virtual void toggleSimulateTouchWithMouse();
295
296 virtual void _fireAppSuspended();
297
298 virtual void _fireAppResumed();
299
300 virtual void _fireAppFocusLost();
301
302 virtual void _fireAppFocusGained();
303
304 virtual void _fireResizeBegin();
305
306 virtual void _fireResizeEnd();
307
308 virtual void _fireDeviceLost();
309
310 virtual void _fireSurfaceCreated();
311
312 virtual void _fireSurfaceDestroyed();
313
314 virtual void _fireAppConfigurationChanged();
315
316 virtual void _fireAppPaused();
317
318 virtual void _fireAppUnpaused();
319
320 virtual void swapBuffers() = 0;
321
322 virtual void discardBackbuffer();
323
324 virtual ::std::string getSystemLocale() const = 0;
325
326 virtual ::std::string getTermsOfUseHyperlink() const;
327
328 virtual void pickImage(::std::shared_ptr<::ImagePickingCallback> callback) = 0;
329
330 virtual void pickFile(::std::shared_ptr<::FilePickerSettings> settings);
331
332 virtual bool supportsAlbumExport() const;
333
334 virtual bool supportsPDFExport() const;
335
336 virtual ::std::shared_ptr<::PDFWriter> createPlatformPDFWriter();
337
338 virtual void shareFile(::Core::Path const&, ::std::function<void(bool)>);
339
340 virtual bool hasHardwareBackButton();
341
342 virtual bool supportsMSAA() const;
343
344 virtual bool supports3rdPartyServers() const;
345
346 virtual bool supportsManualAddedServers() const;
347
348 virtual bool supportsFilePicking() const;
349
350 virtual bool supportsTouch() const;
351
352 virtual bool supportsKeyboardMouse() const;
353
354 virtual bool supportsGamepad() const;
355
356 virtual ::ClipboardFeatureFlags getClipboardFeatures() const;
357
358 virtual bool supportsClipboardSet() const;
359
360 virtual bool supportsClipboardGet() const;
361
362 virtual bool supportsClipboardAsyncGet() const;
363
364 virtual void setClipboard(::std::string const& value) const;
365
366 virtual ::std::wstring getClipboardText() const;
367
368 virtual void getClipboardTextAsync(::std::function<void(::std::string const&)>) const;
369
370 virtual bool supportsShare() const;
371
372 virtual void share() const;
373
374 virtual bool allowSplitScreen();
375
376 virtual float splitScreenRenderDistScalar(uint numPlayers);
377
378 virtual float uiOpenRenderDistScalar();
379
380 virtual void pushNotificationReceived(::PushNotificationMessage const& msg);
381
382 virtual void openStoragePermissionRequest(
383 ::PermissionRequestReason resultCallback,
384 ::std::function<void(::StoragePermissionResult)>
385 );
386
387 virtual void setStorageDirectory(
388 ::FileStorageDirectory dir,
389 bool isCallback,
390 ::PropertyBag const& extraData,
391 ::std::function<void(bool)> onComplete
392 );
393
394 virtual ::FileStorageDirectory setInitialStorageDirectory(::FileStorageDirectory);
395
396 virtual ::FileStorageDirectory getStorageDirectory() const;
397
398 virtual void setStorageDirectoryChangeDenied(::std::function<void(::FileStorageDirectory)>);
399
400 virtual ::Bedrock::PubSub::Subscription
401 addStorageDirectoryChangedSubscriber(::std::function<void(::Core::Path const&)> callback);
402
403 virtual void runStoragePermissionResultCallback(::StoragePermissionResult result);
404
405 virtual bool hasExternalStoragePermission();
406
407 virtual bool delayOptionSaveUntilCloudSync() const;
408
409 virtual void updateTextEditBoxPosition(::RectangleArea const&, ::RectangleArea const&, float const);
410
411 virtual ::BatteryMonitorInterface const& getBatteryMonitorInterface() const;
412
413 virtual ::ThermalMonitorInterface const& getThermalMonitorInterface() const;
414
415 virtual void trialCorrelationStart();
416
417 virtual void setAllowLostFocusToasts(bool allowLostFocusToasts);
418
419 virtual void setShowLostFocusToasts(bool showLostFocusToasts);
420
421 virtual bool getShowLostFocusToasts();
422
423 virtual double getTimeSFromProcessStart() const = 0;
424
425#endif
426 virtual ::Bedrock::Threading::Async<::IntegrityTokenResult> requestIntegrityToken(::std::string const& nonceToken);
427
428 virtual void setIntegrityToken(::std::string const&);
429
430 virtual void setIntegrityTokenErrorMessage(::std::string const&);
431
432 virtual bool supportsInPackageRecursion() const;
433
434 virtual bool supportsXboxLiveAchievements() const;
435
436 virtual void hideSplashScreen();
437
438 virtual ::std::string getFeedbackBugsLink() const;
439
440 virtual ::std::string getFeedbackHelpLink() const;
441
442 virtual auto getModalErrorMessageProc() -> ::AssertDialogResponse (*)(::std::string const&, ::std::string const&);
443
444 virtual void updateLocalization(::std::string const&);
445
446 virtual void setSleepEnabled(bool);
447
448 virtual ::Core::PathBuffer<::std::string> getScratchPath();
449
450 virtual ::Core::PathBuffer<::std::string> getInternalPackStoragePath() const;
451
452 virtual ::Core::PathBuffer<::std::string> getSettingsPath();
453
454 virtual ::Core::PathBuffer<::std::string> getLoggingPath() const /*override*/;
455
456 virtual ::Core::PathBuffer<::std::string> getPackagedShaderCachePath();
457
458 virtual ::Core::PathBuffer<::std::string> getShaderCachePath();
459
460 virtual ::Core::PathBuffer<::std::string> getUserdataPathForLevels() const;
461
462 virtual ::Core::PathBuffer<::std::string> getCacheStoragePath();
463
464 virtual ::Core::PathBuffer<::std::string> getOnDiskScratchPath();
465
466 virtual ::Core::PathBuffer<::std::string> getOnDiskPackScratchPath();
467
468 virtual ::Core::PathBuffer<::std::string> getLevelInfoCachePath() const;
469
470 virtual ::Core::PathBuffer<::std::string> getCatalogSearchScratchPath();
471
472 virtual ::Core::PathBuffer<::std::string> getUserStorageRootPath() const;
473
474 virtual ::std::shared_ptr<::Core::FileStorageArea> getOrCreateStorageAreaForUser(::Social::UserCreationData const&);
475
476 virtual bool hasSeparatedStorageAreasForContentAcquisition() const;
477
478 virtual uint64 getOptimalLDBSize();
479
480 virtual int getMaxLDBFilesOpen() const;
481
482 virtual bool getDisableLDBSeekCompactions() const;
483
484 virtual void showDialog(int);
485
486 virtual void createUserInput();
487
488 virtual void createUserInput(int dialogId);
489
490 virtual int getUserInputStatus();
491
492 virtual ::std::vector<::std::string> getUserInput();
493
494 virtual ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> getFileAccess(::ResourceFileSystem fileSystem);
495
496 virtual ::Core::PathBuffer<::std::string> copyImportFileToTempFolder(::Core::Path const& filePath);
497
498 virtual void registerFileForCollectionWithCrashDump(::Core::Path const&);
499
500 virtual void registerExperimentsActiveCrashDump(::std::vector<::std::string> const& activeExperiments) const;
501
502 virtual int getScreenWidth() const;
503
504 virtual int getScreenHeight() const;
505
506 virtual int getDisplayWidth();
507
508 virtual int getDisplayHeight();
509
510 virtual void setScreenSize(int width, int height);
511
512 virtual void setWindowSize(int width, int height);
513
514 virtual void setWindowText(::std::string const& title);
515
516 virtual ::std::optional<::OperationMode> getOperationMode() const;
517
518 virtual bool allowContentLogWriteToDisk();
519
520 virtual uint getMaxClubsRequests() const;
521
522 virtual void queueForMainThread_DEPRECATED(::std::function<void()> callback) = 0;
523
524 virtual ::MPMCQueue<::std::function<void()>>& getMainThreadQueue() = 0;
525
526 virtual bool supportsLaunchingLegacyVersion() const;
527
528 virtual void launchLegacyVersion();
529
530 virtual bool canManageLegacyData() const;
531
532 virtual bool supportsDayOneExperience() const;
533
534 virtual bool canMigrateWorldData() const;
535
536 virtual bool isContentAutoUpdateAllowed() const;
537
538 virtual int getMaxSimultaneousDownloads() const;
539
540 virtual uint getMaxSimultaneousServiceRequests() const;
541
542 virtual bool isDownloadAndImportBlocking() const;
543
544 virtual bool isDownloadBuffered() const;
545
546 virtual bool supportsAutoSaveOnDBCompaction() const;
547
548 virtual ::std::string getTextBoxBackend() const = 0;
549
550 virtual void setTextBoxBackend(::std::string const& newText) = 0;
551
552 virtual int getCaretPosition() const = 0;
553
554 virtual void setCaretPosition(int position) = 0;
555
556 virtual void setTextBoxSelection(::TextBoxSelection selection);
557
558 virtual bool supportsVibration() const;
559
560 virtual void vibrate(int);
561
562 virtual ::Core::PathBuffer<::std::string> getAssetFileFullPath(::Core::Path const& filename);
563
564 virtual ::Bedrock::Result<::std::string> _readAssetFileInternal(::Core::PathView filename);
565
566 virtual bool hasAssetFile(::Core::Path const& filename);
567
568 virtual bool copyAssetFile(::Core::Path const& filename, ::Core::Path const& destination);
569
570 virtual ::std::set<::Core::PathBuffer<::std::string>>
571 listAssetFilesIn(::Core::Path const& path, ::std::string const& extension) const;
572
573 virtual bool supportsClientUpdate() const;
574
575 virtual ::std::string getClientUpdateUrl() const;
576
577 virtual int checkLicense();
578
579 virtual bool hasBuyButtonWhenInvalidLicense();
580
581 virtual bool isNetworkAvailable() const /*override*/;
582
583 virtual bool isLANAvailable() const /*override*/;
584
585 virtual bool isNetworkEnabled(bool) const /*override*/;
586
587 virtual void setNetworkAllowed(bool);
588
589 virtual bool isNetworkAllowed() const;
590
591 virtual bool isInternetAvailable() const /*override*/;
592
593 virtual ::std::optional<bool> isOnWifiConnectionTelemetryValue();
594
595 virtual ::NetworkConnectionType getNetworkConnectionType();
596
597 virtual void setNetworkConnectionType(::NetworkConnectionType connectionType);
598
599 virtual int getDefaultNetworkMaxPlayers() const /*override*/;
600
601 virtual bool multiplayerRequiresPremiumAccess() const /*override*/;
602
603 virtual bool multiplayerRequiresUGCEnabled() const /*override*/;
604
605 virtual bool isCrossPlatformToggleVisible() const;
606
607 virtual bool isTelemetryAllowed();
608
609 virtual bool isTrialWorldsTransferToFullGameAllowed() const;
610
611 virtual void buyGame();
612
613 virtual void finish();
614
615 virtual bool canLaunchUri(::std::string const&);
616
617 virtual void launchUri(::std::string const& uri);
618
619 virtual void launchSettings();
620
621 virtual bool useXboxControlHelpers() const;
622
623 virtual ::PlatformType getPlatformType() const;
624
625 virtual bool isCentennial() const;
626
627 virtual ::std::string getPackageFamilyName() const;
628
629 virtual ::BuildPlatform getBuildPlatform() const /*override*/;
630
631 virtual ::std::string getSubPlatformString() const = 0;
632
633 virtual int getNumberOfParticleFramesToInterpolate() const;
634
635 virtual int getDpi() const;
636
637 virtual void setDpi(int dpi);
638
639 virtual ::UIScalingRules getUIScalingRules() const;
640
641 virtual void setUIScalingRules(::UIScalingRules UIScalingRules);
642
643 virtual bool hasIDEProfiler();
644
645 virtual ::std::string getPlatformStringVar(int);
646
647 virtual ::std::string getApplicationId() const = 0;
648
649 virtual uint64 getFreeMemory() const = 0;
650
651 virtual uint64 getMemoryLimit() const = 0;
652
653 virtual uint64 getUsedMemory() = 0;
654
655 virtual uint64 getTotalPhysicalMemory() const = 0;
656
657 virtual uint64 getMaximumUsedMemory();
658
659 virtual uint64 getLowMemoryEventThreshold(::LowMemorySeverity) const;
660
661 virtual uint64 getLowMemoryEventRecoveryThreshold(::LowMemorySeverity severity) const;
662
663 virtual uint64 getLowPhysicalMemoryThreshold() const /*override*/;
664
665 virtual void calculateIfLowMemoryDevice();
666
667 virtual bool isLowMemoryDevice() const /*override*/;
668
669 virtual bool isLowPhysicalMemoryDevice() const /*override*/;
670
671 virtual uint64 getTextureMemoryBudget() const;
672
673 virtual uint64 getSingleMipDefaultMemoryBudget() const;
674
675 virtual void readyForApplicationExitInfo() const;
676
677 virtual ::DeviceSunsetTier getDeviceSunsetTier() const;
678
679 virtual int getMaxSimRadiusInChunks() const;
680
681 virtual ::std::vector<::std::string> getBroadcastAddresses();
682
683 virtual ::std::vector<::std::string> getIPAddresses();
684
685 virtual bool useAppPlatformForTelemetryIPAddress();
686
687 virtual ::std::string getModelName();
688
689 virtual bool usesHDRBrightness() const;
690
691 virtual void updateBootstrapSettingsFromTreatmentsAsync();
692
693#ifdef LL_PLAT_C
694 virtual ::std::string getDeviceId() const /*override*/;
695
696 virtual ::std::string createUUID() = 0;
697
698 virtual bool isTablet() const = 0;
699
700 virtual void registerUriListener(::UriListener& listener);
701
702 virtual void registerUriListener(::std::string const& verb, ::UriListener& listener);
703
704 virtual void unregisterUriListener(::UriListener const& listener);
705
706 virtual void notifyUriListeners(::ActivationUri const& uri);
707
708 virtual void notifyUriListenerRegistrationDone();
709
710#endif
711 virtual void setFullscreenMode(::FullscreenMode const fullscreenMode);
712
713 virtual bool isNetworkThrottled() const;
714
715 virtual bool isLANAllowed() const /*override*/;
716
717 virtual bool doesLANRequireMultiplayerRestrictions() const;
718
719 virtual void collectGraphicsHardwareDetails();
720
721 virtual ::std::string getEdition() const;
722
723 virtual ::OsVersion getOSVersion() const;
724
725 virtual void setThreadsFrozen(bool frozen);
726
727 virtual bool areThreadsFrozen() const;
728
729 virtual float getDefaultSafeZoneScaleX() const;
730
731 virtual float getDefaultSafeZoneScaleY() const;
732
733 virtual float getDefaultSafeZoneScaleAll() const;
734
735 virtual float getDefaultScreenPositionX() const;
736
737 virtual float getDefaultScreenPositionY() const;
738
739 virtual bool isQuitCapable() const;
740
741 virtual bool requireControllerAtStartup() const;
742
743 virtual bool notifyControllerConnectionStateChange() const;
744
745 virtual bool platformRequiresControllerApplet() const;
746
747 virtual ::InputMode getDefaultInputMode() const;
748
749 virtual ::AppFocusState getFocusState();
750
751 virtual ::AppLifecycleContext& getAppLifecycleContext();
752
753 virtual uint64 calculateAvailableDiskFreeSpace(::Core::Path const& rootPath) = 0;
754
755 virtual bool supportsFliteTTS() const;
756
757 virtual ::std::unique_ptr<::SecureStorage> getSecureStorage();
758
759 virtual ::SecureStorageKey getSecureStorageKey(::std::string const&) /*override*/;
760
761 virtual void setSecureStorageKey(::std::string const&, ::SecureStorageKey const&) /*override*/;
762
763 virtual bool devHotReloadRenderResources() const;
764
765 virtual bool shouldPauseDownloadsWhenEnterGame() const;
766
767 virtual bool compareAppReceiptToLocalReceipt(::std::string const&);
768
769 virtual ::mce::UUID const& getThirdPartyPackUUID() const;
770
771 virtual bool saveTreatmentPacksAsZips() const;
772
773 virtual bool saveEncryptedPacksAsZips() const;
774
775 virtual bool saveEncryptedWorldTemplatePacksAsZips() const;
776
777 virtual bool allowsResourcePackDevelopment() const;
778
779 virtual bool supportsLegacySinglePremiumCacheDirectory() const;
780
781 virtual bool supportsWorldShare() const;
782
783 virtual bool hasJournalingFilesystem() const;
784
785 virtual bool isAutoCompactionEnabled() const;
786
787 virtual ::std::chrono::nanoseconds getLevelSaveInterval() const;
788
789 virtual ::std::chrono::nanoseconds getOptionsSaveInterval() const;
790
791 virtual bool hasPlatformSpecificInvites() const /*override*/;
792
793 virtual bool usePlatformProfilePicturesOnly() const;
794
795 virtual bool allowBetaXblSignIn() const;
796
797 virtual bool requiresXboxLiveSigninToPlay() const;
798
799 virtual bool requiresLiveGoldForMultiplayer() const;
800
801 virtual bool shouldRegisterForXboxLiveNotifications() const;
802
803 virtual bool isRealmsEnabled() const /*override*/;
804
805 virtual bool minimizeBackgroundDownloads() const;
806
807 virtual bool requiresAutoSaveIconExplanationPopup() const;
808
809 virtual ::IPlatformScreenshots& getPlatformScreenshots();
810
811 virtual uint maxFileDataRequestConcurrency() const;
812
813 virtual void goToExternalConsumablesStoreListing() const /*override*/;
814
815 virtual float getStoreNetworkFailureTimeout() const;
816
817 virtual ::std::shared_ptr<::Core::FileStorageArea>
818 createLoggingStorageArea(::Core::FileAccessType fileAccessType, ::Core::PathView loggingPath);
819
820 virtual void handlePlatformSpecificCommerceError(uint);
821
822 virtual bool isEduMode() const;
823
824 virtual bool importAsFlatFile() const;
825
826 virtual bool isWebviewSupported() const;
827
828 virtual ::std::shared_ptr<::WebviewInterface> createWebview(::Webview::PlatformArguments&&) const;
829
830 virtual bool canAppSelfTerminate() const = 0;
831
832 virtual bool getPlatformTTSExists() const;
833
834 virtual bool getPlatformTTSEnabled() const;
835
836 virtual ::std::variant<::HWND__*, ::std::monostate> getRenderSurfaceParameters() const;
837
838 virtual bool shouldRemoveGraphicsDeviceOnAppTermination() const;
839
840 virtual bool isJoinableViaExternalServers() const;
841
842 virtual void onPrimaryUserNetworkReady();
843
844 virtual bool isDisplayInitialized() const;
845
846 virtual bool usesAsyncOptionSaving() const;
847
848 virtual void showPlatformStoreIcon(bool);
849
850 virtual void showPlatformEmptyStoreDialog(::std::function<void(bool)>&& callback) /*override*/;
851
852#ifdef LL_PLAT_C
853 virtual void showXboxLiveUserSettings();
854
855#endif
856 virtual void initializeGameStreaming();
857
858 virtual void notifyNetworkConfigurationChanged();
859
860 virtual void setKeepScreenOnFlag(bool);
861
862 virtual void initializeMulticast() const;
863
864 virtual void requestMulticastReceivePermission();
865
866 virtual bool hasMulticastReceivePermission() const;
867
868 virtual void releaseMulticastReceivePermission() const;
869
870 virtual void onMinecraftGameInitComplete();
871
872 virtual void onFullGameUnlock();
873
874 virtual bool is24HourTimeFormat() const;
875
876 virtual ::Bedrock::Threading::Async<bool> showOSUserDialog(::std::string, ::std::string, ::std::string);
877
878#ifdef LL_PLAT_C
879 virtual ::Bedrock::NotNullNonOwnerPtr<::ThrottledFileWriteManager> getThrottledFileWriteManager() const;
880
881#endif
882 virtual ::Core::PathBuffer<::std::string> _getCurrentStoragePath() const = 0;
883
884 virtual ::Core::PathBuffer<::std::string> _getExternalStoragePath() const = 0;
885
886 virtual ::Core::PathBuffer<::std::string> _getInternalStoragePath() const = 0;
887
888 virtual ::Core::PathBuffer<::std::string> _getUserdataPath() const = 0;
889
890 virtual ::Core::PathBuffer<::std::string> _getSharedDataPath() const = 0;
891
892#ifdef LL_PLAT_C
893 virtual void _notifyUriListeners(::ActivationUri const& uri, bool ignoreVerb);
894
895#endif
896 virtual bool _tryEnableCPUBoost();
897
898 virtual void _disableCPUBoost();
899
900 virtual ::Bedrock::CommonPlatform* getPlatformShim() const;
901
902 virtual void _initializeFileStorageAreas();
903
904 virtual void _teardownFileStorageAreas();
905
906 virtual int getPlatformDpi() const;
907
908 virtual ::UIScalingRules getPlatformUIScalingRules() const;
909
910 virtual ::Core::PathBuffer<::std::string> getPlatformTempPath() const = 0;
911
912 virtual void _onInitialize();
913
914 virtual void _onTeardown();
915 // NOLINTEND
916
917public:
918 // member functions
919 // NOLINTBEGIN
920 MCAPI AppPlatform(bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
921
922#ifdef LL_PLAT_C
923 MCAPI void _clipboardCopyHandler(::ApplicationSignal::ClipboardCopy const& signal);
924
925 MCAPI void _clipboardPasteHandler(::ApplicationSignal::ClipboardPaste const& signal);
926
927 MCAPI void _clipboardPasteRequestHandler(::ApplicationSignal::ClipboardPasteRequest const&);
928#endif
929
930#ifdef LL_PLAT_S
931 MCAPI void _fireAppTerminated();
932#endif
933
934#ifdef LL_PLAT_C
935 MCAPI ::IAppPlatformImpl& _getImpl();
936#endif
937
938 MCAPI void _initializeLoadProfiler();
939
940#ifdef LL_PLAT_S
941 MCAPI void _terminateListeners();
942
943 MCFOLD ::std::unique_ptr<::Bedrock::PlatformRuntimeInfo>& accessPlatformRuntimeInformation_Shim();
944#endif
945
946#ifdef LL_PLAT_C
947 MCAPI void addNetworkChangeObserver(::NetworkChangeObserver& observer);
948
949 MCAPI void checkAndTriggerOnLowMemory();
950
951 MCAPI void disableCPUBoost();
952
953 MCAPI ::Bedrock::NotNullNonOwnerPtr<::Bedrock::IApplicationDataStores> getApplicationDataStores();
954#endif
955
956 MCFOLD ::Core::PathBuffer<::std::string> getCurrentStoragePath() const;
957
958#ifdef LL_PLAT_C
959 MCAPI ::UIProfile getDefaultUIProfile() const;
960
961 MCAPI ::std::string getDeviceIdWarning() const;
962
963 MCAPI ::Core::PathBuffer<::std::string> getExternalStoragePath() const;
964
965 MCAPI uint64 getFreeMemoryTestable() const;
966#endif
967
968 MCAPI ::std::string getGraphicsDeviceTier() const;
969
970 MCFOLD ::Core::PathBuffer<::std::string> getInternalStoragePath() const;
971
972 MCAPI ::std::optional<::std::locale> getLocaleForDateTimeFormatting() const;
973
974 MCAPI ::gsl::not_null<::Bedrock::PubSub::Connector<void(::LowMemorySeverity)>*> getOnLowMemoryConnector();
975
976 MCAPI ::std::unique_ptr<::Bedrock::PlatformRuntimeInfo> const& getPlatformRuntimeInformation() const;
977
978#ifdef LL_PLAT_C
979 MCAPI ::std::string getShareText() const;
980
981 MCAPI ::std::string getShareTitle() const;
982
983 MCAPI ::std::string getShareUri() const;
984
985 MCAPI double getTotalActiveSeconds();
986#endif
987
988 MCFOLD ::Core::PathBuffer<::std::string> getUserdataPath() const;
989
990 MCAPI bool isTerminating() const;
991
992#ifdef LL_PLAT_C
993 MCAPI void loadImage(::mce::Image& out, ::Core::Path const& filename);
994
995 MCAPI ::mce::Image loadTexture(::Core::Path const& filename);
996
997 MCAPI ::mce::Image loadTextureFromStream(::std::string const& fileStream);
998
999 MCAPI void notifyElapsedSeconds(double seconds);
1000#endif
1001
1002 MCAPI void notifyUserStorageInitialized();
1003
1004#ifdef LL_PLAT_C
1005 MCAPI void processSignals();
1006#endif
1007
1008 MCAPI ::Bedrock::Result<::std::string>
1009 readAssetFile(::Core::PathView filename, ::AppPlatform::ReadMode const& readMode);
1010
1011#ifdef LL_PLAT_C
1012 MCAPI bool requiresNetworkOutageMessaging() const;
1013
1014 MCAPI void setShareData(::std::string shareTitle, ::std::string shareText, ::std::string shareUri);
1015
1016 MCAPI void setShareMetaData(::std::string const& shareTitle, ::std::string const& shareText);
1017
1018 MCAPI bool tryEnableCPUBoost();
1019#endif
1020 // NOLINTEND
1021
1022public:
1023 // static functions
1024 // NOLINTBEGIN
1025 MCAPI static ::Bedrock::Result<::std::string> _readAssetFileGeneric(::Core::PathView filename);
1026
1027#ifdef LL_PLAT_C
1028 MCAPI static bool hasPendingProtocolActivation();
1029
1030 MCAPI static void imGuiAddInputChar(ushort c);
1031
1032 MCAPI static bool isInitialized();
1033
1034 MCAPI static bool mouseInputHandledByImGui();
1035
1036 MCAPI static void setPendingProtocolActivation(::ActivationUri const& uri);
1037
1038 MCAPI static bool updateImGuiKeyboard(uchar param, bool isDown);
1039
1040 MCAPI static void updateImGuiMouseButton(uchar button, bool isDown);
1041
1042 MCAPI static void updateImGuiMousePosition(float x, float y);
1043
1044 MCAPI static void updateImGuiMouseScrollBar(float value);
1045#endif
1046 // NOLINTEND
1047
1048public:
1049 // static variables
1050 // NOLINTBEGIN
1051 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& HOME_PATH();
1052
1053 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& LOG_PATH();
1054
1055 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& SETTINGS_PATH();
1056
1057 MCAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& SHADERCACHE_PATH();
1058
1059 MCAPI static bool& mIsInitialized();
1060
1061 MCAPI static ::ActivationUri& mPendingProtocolActivation();
1062
1063 MCAPI static ::Bedrock::Threading::Mutex& mProtocolMutex();
1064 // NOLINTEND
1065
1066public:
1067 // constructor thunks
1068 // NOLINTBEGIN
1069 MCAPI void* $ctor(bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
1070 // NOLINTEND
1071
1072public:
1073 // destructor thunk
1074 // NOLINTBEGIN
1075 MCAPI void $dtor();
1076 // NOLINTEND
1077
1078public:
1079 // virtual function thunks
1080 // NOLINTBEGIN
1081 MCAPI void $initialize();
1082
1083 MCAPI void $teardown();
1084
1085 MCAPI void $initAppPlatformNetworkSettings();
1086
1087 MCAPI uint64 $getHighPerformanceThreadsCount() const;
1088
1089 MCAPI uint64 $getTotalHardwareThreadsCount() const;
1090
1091 MCFOLD void $initializeGraphicsDeviceTier();
1092
1093 MCAPI void $addListener(::AppPlatformListener* l, float priority);
1094
1095 MCAPI void $removeListener(::AppPlatformListener* l);
1096
1097 MCAPI ::ProcessExecutionState $getProcessExecutionState() const;
1098
1099 MCFOLD void $restartApp(bool restart);
1100
1101 MCFOLD bool $restartRequested();
1102
1103 MCFOLD int const $numberOfThrottledTreatmentPacksToImportPerMinute() const;
1104
1105 MCFOLD bool const $areTreatmentPacksThrottled() const;
1106
1107 MCAPI ::HardwareMemoryTierUtil const& $getHardwareMemoryTierUtil() const;
1108
1109 MCAPI ::Bedrock::Threading::Async<::IntegrityTokenResult> $requestIntegrityToken(::std::string const& nonceToken);
1110
1111 MCFOLD void $setIntegrityToken(::std::string const&);
1112
1113 MCFOLD void $setIntegrityTokenErrorMessage(::std::string const&);
1114
1115 MCFOLD bool $supportsInPackageRecursion() const;
1116
1117 MCFOLD bool $supportsXboxLiveAchievements() const;
1118
1119 MCFOLD void $hideSplashScreen();
1120
1121 MCAPI ::std::string $getFeedbackBugsLink() const;
1122
1123 MCAPI ::std::string $getFeedbackHelpLink() const;
1124
1125 MCAPI auto $getModalErrorMessageProc() -> ::AssertDialogResponse (*)(::std::string const&, ::std::string const&);
1126
1127 MCFOLD void $updateLocalization(::std::string const&);
1128
1129 MCFOLD void $setSleepEnabled(bool);
1130
1131 MCAPI ::Core::PathBuffer<::std::string> $getScratchPath();
1132
1133 MCFOLD ::Core::PathBuffer<::std::string> $getInternalPackStoragePath() const;
1134
1135 MCAPI ::Core::PathBuffer<::std::string> $getSettingsPath();
1136
1137 MCFOLD ::Core::PathBuffer<::std::string> $getLoggingPath() const;
1138
1139 MCFOLD ::Core::PathBuffer<::std::string> $getPackagedShaderCachePath();
1140
1141 MCAPI ::Core::PathBuffer<::std::string> $getShaderCachePath();
1142
1143 MCFOLD ::Core::PathBuffer<::std::string> $getUserdataPathForLevels() const;
1144
1145 MCFOLD ::Core::PathBuffer<::std::string> $getCacheStoragePath();
1146
1147 MCFOLD ::Core::PathBuffer<::std::string> $getOnDiskScratchPath();
1148
1149 MCAPI ::Core::PathBuffer<::std::string> $getOnDiskPackScratchPath();
1150
1151 MCFOLD ::Core::PathBuffer<::std::string> $getLevelInfoCachePath() const;
1152
1153 MCFOLD ::Core::PathBuffer<::std::string> $getCatalogSearchScratchPath();
1154
1155 MCFOLD ::Core::PathBuffer<::std::string> $getUserStorageRootPath() const;
1156
1157 MCFOLD ::std::shared_ptr<::Core::FileStorageArea> $getOrCreateStorageAreaForUser(::Social::UserCreationData const&);
1158
1159 MCFOLD bool $hasSeparatedStorageAreasForContentAcquisition() const;
1160
1161 MCFOLD uint64 $getOptimalLDBSize();
1162
1163 MCFOLD int $getMaxLDBFilesOpen() const;
1164
1165 MCFOLD bool $getDisableLDBSeekCompactions() const;
1166
1167 MCFOLD void $showDialog(int);
1168
1169 MCFOLD void $createUserInput();
1170
1171 MCAPI void $createUserInput(int dialogId);
1172
1173 MCFOLD int $getUserInputStatus();
1174
1175 MCFOLD ::std::vector<::std::string> $getUserInput();
1176
1177 MCAPI ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> $getFileAccess(::ResourceFileSystem fileSystem);
1178
1179 MCAPI ::Core::PathBuffer<::std::string> $copyImportFileToTempFolder(::Core::Path const& filePath);
1180
1181 MCFOLD void $registerFileForCollectionWithCrashDump(::Core::Path const&);
1182
1183 MCFOLD void $registerExperimentsActiveCrashDump(::std::vector<::std::string> const& activeExperiments) const;
1184
1185 MCAPI int $getScreenWidth() const;
1186
1187 MCAPI int $getScreenHeight() const;
1188
1189 MCAPI int $getDisplayWidth();
1190
1191 MCFOLD int $getDisplayHeight();
1192
1193 MCFOLD void $setScreenSize(int width, int height);
1194
1195 MCFOLD void $setWindowSize(int width, int height);
1196
1197 MCFOLD void $setWindowText(::std::string const& title);
1198
1199 MCFOLD ::std::optional<::OperationMode> $getOperationMode() const;
1200
1201 MCFOLD bool $allowContentLogWriteToDisk();
1202
1203 MCFOLD uint $getMaxClubsRequests() const;
1204
1205 MCFOLD bool $supportsLaunchingLegacyVersion() const;
1206
1207 MCFOLD void $launchLegacyVersion();
1208
1209 MCFOLD bool $canManageLegacyData() const;
1210
1211 MCFOLD bool $supportsDayOneExperience() const;
1212
1213 MCFOLD bool $canMigrateWorldData() const;
1214
1215 MCFOLD bool $isContentAutoUpdateAllowed() const;
1216
1217 MCAPI int $getMaxSimultaneousDownloads() const;
1218
1219 MCFOLD uint $getMaxSimultaneousServiceRequests() const;
1220
1221 MCFOLD bool $isDownloadAndImportBlocking() const;
1222
1223 MCFOLD bool $isDownloadBuffered() const;
1224
1225 MCFOLD bool $supportsAutoSaveOnDBCompaction() const;
1226
1227 MCAPI void $setTextBoxSelection(::TextBoxSelection selection);
1228
1229 MCFOLD bool $supportsVibration() const;
1230
1231 MCFOLD void $vibrate(int);
1232
1233 MCAPI ::Core::PathBuffer<::std::string> $getAssetFileFullPath(::Core::Path const& filename);
1234
1235 MCAPI ::Bedrock::Result<::std::string> $_readAssetFileInternal(::Core::PathView filename);
1236
1237 MCAPI bool $hasAssetFile(::Core::Path const& filename);
1238
1239 MCAPI bool $copyAssetFile(::Core::Path const& filename, ::Core::Path const& destination);
1240
1241 MCAPI ::std::set<::Core::PathBuffer<::std::string>>
1242 $listAssetFilesIn(::Core::Path const& path, ::std::string const& extension) const;
1243
1244 MCFOLD bool $supportsClientUpdate() const;
1245
1246 MCAPI ::std::string $getClientUpdateUrl() const;
1247
1248 MCFOLD int $checkLicense();
1249
1250 MCFOLD bool $hasBuyButtonWhenInvalidLicense();
1251
1252 MCAPI bool $isNetworkAvailable() const;
1253
1254 MCFOLD bool $isLANAvailable() const;
1255
1256 MCFOLD bool $isNetworkEnabled(bool) const;
1257
1258 MCFOLD void $setNetworkAllowed(bool);
1259
1260 MCFOLD bool $isNetworkAllowed() const;
1261
1262 MCFOLD bool $isInternetAvailable() const;
1263
1264 MCFOLD ::std::optional<bool> $isOnWifiConnectionTelemetryValue();
1265
1266 MCFOLD ::NetworkConnectionType $getNetworkConnectionType();
1267
1268 MCAPI void $setNetworkConnectionType(::NetworkConnectionType connectionType);
1269
1270 MCAPI int $getDefaultNetworkMaxPlayers() const;
1271
1272 MCFOLD bool $multiplayerRequiresPremiumAccess() const;
1273
1274 MCFOLD bool $multiplayerRequiresUGCEnabled() const;
1275
1276 MCFOLD bool $isCrossPlatformToggleVisible() const;
1277
1278 MCFOLD bool $isTelemetryAllowed();
1279
1280 MCFOLD void $buyGame();
1281
1282 MCFOLD void $finish();
1283
1284 MCFOLD bool $canLaunchUri(::std::string const&);
1285
1286 MCFOLD void $launchUri(::std::string const& uri);
1287
1288 MCFOLD void $launchSettings();
1289
1290 MCFOLD bool $useXboxControlHelpers() const;
1291
1292 MCFOLD ::PlatformType $getPlatformType() const;
1293
1294 MCFOLD bool $isCentennial() const;
1295
1296 MCFOLD ::std::string $getPackageFamilyName() const;
1297
1298 MCFOLD ::BuildPlatform $getBuildPlatform() const;
1299
1300 MCFOLD int $getNumberOfParticleFramesToInterpolate() const;
1301
1302 MCAPI int $getDpi() const;
1303
1304 MCAPI void $setDpi(int dpi);
1305
1306 MCAPI ::UIScalingRules $getUIScalingRules() const;
1307
1308 MCAPI void $setUIScalingRules(::UIScalingRules UIScalingRules);
1309
1310 MCFOLD bool $hasIDEProfiler();
1311
1312 MCAPI ::std::string $getPlatformStringVar(int);
1313
1314 MCAPI uint64 $getMaximumUsedMemory();
1315
1316 MCFOLD uint64 $getLowMemoryEventThreshold(::LowMemorySeverity) const;
1317
1318 MCAPI uint64 $getLowMemoryEventRecoveryThreshold(::LowMemorySeverity severity) const;
1319
1320 MCAPI uint64 $getLowPhysicalMemoryThreshold() const;
1321
1322 MCAPI void $calculateIfLowMemoryDevice();
1323
1324 MCFOLD bool $isLowMemoryDevice() const;
1325
1326 MCFOLD bool $isLowPhysicalMemoryDevice() const;
1327
1328 MCFOLD uint64 $getTextureMemoryBudget() const;
1329
1330 MCFOLD uint64 $getSingleMipDefaultMemoryBudget() const;
1331
1332 MCFOLD void $readyForApplicationExitInfo() const;
1333
1334 MCFOLD ::DeviceSunsetTier $getDeviceSunsetTier() const;
1335
1336 MCAPI int $getMaxSimRadiusInChunks() const;
1337
1338 MCFOLD ::std::vector<::std::string> $getBroadcastAddresses();
1339
1340 MCFOLD ::std::vector<::std::string> $getIPAddresses();
1341
1342 MCFOLD bool $useAppPlatformForTelemetryIPAddress();
1343
1344 MCAPI ::std::string $getModelName();
1345
1346 MCFOLD bool $usesHDRBrightness() const;
1347
1348 MCFOLD void $updateBootstrapSettingsFromTreatmentsAsync();
1349
1350 MCFOLD void $setFullscreenMode(::FullscreenMode const fullscreenMode);
1351
1352 MCAPI bool $isNetworkThrottled() const;
1353
1354 MCFOLD bool $isLANAllowed() const;
1355
1356 MCFOLD bool $doesLANRequireMultiplayerRestrictions() const;
1357
1358 MCAPI void $collectGraphicsHardwareDetails();
1359
1360 MCAPI ::std::string $getEdition() const;
1361
1362 MCFOLD ::OsVersion $getOSVersion() const;
1363
1364 MCAPI void $setThreadsFrozen(bool frozen);
1365
1366 MCAPI bool $areThreadsFrozen() const;
1367
1368 MCFOLD float $getDefaultSafeZoneScaleX() const;
1369
1370 MCFOLD float $getDefaultSafeZoneScaleY() const;
1371
1372 MCFOLD float $getDefaultSafeZoneScaleAll() const;
1373
1374 MCFOLD float $getDefaultScreenPositionX() const;
1375
1376 MCFOLD float $getDefaultScreenPositionY() const;
1377
1378 MCAPI bool $isQuitCapable() const;
1379
1380 MCFOLD bool $requireControllerAtStartup() const;
1381
1382 MCFOLD bool $notifyControllerConnectionStateChange() const;
1383
1384 MCFOLD bool $platformRequiresControllerApplet() const;
1385
1386 MCAPI ::InputMode $getDefaultInputMode() const;
1387
1388 MCAPI ::AppFocusState $getFocusState();
1389
1390 MCFOLD ::AppLifecycleContext& $getAppLifecycleContext();
1391
1392 MCFOLD bool $supportsFliteTTS() const;
1393
1394 MCAPI ::std::unique_ptr<::SecureStorage> $getSecureStorage();
1395
1396 MCAPI ::SecureStorageKey $getSecureStorageKey(::std::string const&);
1397
1398 MCFOLD void $setSecureStorageKey(::std::string const&, ::SecureStorageKey const&);
1399
1400 MCFOLD bool $devHotReloadRenderResources() const;
1401
1402 MCFOLD bool $shouldPauseDownloadsWhenEnterGame() const;
1403
1404 MCFOLD bool $compareAppReceiptToLocalReceipt(::std::string const&);
1405
1406 MCAPI ::mce::UUID const& $getThirdPartyPackUUID() const;
1407
1408 MCFOLD bool $saveTreatmentPacksAsZips() const;
1409
1410 MCFOLD bool $saveEncryptedPacksAsZips() const;
1411
1412 MCFOLD bool $saveEncryptedWorldTemplatePacksAsZips() const;
1413
1414 MCFOLD bool $allowsResourcePackDevelopment() const;
1415
1416 MCFOLD bool $supportsLegacySinglePremiumCacheDirectory() const;
1417
1418 MCFOLD bool $supportsWorldShare() const;
1419
1420 MCFOLD bool $hasJournalingFilesystem() const;
1421
1422 MCFOLD bool $isAutoCompactionEnabled() const;
1423
1424 MCAPI ::std::chrono::nanoseconds $getLevelSaveInterval() const;
1425
1426 MCAPI ::std::chrono::nanoseconds $getOptionsSaveInterval() const;
1427
1428 MCFOLD bool $hasPlatformSpecificInvites() const;
1429
1430 MCFOLD bool $usePlatformProfilePicturesOnly() const;
1431
1432 MCFOLD bool $allowBetaXblSignIn() const;
1433
1434 MCFOLD bool $requiresXboxLiveSigninToPlay() const;
1435
1436 MCFOLD bool $requiresLiveGoldForMultiplayer() const;
1437
1438 MCFOLD bool $shouldRegisterForXboxLiveNotifications() const;
1439
1440 MCAPI bool $isRealmsEnabled() const;
1441
1442 MCFOLD bool $minimizeBackgroundDownloads() const;
1443
1444 MCFOLD bool $requiresAutoSaveIconExplanationPopup() const;
1445
1446 MCAPI ::IPlatformScreenshots& $getPlatformScreenshots();
1447
1448 MCFOLD uint $maxFileDataRequestConcurrency() const;
1449
1450 MCFOLD void $goToExternalConsumablesStoreListing() const;
1451
1452 MCAPI float $getStoreNetworkFailureTimeout() const;
1453
1454 MCAPI ::std::shared_ptr<::Core::FileStorageArea>
1455 $createLoggingStorageArea(::Core::FileAccessType fileAccessType, ::Core::PathView loggingPath);
1456
1457 MCFOLD void $handlePlatformSpecificCommerceError(uint);
1458
1459 MCFOLD bool $isEduMode() const;
1460
1461 MCFOLD bool $importAsFlatFile() const;
1462
1463 MCFOLD bool $isWebviewSupported() const;
1464
1465 MCFOLD ::std::shared_ptr<::WebviewInterface> $createWebview(::Webview::PlatformArguments&&) const;
1466
1467 MCFOLD bool $getPlatformTTSExists() const;
1468
1469 MCFOLD bool $getPlatformTTSEnabled() const;
1470
1471 MCAPI ::std::variant<::HWND__*, ::std::monostate> $getRenderSurfaceParameters() const;
1472
1473 MCFOLD bool $shouldRemoveGraphicsDeviceOnAppTermination() const;
1474
1475 MCFOLD bool $isJoinableViaExternalServers() const;
1476
1477 MCFOLD void $onPrimaryUserNetworkReady();
1478
1479 MCFOLD bool $isDisplayInitialized() const;
1480
1481 MCFOLD bool $usesAsyncOptionSaving() const;
1482
1483 MCFOLD void $showPlatformStoreIcon(bool);
1484
1485 MCAPI void $showPlatformEmptyStoreDialog(::std::function<void(bool)>&& callback);
1486
1487 MCFOLD void $initializeGameStreaming();
1488
1489 MCAPI void $notifyNetworkConfigurationChanged();
1490
1491 MCFOLD void $setKeepScreenOnFlag(bool);
1492
1493 MCFOLD void $initializeMulticast() const;
1494
1495 MCFOLD void $requestMulticastReceivePermission();
1496
1497 MCFOLD bool $hasMulticastReceivePermission() const;
1498
1499 MCFOLD void $releaseMulticastReceivePermission() const;
1500
1501 MCFOLD void $onMinecraftGameInitComplete();
1502
1503 MCFOLD void $onFullGameUnlock();
1504
1505 MCFOLD bool $is24HourTimeFormat() const;
1506
1507 MCAPI ::Bedrock::Threading::Async<bool> $showOSUserDialog(::std::string, ::std::string, ::std::string);
1508
1509 MCFOLD bool $_tryEnableCPUBoost();
1510
1511 MCFOLD void $_disableCPUBoost();
1512
1513 MCFOLD ::Bedrock::CommonPlatform* $getPlatformShim() const;
1514
1515 MCFOLD void $_initializeFileStorageAreas();
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 MCFOLD 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 MCFOLD bool $getPointerFocus();
1589
1590 MCFOLD 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 resultCallback,
1678 ::std::function<void(::StoragePermissionResult)>
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(::RectangleArea const&, ::RectangleArea const&, float const);
1704
1705 MCAPI ::BatteryMonitorInterface const& $getBatteryMonitorInterface() const;
1706
1707 MCAPI ::ThermalMonitorInterface const& $getThermalMonitorInterface() const;
1708
1709 MCFOLD void $trialCorrelationStart();
1710
1711 MCAPI void $setAllowLostFocusToasts(bool allowLostFocusToasts);
1712
1713 MCAPI void $setShowLostFocusToasts(bool showLostFocusToasts);
1714
1715 MCAPI bool $getShowLostFocusToasts();
1716
1717 MCAPI ::std::string $getDeviceId() const;
1718
1719 MCAPI void $registerUriListener(::UriListener& listener);
1720
1721 MCAPI void $registerUriListener(::std::string const& verb, ::UriListener& listener);
1722
1723 MCAPI void $unregisterUriListener(::UriListener const& listener);
1724
1725 MCAPI void $notifyUriListeners(::ActivationUri const& uri);
1726
1727 MCAPI void $notifyUriListenerRegistrationDone();
1728
1729 MCFOLD void $showXboxLiveUserSettings();
1730
1731 MCAPI ::Bedrock::NotNullNonOwnerPtr<::ThrottledFileWriteManager> $getThrottledFileWriteManager() const;
1732
1733 MCAPI void $_notifyUriListeners(::ActivationUri const& uri, bool ignoreVerb);
1734#endif
1735
1736
1737 // NOLINTEND
1738
1739public:
1740 // vftables
1741 // NOLINTBEGIN
1742 MCNAPI static void** $vftableForIAppPlatform();
1743
1745 // NOLINTEND
1746};
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: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 Connector.h:8
Definition Publisher.h:8
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 MPMCQueue.h:6
Definition NetworkChangeObserver.h:5
Definition PDFWriter.h:11
Definition Path.h:16
Definition PropertyBag.h:9
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:99
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:12