You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
this way having the OODLE_ or TFO_ prefix enabled doesn't break ETC or ASTC remaps in the platform fix TextureFormatRemovePrefixFromName incorrectly assuming format names don't have underscores in them Platform remap config no longer needs prefixed versions this also turns on Oodle for Android DXT flavor #preflight https://horde.devtools.epicgames.com/job/63fcf77960163ed3c2494e6e #rb dan.thompson #jira none [CL 24428598 by charles bloom in ue5-main branch]
83 lines
3.0 KiB
C++
83 lines
3.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "IO/IoHash.h"
|
|
#include "ImageCore.h"
|
|
#include "Interfaces/ITextureFormat.h"
|
|
|
|
struct FTextureBuildSettings;
|
|
|
|
/***
|
|
|
|
TextureBuildUtilities is a utility module for shared code that Engine and TextureBuildWorker (no Engine) can both see
|
|
|
|
for Texture-related functions that don't need Texture.h/UTexture
|
|
|
|
TextureBuildUtilities is hard-linked to the Engine so no LoadModule/ModuleInterface is needed
|
|
|
|
***/
|
|
|
|
namespace UE
|
|
{
|
|
namespace TextureBuildUtilities
|
|
{
|
|
|
|
namespace EncodedTextureExtendedData
|
|
{
|
|
TEXTUREBUILDUTILITIES_API FCbObject ToCompactBinary(const FEncodedTextureExtendedData& InExtendedData);
|
|
TEXTUREBUILDUTILITIES_API bool FromCompactBinary(FEncodedTextureExtendedData& OutExtendedData, FCbObject InCbObject);
|
|
}
|
|
|
|
namespace EncodedTextureDescription
|
|
{
|
|
TEXTUREBUILDUTILITIES_API FCbObject ToCompactBinary(const FEncodedTextureDescription& InDescription);
|
|
TEXTUREBUILDUTILITIES_API bool FromCompactBinary(FEncodedTextureDescription& OutDescription, FCbObject InCbObject);
|
|
}
|
|
|
|
namespace TextureEngineParameters
|
|
{
|
|
TEXTUREBUILDUTILITIES_API FCbObject ToCompactBinaryWithDefaults(const FTextureEngineParameters& InEngineParameters);
|
|
TEXTUREBUILDUTILITIES_API bool FromCompactBinary(FTextureEngineParameters& OutEngineParameters, FCbObject InCbObject);
|
|
}
|
|
|
|
// Carries information out of the build that we don't want to cook or save off in the runtime
|
|
struct TEXTUREBUILDUTILITIES_API FTextureBuildMetadata
|
|
{
|
|
// Whether or not the first mip level of the source has alpha detected. This is used e.g.
|
|
// picking between BC1 and BC3
|
|
bool bSourceMipsAlphaDetected = false;
|
|
|
|
// Digests of the data at various processing stages so we can track down determinism issues
|
|
// that arise.
|
|
FIoHash PreEncodeMipsHash;
|
|
|
|
FCbObject ToCompactBinaryWithDefaults() const;
|
|
FTextureBuildMetadata(FCbObject InCbObject);
|
|
FTextureBuildMetadata() = default;
|
|
};
|
|
|
|
TEXTUREBUILDUTILITIES_API bool TextureFormatIsHdr(FName const& InName);
|
|
|
|
// Removes platform and other custom prefixes from the name.
|
|
// Returns plain format name and the non-platform prefix (with trailing underscore).
|
|
// i.e. PLAT_BLAH_AutoDXT returns AutoDXT and writes BLAH_ to OutPrefix.
|
|
TEXTUREBUILDUTILITIES_API const FName TextureFormatRemovePrefixFromName(FName const& InName, FName& OutPrefix);
|
|
|
|
// removes platform prefix but leaves other custom prefixes :
|
|
TEXTUREBUILDUTILITIES_API const FName TextureFormatRemovePlatformPrefixFromName(FName const& InName);
|
|
|
|
FORCEINLINE const FName TextureFormatRemovePrefixFromName(FName const& InName)
|
|
{
|
|
FName OutPrefix;
|
|
return TextureFormatRemovePrefixFromName(InName,OutPrefix);
|
|
}
|
|
|
|
// Get the format to use for output of the VT Intermediate stage, cutting into tiles and processing
|
|
// the next step will then encode from this format to the desired output format
|
|
TEXTUREBUILDUTILITIES_API ERawImageFormat::Type GetVirtualTextureBuildIntermediateFormat(const FTextureBuildSettings& BuildSettings);
|
|
|
|
} // namespace TextureBuildUtilities
|
|
} // namespace UE
|