You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Add various functions to use FLinearColor in addition to FColor Add support for EXR on platforms supporting HDR, but not openexr. This is driven by WITH_UNREALEXR_MINIMAL: the screenshot will not be compressed, only writes are supported, only RGBA float32 is supported as input (FLinearColor), and output will be RGB float16. The convention used is ScRGB, not BT2100-PQ to store the HDR data, since the viewers I tested with were expecting ScRGB . tested (both png and exr): Editor d3d11/d3d12: F9 / highresshot 2 / High Resolution Screenshot Tool w/ and w/o Custom Depth Mask, w/ and w/o Buffer attributes / Trace.Screenshot Game: shot / shot -showui / highresshot 2 / BugScreenShot / BugScreenShotWithHUDInfo (but HandleBugScreenShot is empty) / Trace.Screenshot / Trace.Screenshot w/ ui What doesn't work : ScreenshotCapturedDelegate.Broadcast in HDR #jira UE-140227 #rb charles.bloom eric.renaudhoude david.harvey #preflight 63359b01691c0168b74151f2 [CL 22327553 by benjamin rouveyrol in ue5-main branch]
70 lines
2.1 KiB
C#
70 lines
2.1 KiB
C#
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
using UnrealBuildTool;
|
|
|
|
public class ImageWrapper : ModuleRules
|
|
{
|
|
protected virtual bool bEnableMinimalEXR { get => false; }
|
|
|
|
public ImageWrapper(ReadOnlyTargetRules Target) : base(Target)
|
|
{
|
|
PublicIncludePathModuleNames.AddRange(new string[] {
|
|
"ImageCore"
|
|
}
|
|
);
|
|
|
|
PublicDefinitions.Add("WITH_UNREALPNG=1");
|
|
PublicDefinitions.Add("WITH_UNREALJPEG=1");
|
|
|
|
PrivateDependencyModuleNames.Add("Core");
|
|
|
|
PublicDependencyModuleNames.Add("LibTiff");
|
|
PublicDependencyModuleNames.Add("ImageCore");
|
|
|
|
AddEngineThirdPartyPrivateStaticDependencies(Target,
|
|
"zlib",
|
|
"UElibPNG",
|
|
"LibTiff"
|
|
);
|
|
|
|
// Jpeg Decoding
|
|
// LibJpegTurbo is much faster than UElibJPG but has not been compiled or tested for all platforms
|
|
// Note that currently this module is included at runtime, so consider the increase in exe size before
|
|
// enabling for any of the console/phone platforms!
|
|
|
|
if (Target.Platform.IsInGroup(UnrealPlatformGroup.Windows)
|
|
|| Target.Platform == UnrealTargetPlatform.Mac
|
|
|| Target.IsInPlatformGroup(UnrealPlatformGroup.Unix))
|
|
{
|
|
PublicDefinitions.Add("WITH_LIBJPEGTURBO=1");
|
|
AddEngineThirdPartyPrivateStaticDependencies(Target, "LibJpegTurbo");
|
|
}
|
|
else
|
|
{
|
|
PublicDefinitions.Add("WITH_LIBJPEGTURBO=0");
|
|
AddEngineThirdPartyPrivateStaticDependencies(Target, "UElibJPG");
|
|
}
|
|
|
|
bool bUseMinimalEXR = bEnableMinimalEXR;
|
|
// Add openEXR lib for windows builds.
|
|
if ((Target.Platform.IsInGroup(UnrealPlatformGroup.Windows)) ||
|
|
(Target.Platform == UnrealTargetPlatform.Mac) ||
|
|
(Target.IsInPlatformGroup(UnrealPlatformGroup.Unix) && Target.Architecture.StartsWith("x86_64")))
|
|
{
|
|
PublicDefinitions.Add("WITH_UNREALEXR=1");
|
|
AddEngineThirdPartyPrivateStaticDependencies(Target, "Imath");
|
|
AddEngineThirdPartyPrivateStaticDependencies(Target, "UEOpenExr");
|
|
bUseMinimalEXR = false;
|
|
}
|
|
else
|
|
{
|
|
PublicDefinitions.Add("WITH_UNREALEXR=0");
|
|
}
|
|
|
|
PublicDefinitions.Add("WITH_UNREALEXR_MINIMAL=" + (bUseMinimalEXR ? "1" : "0"));
|
|
|
|
// Enable exceptions to allow error handling
|
|
bEnableExceptions = true;
|
|
}
|
|
}
|