3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/client/social/MultiplayerServiceIdentifier.h"
7#include "mc/deps/application/DeviceSunsetTier.h"
8#include "mc/deps/application/IAppPlatform.h"
9#include "mc/deps/application/LowMemorySeverity.h"
10#include "mc/deps/application/OsVersion.h"
11#include "mc/deps/core/NetworkConnectionType.h"
12#include "mc/deps/core/debug/AssertDialogResponse.h"
13#include "mc/deps/core/file/FileAccessType.h"
14#include "mc/deps/core/file/PathBuffer.h"
15#include "mc/deps/core/platform/AppFocusState.h"
16#include "mc/deps/core/platform/BuildPlatform.h"
17#include "mc/deps/core/platform/FullscreenMode.h"
18#include "mc/deps/core/platform/OperationMode.h"
19#include "mc/deps/core/platform/PlatformType.h"
20#include "mc/deps/core/platform/UIScalingRules.h"
21#include "mc/deps/core/resource/ResourceFileSystem.h"
22#include "mc/deps/core/secure_storage/ISecureStorageKeySystem.h"
23#include "mc/deps/core/string/BasicStackString.h"
24#include "mc/deps/core/threading/Async.h"
25#include "mc/deps/core/threading/MPMCQueue.h"
26#include "mc/deps/core/utility/NonOwnerPointer.h"
27#include "mc/deps/core/utility/pub_sub/Connector.h"
28#include "mc/deps/input/InputMode.h"
42namespace Core {
class FileStorageArea; }
43namespace Core {
class Path; }
44namespace Core {
class PathView; }
45namespace Social {
class MultiplayerService; }
46namespace Social {
struct UserCreationData; }
47namespace Webview {
class PlatformArguments; }
48namespace mce {
class UUID; }
125 virtual void initialize();
128 virtual void teardown();
131 virtual void initAppPlatformNetworkSettings() ;
134 virtual void initializeScreenDependentResources();
137 virtual uint64 getHighPerformanceThreadsCount()
const;
140 virtual uint64 getTotalHardwareThreadsCount()
const;
143 virtual void initializeGraphicsDeviceTier();
152 virtual void restartApp(
bool restart);
155 virtual bool restartRequested() ;
158 virtual ::Core::PathBuffer<::std::string> getPackagePath()
const = 0;
161 virtual int const numberOfThrottledTreatmentPacksToImportPerMinute()
const ;
164 virtual bool const areTreatmentPacksThrottled()
const ;
167 virtual ::HardwareMemoryTierUtil
const& getHardwareMemoryTierUtil()
const ;
170 virtual ::Bedrock::Threading::Async<::IntegrityTokenResult> requestIntegrityToken(::std::string
const& nonceToken);
173 virtual void setIntegrityToken(::std::string
const& integrityToken);
176 virtual void setIntegrityTokenErrorMessage(::std::string
const& errorMessage);
179 virtual bool supportsInPackageRecursion()
const;
182 virtual bool supportsXboxLiveAchievements()
const;
185 virtual void hideSplashScreen();
188 virtual ::std::string getFeedbackBugsLink()
const;
191 virtual ::std::string getFeedbackHelpLink()
const;
194 virtual auto getModalErrorMessageProc() -> ::AssertDialogResponse (*)(::std::string
const&, ::std::string
const&);
197 virtual void updateLocalization(::std::string
const& loc);
200 virtual void setSleepEnabled(
bool enabled);
203 virtual ::Core::PathBuffer<::std::string> getScratchPath();
206 virtual ::Core::PathBuffer<::std::string> getInternalPackStoragePath()
const;
209 virtual ::Core::PathBuffer<::std::string> getSettingsPath();
212 virtual ::Core::PathBuffer<::std::string> getLoggingPath()
const ;
215 virtual ::Core::PathBuffer<::std::string> getPackagedShaderCachePath();
218 virtual ::Core::PathBuffer<::std::string> getShaderCachePath();
221 virtual ::Core::PathBuffer<::std::string> getUserdataPathForLevels()
const;
224 virtual ::Core::PathBuffer<::std::string> getCacheStoragePath();
227 virtual ::Core::PathBuffer<::std::string> getOnDiskScratchPath();
230 virtual ::Core::PathBuffer<::std::string> getOnDiskPackScratchPath();
233 virtual ::Core::PathBuffer<::std::string> getLevelInfoCachePath()
const;
236 virtual ::Core::PathBuffer<::std::string> getCatalogSearchScratchPath();
239 virtual ::Core::PathBuffer<::std::string> getUserStorageRootPath()
const;
245 virtual bool hasSeparatedStorageAreasForContentAcquisition()
const;
248 virtual uint64 getOptimalLDBSize();
251 virtual int getMaxLDBFilesOpen()
const;
254 virtual bool getDisableLDBSeekCompactions()
const;
257 virtual void showDialog(
int dialogId);
260 virtual void createUserInput();
263 virtual void createUserInput(
int dialogId);
266 virtual int getUserInputStatus();
269 virtual ::std::vector<::std::string> getUserInput();
272 virtual ::Bedrock::NotNullNonOwnerPtr<::IFileAccess> getFileAccess(::ResourceFileSystem fileSystem);
275 virtual ::Core::PathBuffer<::std::string> copyImportFileToTempFolder(
::Core::Path const& filePath);
278 virtual void registerFileForCollectionWithCrashDump(
::Core::Path const& fileName);
281 virtual void registerExperimentsActiveCrashDump(::std::vector<::std::string>
const& activeExperiments)
const;
284 virtual int getScreenWidth()
const;
287 virtual int getScreenHeight()
const;
290 virtual int getDisplayWidth();
293 virtual int getDisplayHeight();
296 virtual void setScreenSize(
int width,
int height);
299 virtual void setWindowSize(
int width,
int height);
302 virtual void setWindowText(::std::string
const& title);
305 virtual ::std::optional<::OperationMode> getOperationMode()
const;
308 virtual bool allowContentLogWriteToDisk();
311 virtual uint getMaxClubsRequests()
const;
314 virtual void queueForMainThread_DEPRECATED(::std::function<
void()>) = 0;
317 virtual ::MPMCQueue<::std::function<void()>>& getMainThreadQueue() = 0;
320 virtual bool supportsLaunchingLegacyVersion()
const;
323 virtual void launchLegacyVersion();
326 virtual bool canManageLegacyData()
const;
329 virtual bool supportsDayOneExperience()
const;
332 virtual bool canMigrateWorldData()
const;
335 virtual bool isContentAutoUpdateAllowed()
const;
338 virtual int getMaxSimultaneousDownloads()
const;
341 virtual uint getMaxSimultaneousServiceRequests()
const;
344 virtual bool isDownloadAndImportBlocking()
const;
347 virtual bool isDownloadBuffered()
const;
350 virtual bool supportsAutoSaveOnDBCompaction()
const;
353 virtual ::std::string getTextBoxBackend()
const = 0;
356 virtual void setTextBoxBackend(::std::string
const&) = 0;
359 virtual int getCaretPosition()
const = 0;
362 virtual void setCaretPosition(
int) = 0;
365 virtual bool supportsVibration()
const;
368 virtual void vibrate(
int milliSeconds);
371 virtual ::Core::PathBuffer<::std::string> getAssetFileFullPath(
::Core::Path const& filename);
374 virtual ::std::string _readAssetFileInternal(
::Core::Path const& filename);
377 virtual bool hasAssetFile(
::Core::Path const& filename);
383 virtual ::std::set<::Core::PathBuffer<::std::string>>
384 listAssetFilesIn(
::Core::Path const& path, ::std::string
const& extension)
const;
387 virtual bool supportsClientUpdate()
const;
390 virtual ::std::string getClientUpdateUrl()
const;
393 virtual int checkLicense();
396 virtual bool hasBuyButtonWhenInvalidLicense();
399 virtual bool isNetworkAvailable()
const ;
402 virtual bool isLANAvailable()
const ;
405 virtual bool isNetworkEnabled(
bool onlyWifiAllowed)
const ;
408 virtual void setNetworkAllowed(
bool allowed);
411 virtual bool isNetworkAllowed()
const;
414 virtual bool isInternetAvailable()
const ;
417 virtual ::std::optional<bool> isOnWifiConnectionTelemetryValue();
420 virtual ::NetworkConnectionType getNetworkConnectionType();
423 virtual void setNetworkConnectionType(::NetworkConnectionType connectionType);
426 virtual int getDefaultNetworkMaxPlayers()
const;
429 virtual bool multiplayerRequiresPremiumAccess()
const ;
432 virtual bool multiplayerRequiresUGCEnabled()
const ;
435 virtual bool isCrossPlatformToggleVisible()
const;
438 virtual bool isTelemetryAllowed();
441 virtual bool isTrialWorldsTransferToFullGameAllowed()
const;
444 virtual void buyGame();
447 virtual void finish();
450 virtual bool canLaunchUri(::std::string
const& uri);
453 virtual void launchUri(::std::string
const& uri);
456 virtual void launchSettings();
459 virtual bool useXboxControlHelpers()
const;
462 virtual ::PlatformType getPlatformType()
const;
465 virtual bool isCentennial()
const;
468 virtual ::std::string getPackageFamilyName()
const;
471 virtual ::BuildPlatform getBuildPlatform()
const ;
474 virtual ::std::string getPlatformString()
const = 0;
477 virtual ::std::string getSubPlatformString()
const = 0;
480 virtual int getNumberOfParticleFramesToInterpolate()
const;
483 virtual int getDpi()
const;
486 virtual void setDpi(
int dpi);
489 virtual ::UIScalingRules getUIScalingRules()
const;
492 virtual void setUIScalingRules(::UIScalingRules UIScalingRules);
495 virtual bool hasIDEProfiler();
498 virtual ::std::string getPlatformStringVar(
int stringId);
501 virtual ::std::string getApplicationId()
const = 0;
504 virtual uint64 getFreeMemory()
const = 0;
507 virtual uint64 getMemoryLimit()
const = 0;
510 virtual uint64 getUsedMemory() = 0;
513 virtual uint64 getTotalPhysicalMemory()
const = 0;
516 virtual uint64 getMaximumUsedMemory();
519 virtual uint64 getLowMemoryEventThreshold(::LowMemorySeverity)
const;
522 virtual uint64 getLowMemoryEventRecoveryThreshold(::LowMemorySeverity severity)
const;
525 virtual uint64 getLowPhysicalMemoryThreshold()
const ;
528 virtual void calculateIfLowMemoryDevice();
531 virtual bool isLowMemoryDevice()
const ;
534 virtual bool isLowPhysicalMemoryDevice()
const ;
537 virtual uint64 getTextureMemoryBudget()
const;
540 virtual uint64 getSingleMipDefaultMemoryBudget()
const;
543 virtual void readyForApplicationExitInfo()
const;
546 virtual ::DeviceSunsetTier getDeviceSunsetTier()
const;
549 virtual int getMaxSimRadiusInChunks()
const;
552 virtual ::std::vector<::std::string> getBroadcastAddresses();
555 virtual ::std::vector<::std::string> getIPAddresses();
558 virtual bool useAppPlatformForTelemetryIPAddress();
561 virtual ::std::string getModelName();
564 virtual bool usesHDRBrightness()
const;
567 virtual void updateBootstrapSettingsFromTreatmentsAsync();
570 virtual void setFullscreenMode(::FullscreenMode
const fullscreenMode);
573 virtual bool isNetworkThrottled()
const;
576 virtual bool isLANAllowed()
const ;
579 virtual bool doesLANRequireMultiplayerRestrictions()
const;
582 virtual void collectGraphicsHardwareDetails();
585 virtual ::std::string getEdition()
const;
588 virtual ::OsVersion getOSVersion()
const;
591 virtual void setThreadsFrozen(
bool frozen);
594 virtual bool areThreadsFrozen()
const;
597 virtual float getDefaultSafeZoneScaleX()
const;
600 virtual float getDefaultSafeZoneScaleY()
const;
603 virtual float getDefaultSafeZoneScaleAll()
const;
606 virtual float getDefaultScreenPositionX()
const;
609 virtual float getDefaultScreenPositionY()
const;
612 virtual bool isQuitCapable()
const;
615 virtual bool requireControllerAtStartup()
const;
618 virtual bool notifyControllerConnectionStateChange()
const;
621 virtual bool platformRequiresControllerApplet()
const;
624 virtual ::InputMode getDefaultInputMode()
const;
627 virtual ::AppFocusState getFocusState();
630 virtual ::AppLifecycleContext& getAppLifecycleContext();
633 virtual uint64 calculateAvailableDiskFreeSpace(
::Core::Path const&) = 0;
636 virtual bool supportsFliteTTS()
const;
639 virtual ::std::unique_ptr<::SecureStorage> getSecureStorage();
642 virtual ::SecureStorageKey getSecureStorageKey(::std::string
const& key) ;
645 virtual void setSecureStorageKey(::std::string
const& key,
::SecureStorageKey const& value) ;
648 virtual bool devHotReloadRenderResources()
const;
651 virtual bool shouldPauseDownloadsWhenEnterGame()
const;
654 virtual bool compareAppReceiptToLocalReceipt(::std::string
const& otherReceipt);
657 virtual ::mce::UUID
const& getThirdPartyPackUUID()
const;
660 virtual bool saveTreatmentPacksAsZips()
const;
663 virtual bool saveEncryptedPacksAsZips()
const;
666 virtual bool saveEncryptedWorldTemplatePacksAsZips()
const;
669 virtual bool allowsResourcePackDevelopment()
const;
672 virtual bool supportsLegacySinglePremiumCacheDirectory()
const;
675 virtual bool supportsWorldShare()
const;
678 virtual bool hasJournalingFilesystem()
const;
681 virtual bool isAutoCompactionEnabled()
const;
684 virtual ::std::chrono::nanoseconds getLevelSaveInterval()
const;
687 virtual ::std::chrono::nanoseconds getOptionsSaveInterval()
const;
690 virtual bool hasPlatformSpecificInvites()
const ;
693 virtual bool usePlatformProfilePicturesOnly()
const;
696 virtual bool allowBetaXblSignIn()
const;
699 virtual bool requiresXboxLiveSigninToPlay()
const;
702 virtual bool requiresLiveGoldForMultiplayer()
const;
705 virtual bool shouldRegisterForXboxLiveNotifications()
const;
708 virtual bool isRealmsEnabled()
const ;
711 virtual bool minimizeBackgroundDownloads()
const;
714 virtual bool requiresAutoSaveIconExplanationPopup()
const;
717 virtual ::IPlatformScreenshots& getPlatformScreenshots();
720 virtual ::std::vector<::std::shared_ptr<::Social::MultiplayerService>> getMultiplayerServiceListToRegister()
const;
723 virtual ::std::vector<::Social::MultiplayerServiceIdentifier>
724 getBroadcastingMultiplayerServiceIds(
bool xblBroadcast,
bool platformBroadcast)
const ;
727 virtual uint maxFileDataRequestConcurrency()
const;
730 virtual void goToExternalConsumablesStoreListing()
const ;
733 virtual float getStoreNetworkFailureTimeout()
const;
736 virtual ::std::shared_ptr<::Core::FileStorageArea>
737 createLoggingStorageArea(::Core::FileAccessType fileAccessType,
::Core::PathView loggingPath);
740 virtual void handlePlatformSpecificCommerceError(uint error);
743 virtual bool isEduMode()
const;
746 virtual bool importAsFlatFile()
const;
749 virtual bool isWebviewSupported()
const;
755 virtual bool canAppSelfTerminate()
const = 0;
758 virtual bool getPlatformTTSExists()
const;
761 virtual bool getPlatformTTSEnabled()
const;
764 virtual ::std::variant<::HWND__*, ::std::monostate> getRenderSurfaceParameters()
const;
767 virtual bool shouldRemoveGraphicsDeviceOnAppTermination()
const;
770 virtual bool isJoinableViaExternalServers()
const;
773 virtual void onPrimaryUserNetworkReady();
776 virtual bool isDisplayInitialized()
const;
779 virtual bool usesAsyncOptionSaving()
const;
782 virtual void showPlatformStoreIcon(
bool shouldShow);
785 virtual void showPlatformEmptyStoreDialog(::std::function<
void(
bool)>&& callback) ;
788 virtual void initializeGameStreaming();
791 virtual void notifyNetworkConfigurationChanged();
794 virtual void setKeepScreenOnFlag(
bool);
797 virtual void initializeMulticast()
const;
800 virtual void requestMulticastReceivePermission();
803 virtual bool hasMulticastReceivePermission()
const;
806 virtual void releaseMulticastReceivePermission()
const;
809 virtual void onMinecraftGameInitComplete();
812 virtual void onFullGameUnlock();
815 virtual bool is24HourTimeFormat()
const;
818 virtual ::Bedrock::Threading::Async<bool> showOSUserDialog(::std::string, ::std::string, ::std::string);
821 virtual ::Core::PathBuffer<::std::string> _getCurrentStoragePath()
const = 0;
824 virtual ::Core::PathBuffer<::std::string> _getExternalStoragePath()
const = 0;
827 virtual ::Core::PathBuffer<::std::string> _getInternalStoragePath()
const = 0;
830 virtual ::Core::PathBuffer<::std::string> _getUserdataPath()
const = 0;
833 virtual bool _tryEnableCPUBoost();
836 virtual void _disableCPUBoost();
839 virtual void _initializeFileStorageAreas();
842 virtual void _teardownFileStorageAreas();
845 virtual int getPlatformDpi()
const;
848 virtual ::UIScalingRules getPlatformUIScalingRules()
const;
851 virtual ::Core::PathBuffer<::std::string> getPlatformTempPath()
const = 0;
854 virtual void _onInitialize();
857 virtual void _onTeardown();
863 MCNAPI
AppPlatform(
bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
879 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
HOME_PATH();
881 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
LOG_PATH();
883 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
SETTINGS_PATH();
885 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
SHADERCACHE_PATH();
891 MCNAPI
void*
$ctor(
bool registerService, ::std::unique_ptr<::IAppPlatformImpl> impl);
999 MCNAPI ::Bedrock::NotNullNonOwnerPtr<::IFileAccess>
$getFileAccess(::ResourceFileSystem fileSystem);
1061 MCNAPI ::std::set<::Core::PathBuffer<::std::string>>
1272 MCNAPI ::std::vector<::Social::MultiplayerServiceIdentifier>
1281 MCNAPI ::std::shared_ptr<::Core::FileStorageArea>
1334 MCNAPI ::Bedrock::Threading::Async<bool>
$showOSUserDialog(::std::string, ::std::string, ::std::string);
Definition AppLifecycleContext.h:5
Definition HardwareMemoryTierUtil.h:16
Definition IFileAccess.h:15
Definition ISecureStorageKeySystem.h:10
Definition SecureStorageKey.h:5
Definition SecureStorage.h:5
Definition WebviewInterface.h:5
Definition IntegrityTokenResult.h:5
Definition UserCreationData.h:7