Removal of includes to reduce transitive includes in high traffic headers to reduce compile times
Highlights
* Skeleton and BonePose not leaked out of commonly used animation headers
* AudioComponent leaking out less
* Brush not leaking Level.h (Brush is included indirectly a lot)
* VertexStreamComponent moved to its own file so Components.h can include that instead of VertexFactory (which would leak out all of RHI and others)
#preflight 6365dd15c53af2f47f8d8c40
#rb none
[CL 23003402 by henrik karlsson in ue5-main branch]
Change FReplicationGraphCSVTracker::PostReplicateActor to take enum flags.
#rb LouisPhilippe.Seguin
#preflight 63503b82b13bfb29ebf8671a
[CL 22647222 by ryan gerleve in ue5-main branch]
The grid is densely stored and risks very high memory usage at large coordinates.
#jira UE-165198
#rb louisphilippe.seguin
#preflight 6334c113691c0168b71c21f7
[CL 22240520 by ryan gerleve in ue5-main branch]
Before:
3548 unity files
Total CPU Time: 47343.578125 s
Total time in Parallel executor: 494.60 seconds
After:
3445 unity files
Total CPU Time: 46044.671875 s
Total time in Parallel executor: 468.51 seconds
#jira
#preflight 63336159b20e73a098b7f24f
[CL 22218213 by bryan sefcik in ue5-main branch]
* Added optional config that will prevent Actors from replicating if they are not BeginPlay yet.
* Enabled via net.ReplicateOnlyBeginPlay
* The only exception is if a RPC is called on an actor before BeginPlay and opens the ActorChannel
* When opening the channel to send the RPC, we need to serialize the actor to open the channel correctly.
* Even if the actor is not begin play we will set up his components for replication and serialize him anyway.
* Note that sending rpcs this early is not recommened if the BeginPlay on the authority sets replicated variables that the client needs in his BeginPlay too.
# Defaults to true in FortniteGame
#jira UE-160463, FORT-499928
#rb Brian.Bekich
[CL 21500389 by louisphilippe seguin in ue5-main branch]
Replaced "master" with "main" at ReplicationGraph.h/.cpp
#jira UE-158584
#review @thomas.sarkanen
#preflight 62cea5eaf30df2b55bed965f
[CL 21069494 by jaime cifuentes in ue5-main branch]
Initial submit, compiled out by default.
#rb Peter.Engstrom,Mattias.Hornlund,Brian.Bekich,Ryan.Gerleve,John.Barrett
#jira UE-158381
#preflight /62cd6fc7ad490b52da0515a3
[CL 21068370 by Peter Engstrom in ue5-main branch]
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]
* Prevent actors outside the destruction radius but inside the current OutOfRange radius check from being added to the OutOfRange list.
* Instead keep actors in the PendingDestructionList until they get inside the send radius or outside the OutOfRange radius.
#rb Brian.Bekich, Jon.Sourbeer
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 20229549 via CL 20229567 via CL 20229593 via CL 20229612
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20231614 by louisphilippe seguin in ue5-main branch]
Handle emptying the map name if CurrentMapName == DestinationMapName when no transition map is specified, and remove LastCompletedSeamlessTravelCount == SeamlessTravelCount check from APlayerController::HasClientLoadedCurrentWorld to prevent issues when client finishes travel before the server.
#jira UE-96063
#rb Ryan.Gerleve, LouisPhilippe.Seguin
#ROBOMERGE-AUTHOR: alex.koumandarakis
#ROBOMERGE-SOURCE: CL 19903360 via CL 19904489 via CL 19905622
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19907190 by alex koumandarakis in ue5-main branch]
* Added option to manually disable untracked class reporting
# FN Shipping servers using minimal explicit class tracking now disable the untracked class reporting.
#rb Brian.Bekich
#ROBOMERGE-AUTHOR: louisphilippe.seguin
#ROBOMERGE-SOURCE: CL 19384374 via CL 19384381 via CL 19386057 via CL 19397883 via CL 19397986
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19403145 by louisphilippe seguin in ue5-main branch]