Commit Graph

2018 Commits

Author SHA1 Message Date
jamie dale
e067188f44 Added support for replacing the internal objects pointed to by an object-based element handle
This currently requires that either the old or new elements have no external references, as redirecting two elements with external references will require support for redirection within the element framework itself

#jira UE-107415
#rb Brooke.Hubert, Chris.Gagnon
#rnx

#ROBOMERGE-SOURCE: CL 15371192 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15371240 by jamie dale in ue5-main branch]
2021-02-09 18:10:04 -04:00
Zousar Shaker
bdfe4fff0f Split the representation in the reflection system of TObjectPtr fields into FObjectPtrProperty (derived from FObjectProperty and already existed since the introduction of wrapped object pointers) and a new FClassPtrProperty (derived from FClassProperty, and newly introduced in this change). As with raw pointers, UHT will generate code for one vs the other depending on whether the inner type is derived from UClass or not. The new reflection type is meant to be functionally equivalent to the existing one, except it changes how the PROPERTY (not the instance of the field on a containing object) is serialized to ensure it includes the MetaClass member as inherited from FClassProperty.
#rb robert.manuszewski

[CL 15317249 by Zousar Shaker in ue5-main branch]
2021-02-04 12:19:38 -04:00
jeanfrancois dube
72f364c778 Add support in FSoftObjectPath to resolve unloaded subobjects through top level object.
#rb ben.zeigler, matt.peters, patrick.enfedaque

#ROBOMERGE-SOURCE: CL 15307418 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15307421 by jeanfrancois dube in ue5-main branch]
2021-02-03 20:19:42 -04:00
Marc Audy
cac1fe0019 Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
This represents UE4/Main @ CL# 15277572

[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
Zousar Shaker
e6622f1e82 Fix ObjectHandle test failing after the wrapped object pointer upgrade as there are now more trackable sub-references in the content being loaded during the test, leading to an excess when counting the number of handle reads.
#rb none

[CL 15289106 by Zousar Shaker in ue5-main branch]
2021-02-02 21:46:17 -04:00
danny couture
7e884ab613 Add a way to be notified when properties are overwritten for reasons that were not trackable before
- PostReinitProperties is called when a subobject has it's properties overwritten a second time during a direct copy from a CDO
  - PostApplyToComponent is called when a component has it's properties overwritten by a user construction script

#rb Francis.Hurteau, Robert.Manuszewski, Steve.Robb

[CL 15280318 by danny couture in ue5-main branch]
2021-02-02 11:13:35 -04:00
Zousar Shaker
f368fbe954 Fix circular dependency load deferral for wrapped object pointer fields by ensuring they match behavior for standard raw pointers if they are not lazy loaded.
#jira UE-107371
#jira UE-107377
#rb none

[CL 15264722 by Zousar Shaker in ue5-main branch]
2021-01-30 23:02:33 -04:00
Zousar Shaker
2fc47a2cf0 Prototype Wrapped Object Pointers (ObjectHandle/ObjectPtr)
Address the following serialization issues:

1) Ensure ObjectPtr Property can convert from SoftObjectProperty and anything else that Object Property can convert from by removing its ConvertFromType override.
2) Fix serialization of wrapped pointers through archives that don't derive from FArchiveUObject, but still expect to be able to serialize both raw and wrapped object references (FNetBitWriter, FExportArchive, and FObjectAndNameAsStringProxyArchive).
3) Restore assert in base FArchive serialization of wrapped object pointer which I had erroneously made in CL15130804 now that it is clear that it is not safe to be relying on silently not writing/reading a wrapped object pointer (even if that may be the default behavior for a raw pointer).
4) Bump Niagara custom version guid to avoid issues with incorrectly serialized data in DDC.

#jira UE-106943
#rb devin.doucette
#fyi rob.krajcarski

[CL 15178163 by Zousar Shaker in ue5-main branch]
2021-01-25 11:37:56 -04:00
Zousar Shaker
e13d63a6f8 Prototype Wrapped Object Pointers (ObjectHandle/ObjectPtr)
Fix issue where constructor for FSoftObjectPath was using FObjectHandle variant in unintended cases in configurations with lazy load disabled.  This led to errors when using the "package override" feature.

#jira UE-106944
#rb devin.doucette
#fyi jeanfrancois.dube

[CL 15168014 by Zousar Shaker in ue5-main branch]
2021-01-22 18:27:31 -04:00
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Devin Doucette
daeebb2c6a Fixed string usage issues found by UE_NODISCARD
#rb Matt.Peters
#rnx

[CL 15158191 by Devin Doucette in ue5-main branch]
2021-01-21 15:34:44 -04:00
Zousar Shaker
1fc345b9cc Fixed naming of previously modified WrapperFF variable used in unit tests to WrapperFE. Also found second instance of the same FF pattern used for object references and changed it to FE.
#rb trivial
#fyi robert.manuszewski

[CL 15138045 by Zousar Shaker in ue5-main branch]
2021-01-19 14:51:32 -04:00
danny couture
7f73c57724 Add some Insight tags for world partition commandlet
#rb JeanFrancois.Dube

[CL 15135158 by danny couture in ue5-main branch]
2021-01-19 09:02:21 -04:00
Zousar Shaker
9941c1dc09 Prototype Wrapped Object Pointers (ObjectHandle/ObjectPtr)
Change the FObjectPtrProperty reflection type to derive from FObjectProperty type (instead of TFObjectPropertyBase) to avoid incompatibility with code that uses the reflection system to operate on specifically FObjectProperty fields.  Also removed the override of the GetID virtual method to allow ObjectPtr properties to have the same identifying name as Object properties.  This ensures there's no serialization incompatibility when moving between Object<->ObjectPtr or ObjectPtr->(Object compatible type) in the serialization and reflection code.

#jira UE-106329
#rb devin.doucette

[CL 15132777 by Zousar Shaker in ue5-main branch]
2021-01-18 17:46:22 -04:00
Matt Peters
310e942e61 SavePackage fixes:
1) Save1 had reversed condition around SetLoadedPath: it _should_ be done if IsMountedPath.
2) Save2 needs the calls to SetPersistentGuid and SetLoadedPath that were added to Save1.
#rb Francis.Hurteau
#rnx

[CL 15132572 by Matt Peters in ue5-main branch]
2021-01-18 16:53:31 -04:00
Zousar Shaker
0653acae69 Change the test object pointer value in the unit test named "AttemptToFindUninitializedScriptStructMembers" to avoid it being interpreted as a late resolved object reference when late resolve is enabled for wrapped object pointers.
#rb devin.doucette
#fyi robert.manuszewski

[CL 15131363 by Zousar Shaker in ue5-main branch]
2021-01-18 14:24:26 -04:00
Francis Hurteau
acbf2769c3 Re-enable Save2 by default for cooking
#rb trivial
#fyi Zousar.Shaker, PJ.Kack

[CL 15090192 by Francis Hurteau in ue5-main branch]
2021-01-14 14:51:15 -04:00
Matt Peters
407e11df1e Add GetAllocatedSize function to FDiskCachedAssetData, FPackageDependencyData and FLinkerTables to support measuring how much memory is used by AssetRegistry and AssetDataGatherer.
@rb Steve.Robb
#rnx

[CL 15039353 by Matt Peters in ue5-main branch]
2021-01-11 13:40:45 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
jack cai
66997cdc38 UObject: made ParseObject() redirect aware for a Control Rig Jira
#jira UE-104576

#rb helge.mathee marc.audy

[CL 14975279 by jack cai in ue5-main branch]
2021-01-04 11:19:34 -04:00
Robert Manuszewski
8e185013ef Fixed C++ vs UPROPERTY system size mismatch for FExpressionInnput and FMaterialInput
+ Added more debug info when asserting about mismatched struct sizes

#fyi Chris.Bunner
#rb trivial
#jira UE-102728

[CL 14914898 by Robert Manuszewski in ue5-main branch]
2020-12-14 14:23:18 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Phillip Kavan
23222d8321 Revert 14886445/14888213 to unblock projects from a new regression while I continue to investigate/resolve.
Note: This keeps the fix for incorrect nested DefaultSceneRoot ICH override template names in place, since that was a separate issue.

#rnx
#rb None
#jira UE-87133, UESP-4238
#fyi Jon.Nabozny

[CL 14897958 by Phillip Kavan in ue5-main branch]
2020-12-10 11:04:34 -04:00
Phillip Kavan
bcd905f2e3 Revised ICH template archetype search logic to remove its dependency on the outer class CDO.
This addresses a regression that could manifest in some cases where the CDO has not yet been created, and is a bit closer to the original implementation.

#rnx
#rb None
#jira UE-87133
#fyi Patrick.Enfedaque

[CL 14888213 by Phillip Kavan in ue5-main branch]
2020-12-09 10:32:31 -04:00
Phillip Kavan
f4d2457f1a Fix outstanding issues with ICH override template object archetype lookups during serialization of child Blueprint class assets.
Change summary:
- Reordered FComponentOverrideRecord struct fields so that the key is serialized before the template object. Archetype lookups on the template object are now dependent on the key being valid as we now route these through the record table.
- ICH override template object serialization is now deferred in non-EDL builds (i.e. editor) as part of loading the Blueprint class asset. This ensures that the ICH override record key is valid in older assets before we let the linker instance the export object for the ICH override template object on load; per the above, this depends on a successful archetype lookup for its instantiation.
- Modified the signature of UClass::FindArchetype() to include an additional ObjectFlags input argument.
- Revised GetArchetypeFromRequiredInfoImpl() to now route ICH override template object archetype lookups through the owning class in place of the "old way" of doing a brute force subobject search through the outer class chain, which would sometimes fail and fall back to incorrectly return the archetype class's default object, resulting in data loss issues on load.
- Revised UBlueprintGeneratedClass::FindArchetype() to route ICH override template object archetype lookups through the parent class hierarchy, using the ICH override record's key to retrieve the original template as the basis for finding a match. This ensures that lookups won't fail due to things like SCS variable name changes in the base class and also that we now can properly handle archetype lookups for ICH records that override an inherited default scene root.

#jira UE-87133
#rb Marc.Audy

[CL 14886445 by Phillip Kavan in ue5-main branch]
2020-12-09 02:11:53 -04:00