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:

  1. It determines whether the CreateIntegratedPlatformOptionsContainer() function is called in the ApplyIntegratedPlatformOptions() method.
  2. It affects the behavior of the IsRenderReady() function.
  3. 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:

  1. Carefully consider whether you need the integrated platform features before enabling this option.
  2. Test thoroughly on all target platforms when changing this setting, as it can affect platform-specific behavior.
  3. Be aware of any licensing or terms of service implications when enabling advanced platform integration features.
  4. Ensure that the rest of your game’s code is prepared to handle the integrated platform features if you enable this option.
  5. 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]

#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 = {};