You are missing dependencies for the use of: RHIGetAvailableResolutions( ) and FScreenResolutionArray.
[GameName.Build.cs]
PublicDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "InputCore", "RHI" });
[h]
#pragma once
#include "UObject/NoExportTypes.h"
#include "Display.generated.h"
USTRUCT(BlueprintType)
struct FDisplayInfo
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = DisplayInfo)
int32 Width;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = DisplayInfo)
int32 Height;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = DisplayInfo)
int32 RefreshRate;
FDisplayInfo()
{
Width = Height = RefreshRate = 0;
}
};
UCLASS( )
class F133110_API UDisplay : public UObject
{
GENERATED_BODY( )
public:
UDisplay( );
UFUNCTION(BlueprintPure, Category = Utility)
TArray<struct FDisplayInfo> GetDisplayResolutions();
};
**[cpp]
**
#include "F133110.h"
#include "Runtime/RHI/Public/DynamicRHI.h"
#include "Runtime/NullDrv/Public/NullRHI.h"
#include "Display.h"
UDisplay::UDisplay( )
{
}
TArray<FDisplayInfo> UDisplay::GetDisplayResolutions( )
{
TArray<FDisplayInfo> ResolutionsToReturn;
FScreenResolutionArray Resolutions;
if( RHIGetAvailableResolutions( Resolutions, false ) )
{
for( FScreenResolutionRHI RHI : Resolutions )
{
FDisplayInfo DisplayInfo;
DisplayInfo.Width = RHI.Width;
DisplayInfo.Height = RHI.Height;
DisplayInfo.RefreshRate = RHI.RefreshRate;
ResolutionsToReturn.Add( DisplayInfo );
}
}
return ResolutionsToReturn;
}