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