Files
UnrealEngineUWP/Engine/Source/Developer/TargetPlatform/Public/Interfaces/ITargetPlatformControlsModule.h
florin pascu 367836ea48 First part of TargetPlatform(TP) refactor into TargetPlatformSettings(TPS) and TargetPlatformControls(TPC)
TPS doesn't need SDK and will be used to get info about the platform
TPC requires SDK
AndroidTP has been converted to the new system
#jira UE-200883
#rb Jack.Porter

[CL 30963885 by florin pascu in ue5-main branch]
2024-01-29 04:50:19 -05:00

54 lines
1.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
#include "Interfaces/ITargetPlatformControls.h"
/**
* Interface for target platform modules.
*/
class ITargetPlatformControlsModule
: public IModuleInterface
{
public:
/** Virtual destructor. */
virtual ~ITargetPlatformControlsModule()
{
for (ITargetPlatformControls* TP : AllTargetPlatforms)
{
delete TP;
}
AllTargetPlatforms.Empty();
}
/**
* Gets the module's target platforms. This should be overridden by each platform, but
* currently, we are re-using the single internal GetTargetPlatform method the old TPModules will implement
*
* @return The target platform.
*/
TArray<ITargetPlatformControls*> GetTargetPlatformControls(FName& PlatformSettingsModuleName)
{
if (AllTargetPlatforms.Num() == 0)
{
GetTargetPlatformControls(AllTargetPlatforms, PlatformSettingsModuleName);
}
return AllTargetPlatforms;
}
protected:
/**
* This is where each platform module will fill out an array
*/
virtual void GetTargetPlatformControls(TArray<ITargetPlatformControls*>& TargetPlatforms, FName& PlatformSettingsModuleName) = 0;
private:
/** Holds the target platforms. */
TArray<ITargetPlatformControls*> AllTargetPlatforms;
};