bIsConfidential
bIsConfidential
#Overview
name: bIsConfidential
The value of this variable can be defined or overridden in .ini config files. 9
.ini config files referencing this setting variable.
It is referenced in 7
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bIsConfidential is to indicate whether a particular platform in Unreal Engine 5 is considered confidential or not. This setting is used to manage platform-specific behaviors, especially related to file paths and access restrictions.
This setting variable is primarily used in the Core module of Unreal Engine, specifically in areas dealing with platform information, file management, and build processes. It’s also referenced in the UnrealEd and ScreenShotComparisonTools modules.
The value of this variable is set in the platform-specific configuration files and loaded through the DataDrivenPlatformInfoRegistry system. It’s typically defined in the platform’s .ini file and loaded during engine initialization.
bIsConfidential interacts with other platform-specific settings and influences the behavior of various systems, particularly those dealing with file paths and build processes. For example, it affects the directory structure used for storing platform-specific files and build artifacts.
Developers must be aware that when bIsConfidential is set to true for a platform, it changes how certain file paths are constructed. This can affect where files are stored and how they are accessed, particularly for build outputs and screenshot comparisons.
Best practices when using this variable include:
- Ensure that the correct value is set in the platform’s configuration file.
- Be aware of how it affects file paths in your project, especially if you’re working with multiple platforms.
- Respect the confidentiality implications when this flag is set to true. It may indicate that extra care should be taken with files and information related to this platform.
- When developing cross-platform features, consider how this flag might affect your code’s behavior on different platforms.
- Use the FDataDrivenPlatformInfoRegistry::GetPlatformInfo() function to access this setting, rather than hardcoding platform-specific behavior.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/Android/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/IOS/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/LinuxArm64/DataDrivenPlatformInfo.ini:4, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/Mac/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/TVOS/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/Unix/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/VulkanPC/DataDrivenPlatformInfo.ini:7, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/Windows/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Platforms/VisionOS/Config/DataDrivenPlatformInfo.ini:2, section: [DataDrivenPlatformInfo]
- INI Section:
DataDrivenPlatformInfo
- Raw value:
false
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Developer/ScreenShotComparisonTools/Private/ScreenShotManager.cpp:96
Scope (from outer to inner):
file
function FString FScreenShotManager::GetApprovedFolderForImageWithOptions
Source code excerpt:
const FDataDrivenPlatformInfo& PlatInfo = FDataDrivenPlatformInfoRegistry::GetPlatformInfo(MetaData.Platform);
bool bUsePlatformPath = PlatInfo.bIsConfidential && (InOptions & EApprovedFolderOptions::UsePlatformFolders) == 0;
// Test folder will be MapOrContext/ImageName
FString TestFolder = GetPathComponentForTestImages(MetaData, false);
FString OutPath = FPaths::ProjectDir();
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Commandlets/AssetRegistryGenerator.cpp:2004
Scope (from outer to inner):
file
function bool FAssetRegistryGenerator::WriteCookerOpenOrder
Source code excerpt:
{
TStringBuilder<256> OpenOrderFilename;
if (FDataDrivenPlatformInfoRegistry::GetPlatformInfo(TargetPlatform->PlatformName()).bIsConfidential)
{
OpenOrderFilename.Appendf(TEXT("%sPlatforms/%s/Build/FileOpenOrder/CookerOpenOrder.log"), *FPaths::ProjectDir(), *TargetPlatform->PlatformName());
}
else
{
OpenOrderFilename.Appendf(TEXT("%sBuild/%s/FileOpenOrder/CookerOpenOrder.log"), *FPaths::ProjectDir(), *TargetPlatform->PlatformName());
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/HAL/IPlatformFileOpenLogWrapper.cpp:47
Scope (from outer to inner):
file
function bool FPlatformFileOpenLog::Initialize
Source code excerpt:
for (int32 Platform = 0; Platform < PlatformNames.Num(); ++Platform)
{
if (FDataDrivenPlatformInfoRegistry::GetPlatformInfo(PlatformNames[Platform]).bIsConfidential)
{
LogFileDirectory = FPaths::Combine(OutputDirectoryBase, TEXT("Platforms"), *PlatformNames[Platform], TEXT("Build"), TEXT("FileOpenOrder"));
}
else
{
LogFileDirectory = FPaths::Combine(OutputDirectoryBase, TEXT("Build"), *PlatformNames[Platform], TEXT("FileOpenOrder"));
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/HAL/IPlatformFileOpenLogWrapper.cpp:75
Scope (from outer to inner):
file
function bool FPlatformFileOpenLog::Initialize
Source code excerpt:
else
{
if (FDataDrivenPlatformInfoRegistry::GetPlatformInfo(FPlatformProperties::IniPlatformName()).bIsConfidential)
{
LogFileDirectory = FPaths::Combine(OutputDirectoryBase, TEXT("Platforms"), StringCast<TCHAR>(FPlatformProperties::PlatformName()).Get(), TEXT("Build"), TEXT("FileOpenOrder"));
}
else
{
LogFileDirectory = FPaths::Combine(OutputDirectoryBase, TEXT("Build"), StringCast<TCHAR>(FPlatformProperties::PlatformName()).Get(), TEXT("FileOpenOrder"));
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/Misc/DataDrivenPlatformInfoRegistry.cpp:336
Scope (from outer to inner):
file
function static void LoadDDPIIniSettings
Source code excerpt:
}
DDPIGetBool(IniFile, TEXT("bIsConfidential"), Info.bIsConfidential);
DDPIGetBool(IniFile, TEXT("bIsFakePlatform"), Info.bIsFakePlatform);
DDPIGetString(IniFile, TEXT("TargetSettingsIniSectionName"), Info.TargetSettingsIniSectionName);
DDPIGetString(IniFile, TEXT("HardwareCompressionFormat"), Info.HardwareCompressionFormat);
DDPIGetStringArray(IniFile, TEXT("AdditionalRestrictedFolders"), Info.AdditionalRestrictedFolders);
DDPIGetBool(IniFile, TEXT("Freezing_b32Bit"), Info.Freezing_b32Bit);
#Loc: <Workspace>/Engine/Source/Runtime/Core/Private/Misc/DataDrivenPlatformInfoRegistry.cpp:585
Scope (from outer to inner):
file
function const TArray<FName>& FDataDrivenPlatformInfoRegistry::GetConfidentialPlatforms
Source code excerpt:
for (auto It : GetAllPlatformInfos())
{
if (It.Value.bIsConfidential)
{
FoundPlatforms.Add(It.Key);
}
}
bHasSearchedForPlatforms = true;
#Loc: <Workspace>/Engine/Source/Runtime/Core/Public/Misc/DataDrivenPlatformInfoRegistry.h:125
Scope: file
Source code excerpt:
// is this platform confidential
bool bIsConfidential = false;
// some platforms are here just for IniParentChain needs and are not concrete platforms
bool bIsFakePlatform = false;
// the name of the ini section to use to load target platform settings (used at runtime and cooktime)
FString TargetSettingsIniSectionName;