This allows it to be used by things that create class/struct/enum types (which only requires CoreUObject) without them needing to add an additional dependency on the Engine
#rb Rex.Hill
[CL 28462741 by jamie dale in ue5-main branch]
Missing features include serialization, versioning of unknown properties, nesting property bags, and integration with garbage collection.
#rb Francis.Hurteau, Phillip.Kavan, Andrew.Davidson
[CL 28419605 by devin doucette in ue5-main branch]
2) Initial version of the merged UEGC and VerseGC
3) Unit tests for the merged GC
#rb johan.torp robert.manuszewski
[CL 28411269 by tim smith in ue5-main branch]
- Add partial flush support from loading thread
- Fix the ConvertFromType allowing to load the softobjectptr during its conversion to hardref even when called from ALT and zenloader is active
- Add unittest to exercise softobjectptr to hardref conversion in ConvertFromType
- Move asserts preventing flush from loading thread directly into legacy loader
- Added a few veryverbose logs that were missing for linker load
- Fix partial loading being applied to sync calls coming from a postload, preventing the object to be fully postloaded before finishing the sync load
#rb Francis.Hurteau
[CL 28373045 by danny couture in ue5-main branch]
Add's support for `[at]editable` on optionals:
`FOptionalProperty` changes:
- Added custom `__INIT__` logic for `FOptionalProperty::ExportText` which previously could output no text as the optional value was initialized but returned an empty string as its export text (ie: empty arrays, maps, sets, etc). This caused the future text imports to be incorrect.
`FPropertyNode` changes:
- Added `OptionalValueNode` as private member similar in idea to existing `PropertyKeyNode`. It stores the generated `FPropertyNode` for a FOptionalValue's Value when it is set.
- Added helper function `GetOrCreateOptionalValueNode` which either returns the existing `OptionalValueNode` OR creates one if appropriate.
- Note: This is where we bind a lambda to our Optional's Value FPropertyNode's `RebuildChildren` event which is how we update/rebuild when needed. In places where we would update/rebuild we instead call our Value to do so instead if set and then update after that has been done via this callback.
Added new widget `SPropertyEditorOptional`
- This either:
- shows a dropdown of "Set all" or "Unset all" if we have multiple values selected
- generates the editor for whatever our set value is if we have a single value (See `GetSingleReadAddress`)
- shows a 'set value' button if we are not set
#JIRA UE-191200
#rb karen.jirak
#rb kurtis.schmidt
[CL 28253719 by jared cotton in ue5-main branch]
Particularly when there are warnings importing text from a config file to avoid just getting "asset 'none'"
#rnx
[CL 28246065 by marc audy in ue5-main branch]
- Add a new partial loading mode where flushing the requestID will exit after serialization is done (after exportdone but before postload)
- Automatically opt-in partial loading when an explicit load is called recursively from another load (treated as an import)
- During recursive loading, attach postload of the recursive load to the caller's postload
- Add loading unit tests to validate the new behavior for zenloader
- Add a way to detect which loader is currently active to run unit tests on zenloader only
#rnx
#jira UE-190649
#rb Francis.Hurteau
[CL 28227792 by danny couture in ue5-main branch]
[FYI] danny.couture
Original CL Desc
-----------------------------------------------------------------
[ZenLoader] Fix recursive loading behavior in zenloader by following more closely how legacy loading works
- Add a new partial loading mode where flushing the requestID will exit after serialization is done (after exportdone but before postload)
- Automatically opt-in partial loading when an explicit load is called recursively from another load (treated as an import)
- During recursive loading, attach postload of the recursive load to the caller's postload
- Add loading unit tests to validate the new behavior for zenloader
- Add a way to detect which loader is currently active to run unit tests on zenloader only
#rnx
#jira UE-190649
#rb Francis.Hurteau
[CL 28214800 by bob tellez in ue5-main branch]
* Move the FArchiveCookContext enums into a namespace so they can be included from other types that need them without using FArchiveCookContext.
* Make construction of CookContext a TOptional to avoid constructing it when not cooking; the new constructor will be more difficult to call.
* Technically enforce the lifetime of ArchiveCookContext during SaveCookedPackage by making it a TOptional.
* Add a default constructor for FArchiveTag
* Remove a deprecated UObject virtual function that will be changing again in the upcoming change.
* Move AssetRegistry's bUpdateDiskCacheAfterLoad into a variable outside the critical section to make it cheaper to read; it is immutable after AssetRegistry is constructed.
* Remove use of the soft-deprecated FAssetData constructor that takes a bool rather than ECreationFlags.
* Reduce some duplication in FAssetRegistryState::FilterTags
* FAssetBundleData: use the native exporter in the case when defaults are provided but are pointing to the object itself; this combination of parameters means that no defaults are available and the entire struct should be exported. Use of the native exporter is necessary for correctness; the generic exporter incorrectly writes both the deprecated and the new variables.
ExportToText is used with defaults == object when called from GetAssetRegistryTagFromProperty called from GetAssetRegistryTags in obj.cpp.
* UObjectRedirector::GetAssetRegistryTags by contract should call the Super's version of the function.
* UBlueprintGeneratedClass::GetAssetRegistryTags does not need to append actor tags when saving in the cookcommandlet since GetAssetRegistryTags is not called when saving cooked packages and no other saves are executed in the cook commandlet.
* NiagaraEditorSettings GetAssetRegistryTags: sort the ClassPaths in the ClassUsageList to remove indeterminism.
* Whitespace fixes
#rnx
#rb Zousar.Shaker, Dan.Thompson, Robert.Millar, Frank.Fella
[CL 28209382 by matt peters in ue5-main branch]
- Add a new partial loading mode where flushing the requestID will exit after serialization is done (after exportdone but before postload)
- Automatically opt-in partial loading when an explicit load is called recursively from another load (treated as an import)
- During recursive loading, attach postload of the recursive load to the caller's postload
- Add loading unit tests to validate the new behavior for zenloader
- Add a way to detect which loader is currently active to run unit tests on zenloader only
#rnx
#jira UE-190649
#rb Francis.Hurteau
[CL 28184263 by danny couture in ue5-main branch]
- Introduced the following to FPaths:
- EnginePlatformExtensionDir(Platform) - gets the Engine PlatExt dir for the given platform
- ProjectPlatformExtensionDir(Platform) - gets the Project PlatExt dir for the given platform, where Project can be a Program
- ConvertPath(Path, Method, ExtraData) - converts a Path for platform extensions and Restricted locations. This is going to be "ground truth" for how to get an extension directory (the two functions above call this).
- Added FConfigContext::VisualizeHierarchy() (static and member versions with differing params) that can log ini hierarchies
#rb david.harvey
[CL 28140788 by josh adams in ue5-main branch]