Commit Graph

171 Commits

Author SHA1 Message Date
robert manuszewski
08bd51c632 Fixing non unity build
#rb trivial
#preflight none

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20434000 via CL 20435526 via CL 20435605
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448518 by robert manuszewski in ue5-main branch]
2022-06-01 03:47:38 -04:00
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
brian bekich
d993e84cb6 Fix handling of invalid package paths from clients
#jira UE-145643
#rb ryan.gerleve

#ROBOMERGE-AUTHOR: brian.bekich
#ROBOMERGE-SOURCE: CL 19785177 via CL 19785195 via CL 19792886 via CL 19793235 via CL 19793656
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v939-19570697)

[CL 19809617 by brian bekich in ue5-main branch]
2022-04-19 11:36:06 -04:00
Matt Peters
46290e86ee AssetDataGatherer: Change serialization format of dependencies in the editor's AssetDataGatherer cache to improve load performance.
#rb Zousar.Shaker
#rnx
#preflight 6245a64e637925b5d3c6c729

[CL 19571741 by Matt Peters in ue5-main branch]
2022-03-31 09:16:55 -04:00
Matt Peters
06da3c7714 Comment fix: Fix copy-paste error and add details in IsShortPackageName function comment.
#rb Sebastian.Thomeczek
#rnx
#preflight 62423527637925b5d39d73db

[CL 19534873 by Matt Peters in ue5-main branch]
2022-03-28 18:49:12 -04:00
paul chipchase
1f90b5c58b Allow stand alone programs to opt into full FPackagePath functionality even if the program is not compiling with the editor.
#rb Matt.Peters
#rnx
#preflight 622b69320a614dcb0cf998d3

- This is useful for stand alone programs that want to compile with core and coreuobject but don't want to compile against the editor/engine.
- To make use of this the program should add 'GlobalDefinitions.Add("UE_SUPPORT_FULL_PACKAGEPATH=1")' to it's Target.cs .
- If the program does not define UE_SUPPORT_FULL_PACKAGEPATH then it will default to WITH_EDITOR which was the pre-existing behavior.

[CL 19370946 by paul chipchase in ue5-main branch]
2022-03-14 03:39:21 -04:00
carlmagnus nordin
73a67c95d9 Renamed EPackageLocationFilter enums from Cooked/Uncooked to IoDispatcher/FileSystem
Cleaned up duplicated logic between DoesPackageExist and DoesPackageExistEx
#rnx
#preflight 61f3b9f2801201ab387e6e50
#rb per.larsson

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 18770321 in //UE5/Release-5.0/... via CL 18770330 via CL 18770438
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18770443 by carlmagnus nordin in ue5-main branch]
2022-01-28 08:48:13 -05:00
marc audy
6553e6cd0a Remove as much C++ deprecation as possible up to 4.17 (along with a few scattered removals from beyond)
#preflight 61eefc77ba69a4fdb220bf23

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 18712765 in //UE5/Release-5.0/... via CL 18712784 via CL 18713147
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18713191 by marc audy in ue5-main branch]
2022-01-24 15:07:48 -05:00
francis hurteau
d262daac13 Added support to Loose File Package Writer to write multiple package output per input
Added similar support to the package store manifest
Zen Store support will be added separately
Added some extra data to linker object resources to be used by the iostore package optimizer to properly support optional package chunks.

Multiple cooking outputs is used to support "optional objects" which are editor data package exports that would be put in separate iostore containers than the normal cooked game content.

#jira UE-129801
#rb Matt.Peters, CarlMagnus.Nordin
#preflight 61e5d3bb873f2ea48f48166c

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 18639742 in //UE5/Release-5.0/... via CL 18639751 via CL 18639758
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18639762 by francis hurteau in ue5-main branch]
2022-01-18 09:56:23 -05:00
matt peters
fb786c7e8b #jira UE-138902
Split FPackageName's initialization into two events so that FPackageName::TryConvertFilenameToLongPackageName can be called with limited functionality before pluginmanager and coreobject have been initialized.
#preflight 61e58568006b17a6865ac944
#rb Graeme.Thornton
#rnx

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18634271 in //UE5/Release-5.0/... via CL 18634294 via CL 18634301
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18637425 by matt peters in ue5-main branch]
2022-01-18 04:35:15 -05:00
nuno leiria
549ce36cdf Misc changes required to build consoles as modules
#preflight 61df20d0484d866ec0192dc6
#rb david.harvey

#ROBOMERGE-AUTHOR: nuno.leiria
#ROBOMERGE-SOURCE: CL 18616274 in //UE5/Release-5.0/... via CL 18616284 via CL 18616293
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18616300 by nuno leiria in ue5-main branch]
2022-01-14 07:01:20 -05:00
richard malo
481f65fe16 New Actor Folders objects.
- When enabled, folders are actual objects : modifying a folder won't affect actors (more compliant with OFPA).
- Enabled by default for World Partition and Level Instances.
- Can be enabled on regular levels (experimental feature 'Use Actor Folder Objects').
- If Level uses OFPA, ActorFolders will also be saved in their own package (but will use __ExternalObjects__ root folder).
- In a future refactoring, external actors will also be moved in the same root folder.
- Generalized saving object in an external package (different from its outer package)
- World outliner supports old folders and new actor folder objects : Levels using the actor folder objects will show a root Level node (like Level Instances).
#rb patrick.enfedaque, jeanfrancois.dube
#preflight 61d84b356511bc498e5cb858

#ROBOMERGE-AUTHOR: richard.malo
#ROBOMERGE-SOURCE: CL 18543443 in //UE5/Release-5.0/... via CL 18543482
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18543525 by richard malo in ue5-release-engine-test branch]
2022-01-07 10:01:19 -05:00
matt peters
76722cbb5c #jira UE-133730
Add PackageAccessTrackingOps::NAME_CookerBuildObject to catch references to other packages that are made from an object's BeginCacheForCookedPlatformData call.
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18279388 in //UE5/Release-5.0/... via CL 18279398
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18279406 by matt peters in ue5-release-engine-test branch]
2021-11-23 21:16:10 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
aurel cordonnier
7f517562d5 Merge from Release-Engine-Staging @ 17438845 to Release-Engine-Test
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17439044 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-06 12:23:53 -04:00
luc eygasier
10d4800ede Rework Source Control Changelist Window?s Asset beautification:
* Adds Source Control Asset Data cache. Preventing Source Control Changelist Window to rebuild AssetData from scratch when UI refresh takes place
* Modifies Source Control beautification to async process, preventing crowded changelists to block the workflow. The filenames are now beautified when available.
* Parallelize AssetData information retrieval from SourceControl
* Updates message displayed when refreshing window's items

#rb Sebastien.Lussier, JeanFrancois.Dube
#jira UETOOL-3522

#changelist validated

#ROBOMERGE-SOURCE: CL 17375288 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17375337 by luc eygasier in ue5-release-engine-test branch]
2021-08-31 15:14:29 -04:00
carlmagnus nordin
32e4a5213e Implemented a stripped down version of FPackagePath for use outside of the editor in order to save memory
#rnx
#jira UE-120698

#ROBOMERGE-SOURCE: CL 17300999 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17301011 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-25 08:02:24 -04:00
matt peters
b4596e1993 #jira UE-121324
Add PackageAccessTracking ops for reset and noaccessaccepted, to debug and fix the too-broad save op.
#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 17200008 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17200021 by matt peters in ue5-release-engine-test branch]
2021-08-17 12:50:23 -04:00
paul chipchase
28f0765a05 Add an overload of FPathName::IsPackageExtension that takes an EPackageExtension as the parameter.
#rb Matt.Peters
#rnx
#preflight 6114cb9329ebef00012c41e7

- Matches the overload of ::IsTextPackageExtension that also takes a EPackageExtension parameter.

#ROBOMERGE-SOURCE: CL 17148303 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17148306 by paul chipchase in ue5-release-engine-test branch]
2021-08-12 04:40:09 -04:00
matt peters
35577abb00 PackageAccessTracking: Add UE_TRACK_REFERENCING_PACKAGE_SCOPED_PLATFORM. Move PackageBuildDependencyTracker into UnrealEd; it's currently just a demo class, and we will start using it soon in UnrealEd.
Improve performance of FPackageBuildDependencyTracker::StaticOnObjectHandleRead by removing the iteration over PackageScopes and instead accumulating that information in the constructor of each PackageScope. The constructor accumulation is cheap so this should be cheaper overall.
#rb Zousar.Shaker
#rnx

#ROBOMERGE-SOURCE: CL 17106400 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v854-17104634)

[CL 17106517 by matt peters in ue5-release-engine-test branch]
2021-08-09 15:39:59 -04:00
Francis Hurteau
87fd0a4157 Harvest soft object path package on save for cooker to handle save permutations such as the world partition grid cell split:
* 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]
2021-06-02 10:28:45 -04:00
aurel cordonnier
43fa62fcd8 Merge from Release-Engine-Test @ 16487383 to UE5/Main
This represents UE4/Main @ 16445039 and Dev-PerfTest @ 16444526

[CL 16488106 by aurel cordonnier in ue5-main branch]
2021-05-27 13:40:37 -04:00
josh adams
8ad7fbd2e6 - Change how we look for uncooked packages on disk to load instead of IOStore cooked packages, for cooked editor situations
- Made FPackageName::DoesPackageExistEx, removed DoesPackageExistInIoStore
#rb per.larsson


#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 16329403 via CL 16330934 via CL 16330949 via CL 16330958
#ROBOMERGE-BOT: (v804-16311228)
#ROBOMERGE-CONFLICT from-shelf

[CL 16335521 by josh adams in ue5-release-engine-staging branch]
2021-05-14 16:38:24 -04:00