bEnablePlatformIntegration
bEnablePlatformIntegration
#Overview
name: bEnablePlatformIntegration
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 5
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bEnablePlatformIntegration is to control whether the integrated platform options container will be set at platform creation time in the Epic Online Services (EOS) SDK integration within Unreal Engine.
This setting variable is primarily used in the EOSShared plugin, which is part of the Online subsystem in Unreal Engine. Specifically, it’s utilized in the EOSSDKManager class, which manages the integration of the EOS SDK with the engine.
The value of this variable is set in the LoadConfig() function of the EOSSDKManager class. It reads the value from the engine’s configuration file (GEngineIni) under a specific section.
bEnablePlatformIntegration interacts with several other components of the EOS integration:
- It determines whether the CreateIntegratedPlatformOptionsContainer() function is called in the ApplyIntegratedPlatformOptions() method.
- It affects the behavior of the IsRenderReady() function.
- It controls whether the SetToggleFriendsButton functionality is applied in the SetInvokeOverlayButton() method.
Developers must be aware that enabling this variable will activate the integrated platform features of the EOS SDK. This can have implications for how the game interacts with platform-specific features and may affect performance or behavior on different platforms.
Best practices when using this variable include:
- Carefully consider whether you need the integrated platform features before enabling this option.
- Test thoroughly on all target platforms when changing this setting, as it can affect platform-specific behavior.
- Be aware of any licensing or terms of service implications when enabling advanced platform integration features.
- Ensure that the rest of your game’s code is prepared to handle the integrated platform features if you enable this option.
- Document the decision to enable or disable this feature, including the reasoning, for future reference.
#Setting Variables
#References In INI files
Location: <Workspace>/Projects/Lyra/Config/Custom/SteamEOS/DefaultEngine.ini:84, section: [EOSSDK]
- INI Section:
EOSSDK
- Raw value:
true
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:462
Scope (from outer to inner):
file
function void FEOSSDKManager::ApplyIntegratedPlatformOptions
Source code excerpt:
}
if (bEnablePlatformIntegration)
{
Container = CreateIntegratedPlatformOptionsContainer();
if (Container != nullptr)
{
//UE does not support EOS_IPMF_LibraryManagedBySDK due to functionality overlap
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:698
Scope (from outer to inner):
file
function void FEOSSDKManager::LoadConfig
Source code excerpt:
GConfig->GetDouble(SectionName, TEXT("TickIntervalSeconds"), ConfigTickIntervalSeconds, GEngineIni);
bEnablePlatformIntegration = false;
GConfig->GetBool(SectionName, TEXT("bEnablePlatformIntegration"), bEnablePlatformIntegration, GEngineIni);
InvokeOverlayButtonCombination = EOS_UI_EInputStateButtonFlags::EOS_UISBF_Special_Left;
FString ButtonCombinationStr;
GConfig->GetString(SectionName, TEXT("InvokeOverlayButtonCombination"), ButtonCombinationStr, GEngineIni);
if (!ButtonCombinationStr.IsEmpty())
{
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:787
Scope (from outer to inner):
file
function bool FEOSSDKManager::IsRenderReady
Source code excerpt:
bool FEOSSDKManager::IsRenderReady()
{
if (bEnablePlatformIntegration)
{
if (bRenderReady)
{
return true;
}
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.cpp:818
Scope (from outer to inner):
file
function void FEOSSDKManager::SetInvokeOverlayButton
Source code excerpt:
void FEOSSDKManager::SetInvokeOverlayButton(const EOS_HPlatform PlatformHandle)
{
if (bEnablePlatformIntegration)
{
if (EOS_HUI UIHandle = EOS_Platform_GetUIInterface(PlatformHandle))
{
EOS_UI_SetToggleFriendsButtonOptions Options = { };
Options.ApiVersion = 1;
UE_EOS_CHECK_API_MISMATCH(EOS_UI_SETTOGGLEFRIENDSBUTTON_API_LATEST, 1);
#Loc: <Workspace>/Engine/Plugins/Online/EOSShared/Source/EOSShared/Private/EOSSDKManager.h:146
Scope (from outer to inner):
file
class class FEOSSDKManager : public IEOSSDKManager, public FSelfRegisteringExec
Source code excerpt:
/** Whether or not the integrated platform options container will be set at platform creation time */
bool bEnablePlatformIntegration = false;
/** Button combination to bring up the overlay (only used in certain platforms) */
EOS_UI_EInputStateButtonFlags InvokeOverlayButtonCombination;
/** Management flags passed on as options in integrated platform setup */
EOS_EIntegratedPlatformManagementFlags IntegratedPlatformManagementFlags = {};