Commit Graph

33 Commits

Author SHA1 Message Date
devin doucette
f0b3f1f627 Updated FPropertyPathName to use FPropertyTypeName
#jira UE-197352
#rb Francis.Hurteau
#rnx

[CL 30646449 by devin doucette in ue5-main branch]
2024-01-16 16:49:05 -05:00
jordan hoffmann
38254fee20 [Refactor] Renaming scenegraph 'archetypes' to 'ObjectInstanceData'
[CL 30605552 by jordan hoffmann in ue5-main branch]
2024-01-12 17:22:37 -05:00
jordan hoffmann
034bffffa0 [Feature] Archetype Support for subobjects
[Feature] PropertyBagRepository::FindArchetype is now the primary API for obtaining archetypes
[SubFeature] added OnPathChangedCallback to UE::FPropertyPathName so that archetypes can record which properties were deserialized
#rb Francis.Hurteau
#jira UE-202457

[CL 30573263 by jordan hoffmann in ue5-main branch]
2024-01-11 13:57:26 -05:00
jordan hoffmann
6d1c000af5 [Tests] Proof of concept test for Property Bags and Archetypes
This CL introduces a ue console command that will construct a test object (UTestReportCardV<1..5>) and then upgrade it to a different version creating an archetype in the process. That archetype will then be displayed in a details panel.
Syntax:  TestVerseArchetypes <OldClassVersion> <NewClassVersion>
OldClassVersion and NewClassVersion must be integers between 1 and 5
#jira UE-199979
#rb Phillip.Kavan, Andrew.Davidson

[CL 30220171 by jordan hoffmann in ue5-main branch]
2023-12-08 16:50:42 -05:00
devin doucette
d252785fb5 Moved FPropertyBag to be internal
#jira UE-197352
#rnx

[CL 30183191 by devin doucette in ue5-main branch]
2023-12-07 12:20:45 -05:00
andrew davidson
369c43c9af Expand repository to store all object associated data
#jira UE-192688
#rb jordan.hoffmann

[CL 30011490 by andrew davidson in ue5-main branch]
2023-11-30 05:37:56 -05:00
matt peters
cfc232c4ee DirectoryTree: 1) Fix bug in GetChildren - added children of implied children were not reported in some cases.
2) Fix assertion in GetChildren when called on a DriveSpecifierWithoutRoot.
#rnx
#rb Devin.Doucette

[CL 29473731 by matt peters in ue5-main branch]
2023-11-04 12:13:02 -04:00
andrew davidson
e717a20b2c Initial property bag repository skeleton.
#jira UE-192688
#rb francis.hurteau, jordan.hoffmann, phillip.kavan, devin.doucette

[CL 29367367 by andrew davidson in ue5-main branch]
2023-11-02 11:42:52 -04:00
matt peters
bcf47aa337 Core Containers: DirectoryTree: Add GetChildren function for callers that want to use the DirectoryTree to keep track of which paths have been added.
#rnx
#rb Devin.Doucette

[CL 29237975 by matt peters in ue5-main branch]
2023-10-30 12:58:01 -04:00
matt peters
a77af3f0e8 ZenStore structures: expose structures to interpret zenstore headers for use in -diffonly cooks.
PackageStoreOptimizer: Expose a static version of FindScriptObject and functions for calculating PublicExportHash.
FNameMap: Add a foreach iterator to provide a list of all data in the struct.
ZenPackageHeader: Move from private to internal, add a constructor that returns an error string rather than fatally asserting.
#rb Per.Larsson
#rnx

[CL 27855318 by matt peters in ue5-main branch]
2023-09-13 18:11:20 -04:00
henrik karlsson
c90d3cb093 [CoreUObject]
* Moved dll export from types to methods/staticvar

#rb none

[CL 25910241 by henrik karlsson in ue5-main branch]
2023-06-10 01:58:50 -04:00
Matt Peters
cbadcc92e7 OnlyEditorOnly: Make a separate setting for OnlyEditorOnly rather than using CanSkipEditorReferencedPackagesWhenCooking, so we can deprecate that separately later and still test OnlyEditorOnly.
OnlyEditorOnly: Add Instrumentation to explain differences between regular cook and OnlyEditorOnly cook.
#rb Zousar.Shaker
#rnx
#preflight 64556a9e4574b81df409a82b

[CL 25359675 by Matt Peters in ue5-main branch]
2023-05-05 16:59:00 -04:00
joe pribele
71694cd010 lazyload support for zenloader
https://p4-swarm.epicgames.net/reviews/24507657
#preflight 640908e0aa00423335d51461

[CL 24568340 by joe pribele in ue5-main branch]
2023-03-08 17:29:42 -05:00
julien stjean
af4424e59c Introducing the relocation workflow.
When on, at load the packages will detect if they where moved and if this is the case they will modify their ImportMap and SoftObjectPathList. The package reference in those that were in the same MountPoint as the asset when it was saved will behave as if they were relative references.

#preflight 63f3e319500c05a624417605
#rb Matt.Peters

[CL 24332127 by julien stjean in ue5-main branch]
2023-02-20 20:57:13 -05:00
Matt Peters
1cd1f81cfc DirectoryTree: Give CA_ASSUME hint to suppress spurious static analysis warning.
#jira FORT-557639
#rnx
#preflight 63d2a41af626715201106296

[CL 23869656 by Matt Peters in ue5-main branch]
2023-01-26 11:55:37 -05:00
Matt Peters
c07fbb37c3 DirectoryTree: Remove COREUBOBJECT_API, because inline functions cannot be marked as dllexport/dllimport.
#rb None, trivial
#rnx
#preflight 63d083c6033e457ba87fcdd1

[CL 23842825 by Matt Peters in ue5-main branch]
2023-01-24 20:37:37 -05:00
Matt Peters
73bac25234 Containers: DirectoryTree. An O(log(n)) map from path to ValueType that also supports O(log(n)) queries for the closest parent directory in the tree of a given path.
#rb Devin.Doucette
#rnx
#preflight 63d0166cf2318350a289d7fc

[CL 23833605 by Matt Peters in ue5-main branch]
2023-01-24 12:48:49 -05:00
joe pribele
cffacc0be5 support for TObjectPtr handling renames and GetTypeHash(TObjectPtr) no long has to resolve
GetTypeHash will create a packaged object ref for hashing if the class is defined as lazy load otherwise raw pointer is hashed
a map was added for moved objects and ObjectPathId can be a WeakObjectPtr
the map allows UObjects to be mapped back to packed object refs

#rb zousar.shaker
https://p4-swarm.epicgames.net/reviews/23356491
#preflight 63b5de641c35d1cbdbccecf7
#preflight 63b70406e26e31879b8aa6d3

[CL 23589497 by joe pribele in ue5-main branch]
2023-01-05 12:27:16 -05:00
Per Larsson
b20b928cf7 Editor Domain - fix fallouts after bulk data refactor
- allow file region of type None
- don't early out when saving bulk data by reference

#rb trivial
#jira none
#preflight 639b6de30a67152550853ab9
#rnx

[CL 23529938 by Per Larsson in ue5-main branch]
2022-12-15 14:35:36 -05:00
Per Larsson
2efa87995e Bulk Data - data resource table
This change aims to unify how BulkData and DerivedData references are stored and loaded from disk.
The structured part of Bulk Data i.e. Flags,Offset and Size has been moved out from the export data
and into a lookup table in the package header. This allows for bulk data to be rearranged w/o needing to recook but it will
also be used for derived data references to allow loading DDC data both from the runtime.
Currenlty this change ONLY effects cooked output.
Inline data can now be reloaded when loading from I/O store, all consistency checks
when discarding/reloading inline data has been removed.
When cooking, exports are serialized into it's own archive enabling the package header
to be modified after cooking the exports. This also makes it easer to rearrange the exports
in the export bundles for optimal loading performance, i.e. there is no longer a dependency
of the cooked serial offset from the begnning of the .uasset file.

#rb CarlMagnus.Nordi, PJ.Kack, Paul.Chipchase
#jira none
#preflight 637387db9e3bea807941a850
#rnx

[CL 23489396 by Per Larsson in ue5-main branch]
2022-12-13 03:51:37 -05:00
joe pribele
0f45c0a9d5 Undo //UE5/Main/Engine/... changelist 23416765
#preflight 638fed855c5308d18c157af0

[CL 23423019 by joe pribele in ue5-main branch]
2022-12-06 20:58:56 -05:00
joe pribele
115c3e1a0e support for TObjectPtr handling renames and GetTypeHash(TObjectPtr) no long has to resolve
GetTypeHash will create a packaged object ref for hashing if the class is defined as lazy load otherwise raw pointer is hashed
a map was added for moved objects and ObjectPathId can be a WeakObjectPtr
the map allows UObjects to be mapped back to packed object refs
#preflight 638fad1b5624e6da5e166024

[CL 23416765 by joe pribele in ue5-main branch]
2022-12-06 16:27:20 -05:00
matt peters
daff9f8c5d EditorDomain: Implement support for PackageTrailers in the same package as BulkData in a regular BulkData section for PackageWriters, so that EditorDomain can have both references to BulkData in a WorkspaceDomain PackageTrailer and embedded BulkDatas that needed to be resaved.
Because the PackageFooter comes before the PackageTrailer, we need to change accounting for the PackageFooter in PackageWriters to include adjusting the VirtualExportsFileOffset that is passed into the PackageTrailer.
#rb Paul.Chipchase
#rnx
#preflight 638cbb1135192facc13f83e6

[CL 23386395 by matt peters in ue5-main branch]
2022-12-04 12:54:00 -05:00
joe pribele
9571d4eec5 [AssetRegistry] changed TryGetAssetByObjectPath to use FSoftObjectPath to match the rest of the API
#rb zousar.shaker
#preflight 63376f4d0d2b0d7bd8ce92c1

[CL 22283581 by joe pribele in ue5-main branch]
2022-09-30 19:00:07 -04:00
joe pribele
3db3104b1c [AssetRegistry] added two new methods TryGetAssetByObjectPath and TryGetAssetPackageData to allow lazy load to be able to accurately validate that objects and paths exist
otherwise an unresolve `TObjectPtr` could resolve to nullptr causing determinism issues

#rb matt.peters zousar.shaker
#rnx
#preflight 6335c8cb5c2225fe5f12a7d6

[CL 22263392 by joe pribele in ue5-main branch]
2022-09-30 00:54:16 -04:00