-Fix bug in the interpretation of mip offset in FTextureBuildFunction (it is offset into uncomrpessed data, not offset into compressed data)

-Added more metadata to the output of the texture export feature.
-Make FTextureBuildFunction stateless and abstract.  Now must be derived to produce an instantiable build function.
-Made PS5TextureFormat, TextureFormatOodle, and TextureFormatUncompressed modules depend on TextureBuild module and implement concrete derivatives of FTextureBuildFunction.
-Made PS5TextureFormat, TextureFormatOodle, and TextureFormatUncompressed modules register their build functions through an IBuildFunctionFactory for the lifetime of the module.
-Removed all public interface for the DerivedDataBuild{Loop, Worker} and have them just use the IBuildFunctionFactory modular feature to find all linked build functions.

#rb devin.doucette
#preflight 60acfb486905a60001c3cd29

#ROBOMERGE-SOURCE: CL 16448407 in //UE5/Main/... via CL 16448442
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Release-Engine-Staging) (v818-16446889)

[CL 16448447 by zousar shaker in ue5-release-engine-staging branch]
This commit is contained in:
zousar shaker
2021-05-25 10:39:09 -04:00
parent 34a42be099
commit f701ac3244
11 changed files with 109 additions and 104 deletions
@@ -18,6 +18,8 @@
#include "Misc/FileHelper.h"
#include "Serialization/CompactBinary.h"
#include "Serialization/CompactBinaryWriter.h"
#include "TextureBuildFunction.h"
#include "DerivedDataBuildFunctionFactory.h"
#include "oodle2tex.h"
@@ -1128,6 +1130,12 @@ static void TFO_InstallPlugins()
OodleTex_Plugins_SetAllocators(TFO_OodleMallocAligned, TFO_OodleFree);
}
class FOodleTextureBuildFunction final : public FTextureBuildFunction
{
FStringView GetName() const final { return TEXT("OodleTexture"); }
FGuid GetVersion() const final { return FGuid(TEXT("e6b8884f-923a-44a1-8da1-298fb48865b2")); }
};
class FTextureFormatOodleModule : public ITextureFormatModule
{
public:
@@ -1158,7 +1166,11 @@ public:
}
return Singleton;
}
static UE::DerivedData::TBuildFunctionFactory<FOodleTextureBuildFunction> BuildFunctionFactory;
};
UE::DerivedData::TBuildFunctionFactory<FOodleTextureBuildFunction> FTextureFormatOodleModule::BuildFunctionFactory;
IMPLEMENT_MODULE(FTextureFormatOodleModule, TextureFormatOodle);
@@ -30,9 +30,10 @@ public class TextureFormatOodle : ModuleRules
PrivateIncludePathModuleNames.AddRange(
new string[] {
"CoreUObject",
"DerivedDataCache",
"Engine",
"TargetPlatform",
"TextureCompressor",
"Engine"
}
);
@@ -41,6 +42,7 @@ public class TextureFormatOodle : ModuleRules
"Core",
"ImageCore",
"ImageWrapper",
"TextureBuild"
}
);