* Added a function to RedirectCollector to ingest soft package references
* Push the harevest soft package references from save to the redirect collector on a succesful save
* Moved the processing of soft package reference associated with a package during cook to after that package has been saved
#rb Matt.Peters
#jira UE-115137
[CL 16534223 by Francis Hurteau in ue5-main branch]
- The mirage specific code is disabled behind the define UE_USE_VIRTUALBULKDATA, this means that some code paths in Texture/Mesh are much more complex than they need to be as we support both old and new paths. Once the system has been turned on and confirmed to cause no issues then this will be stripped out.
- SavePackageUtilities.cpp, SavePackage.cpp and SavePackage2.cpp are editgrates rather than integrations as those files have changes in DevCooker that we don't want to bring over immediately.
- Also includes a prototype system for storing bulkdata in a sidecar file in the workspace domain rather than in the .uasset/.umap file which although has been discontinued as part of mirage, will have applications for future work for non-virtualized projects and/or text based assets.
#rb Patrick.Finegan (all changes have been reviewed when submitted to Dev-Cooker)
#tests Cooking and running ShooterGame/Frosty and other sample programs using megascan assets
#rnx
#preflight 608be50d870cf400013ff99d
[CL 16167285 by paul chipchase in ue5-main branch]
Interim BlueprintGeneratedClass::IsAsset change:
All code that is enumerating unfiltered assets in a package/outer needs to handle multiple assets, or if it can't, needs to call ShouldSkipAsset or IsUAsset to skip over the non-UAsset assets.
Move UE::AssetRegistry::FFiltering into CoreUObject to make it accessible to FindAssetInPackage.
#rb Dave.Belanger
#rnx
[CL 15766334 by Matt Peters in ue5-main branch]
LIMITATIONS:
1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.
KNOWN ISSUES:
1) Changes to enumerations and structures will not be reflected in existing blueprints. However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.
CHANGES:
1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.
2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API
3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.
Robert did the review on the changes covered by Part 2. Remaining changes are all straightforward.
#rb robert.manuszewski
#jira UE-74493
[CL 15736777 by Tim Smith in ue5-main branch]
If FPackageName::DoesPackageExist uses DoesPackageExistOverrideDelegate to find the package, it needs to set the extension to a special marker EmptyExtension, so that IPackageResourceManagerFile sends the filename without an extension to IFileManager rather than searching for one of the regular extensions.
#rb Francis.Hurteau
#rnx
[CL 15016768 by Matt Peters in ue5-main branch]
Create a new interface IPackageResourceManager that handles all attempts to load packages from storage. The default implementation passes through to loading from IFileManager. Future implementations will load from other services such as the EditorDomain and TargetDomain.
Add FPackagePath class that holds a LocalFilePath or LongPackageName, or a relative path to a package under a mounted content root (which can be converted into either the LocalFilePath or LongPackageName).
Modify LinkerLoad, BulkData, and AsyncLoader to use FPackagePath and IResourceManager.
Modify UPackage and FLinkerLoad to have a FPackagePath instead of a Filename.
#rb Paul.Chipchase, CarlMagnus.Nordin, Francis.Hurteau, Devin.Doucette
#rn Major Core
[CL 14814912 by Matt Peters in ue5-main branch]
Remove gameplay framework and related CoreUObject code that was deprecated back in 4.18 or earlier
Properly deprecate soft object typedefs instead of removing them as they never had a full deprecation cycle
Skipped files that I know have pending changes from UE4 or appear to still be in use in some situations
#rb steve.robb
[CL 14359153 by ben zeigler in ue5-main branch]
Including StringFwd.h in place of forward declarations offers more flexibility to change how these types are declared.
#jira none
#rb Steve.Robb
[RN] minor Core
#ROBOMERGE-SOURCE: CL 12235779 in //UE4/Release-4.25/... via CL 12235792
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)
[CL 12237495 by devin doucette in Main branch]
[FYI] JeanMichel.Dignard
#jira none
#rb none
#ROBOMERGE-SOURCE: CL 12230876 in //UE4/Release-4.25/... via CL 12230885
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v664-12234175)
[CL 12234733 by johan torp in Main branch]
#rb CopyUp
#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ryan.vance
#ROBOMERGE-SOURCE: CL 12149088 via CL 12150247
#ROBOMERGE-BOT: (v659-12123632)
[CL 12150618 by ryan vance in Main branch]
* Added some core string conversion paths
* Added FString::Append() and += overloads to avoid pointless temporaries when appending c strings and various other string types
* Added UTF32 <-> TCHAR string conversion macros
* Optimized QuotedString parsing
* Optimized property parsing
* PackageName optimizations
* SoftObjectPath optimizations
#jira none
#rb see original changelists
#ushell-cherrypick of 11932317 by Johan.Torp
#ushell-cherrypick of 11932319 by Johan.Torp
#ushell-cherrypick of 11932321 by Johan.Torp
#ushell-cherrypick of 11932322 by Johan.Torp
#ushell-cherrypick of 11932324 by Johan.Torp
#ushell-cherrypick of 11932462 by Johan.Torp
#ushell-cherrypick of 11934123 by Johan.Torp
#ushell-cherrypick of 12000177 by Johan.Torp
#ushell-cherrypick of 12000183 by Johan.Torp
#ushell-cherrypick of 12114232 by Johan.Torp
#ROBOMERGE-SOURCE: CL 12147981 in //UE4/Release-4.25/... via CL 12147984
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v659-12123632)
[CL 12147986 by johan torp in Main branch]