Headers are updated to contain any missing #includes needed to compile and #includes are sorted. Nothing is removed.
#ushell-cherrypick of 21064294 by bryan.sefcik
#jira
#preflight 62d5c2111062f2e63015e598
#ROBOMERGE-OWNER: bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21155249 via CL 21158121 via CL 21161259
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21182053 by bryan sefcik in ue5-main branch]
- Default behavior is preserved (i.e. Target.bBuildDeveloperTools || (Target.Configuration != UnrealTargetConfiguration.Shipping && Target.Configuration != UnrealTargetConfiguration.Test))
- Added SetupGameplayDebuggerSupport for ModuleRules that want to use GameplayDebugger. This will add required dependency and public definition (WITH_GAMEPLAY_DEBUGGER=0|1)
- Build Target can override by specifying a value to 'bUseGameplayDebugger'
#jira UE-159095
#rb mieszko.zielinski
#preflight 62d178143b057e72748ccbe3
#ROBOMERGE-OWNER: yoan.stamant
#ROBOMERGE-AUTHOR: yoan.stamant
#ROBOMERGE-SOURCE: CL 21113824 via CL 21113871 via CL 21114153
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21142398 by yoan stamant 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 fixes some edge cases where value was resent by server after BeginPlay resulting in component not rendering the GameplayCategories on the client.
#jira UE-149710
#rb mieszko.zielinski
#preflight 6273c0df1364d1b5cc4cba72
[CL 20056478 by Yoan StAmant in ue5-main branch]
#tests Tested in UYE
#rb Yoan.StAmant
#rnx
#ROBOMERGE-AUTHOR: charles.lefebvre
#ROBOMERGE-SOURCE: CL 19608400 via CL 19608505 via CL 19608571 via CL 19608608 via CL 19608634
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)
[CL 19609660 by charles lefebvre in ue5-main branch]
added view distance and angle to config and updated actor picking + culling
#rb maxime.mercier, mieszko.zielinski
#preflight 61a917f61a368fd603a10e4f
#robomerge 5.0
[CL 18355593 by Yoan StAmant in ue5-main branch]
In some code paths for loaded actors the call order might be different since primitive registration gets deferred (i.e. FRegisterComponentContext != nullptr).
Case 1 (normal flow): FRegisterComponentContext == nullptr
> UPrimitiveComponent::CreateRenderState_Concurrent : calls CreateSceneProxy
> RegisterDebugDrawDelegate
> UnregisterDebugDrawDelegate ==> works fine
Case 2 (deferred AddPrimitive): FRegisterComponentContext != nullptr
> UPrimitiveComponent::CreateRenderState_Concurrent : defers CreateSceneProxy
> RegisterDebugDrawDelegate (skip register since not init)
> CreateSceneProxy
> UnregisterDebugDrawDelegate ==> ensures in UnregisterDebugDrawDelegate
With this new version `CreateRenderState_Concurrent` calls `RequestRegisterDebugDrawDelegate` that will take care of registering the delegate immediately or mark it for deferred execution. An explicit call to `ProcessDeferredRegister` is then required from `CreateSceneProxy` to implement proper flow:
Case 2 (fixed) (deferred AddPrimitive + deferred Register): FRegisterComponentContext != nullptr
> UPrimitiveComponent::CreateRenderState_Concurrent: defers CreateSceneProxy
> RequestRegisterDebugDrawDelegate: defers RegisterDebugDrawDelegate
> CreateSceneProxy: calls ProcessDeferredRegister & RegisterDebugDrawDelegate
> UnregisterDebugDrawDelegate ==> works fine
Bonus:
- New DebugDrawComponent abstract class that is now used to share common functionalities between existing debug related components. Takes care of DelegateHelper registration flow to render text on screen from different sources.
- FDebugDrawDelegateHelper::InitDelegateHelper is no longer virtual and derived classes requiring extra data from their associated scene proxy should set it up from their overriden CreateSceneProxy
- FDebugDrawDelegateHelper derived classes should not override RegisterDebugDrawDelegate/UnregisterDebugDrawDelegate to use their `DrawDebugLabels` method since this is already a virtual method that would get called from the base class.
- Fixed a few ViewFlag members in the SceneProxy so the DelegateHelper base class can behave as expected
#jira FORT-419154
#rb mieszko.zielinski
#robomerge FnMain
#preflight 61703f8766ed7f0001c0faf1
[CL 17875336 by Yoan StAmant in ue5-main branch]
Update registration flow since CreateRenderState_Concurrent can't be used to register our delegate since it needs to be initialized first (CreateSceneProxy) and in some code paths for loaded actors the call order might be different since primitive registration gets deferred (i.e. FRegisterComponentContext != nullptr).
In that case initialization won't called and an ensure will fire in UnregisterDebugDrawDelegate since registration failed (was not initialized).
Case 1: FRegisterComponentContext == nullptr ==> Super::CreateRenderState_Concurrent + sync CreateSceneProxy (init) + RegisterDebugDrawDelegate ==> works fine
Case 2: FRegisterComponentContext != nullptr ==> Super::CreateRenderState_Concurrent + deferred CreateSceneProxy + RegisterDebugDrawDelegate (skipped since not init) + CreateSceneProxy ==> ensures in UnregisterDebugDrawDelegate
Bonus:
- some code analysis fixes
- removed some 'CoreMinimal.h' includes
- exported log category 'LogVisual'
- fixed some uninitialized properties (FNavTestDebugDrawDelegateHelper, UNavMeshRenderingComponent, FNavMeshSceneProxyData)
- fixed some methods hiding non-virtual from base class (GetAllocatedSize)
- fixed FGameplayDebuggerCompositeSceneProxy::GetMemoryFootprint that was not considering base class allocations
#rnx
#jira UE-125097
#preflight 614362684778fa00016a8cad
#rb mieszko.zielinski
[CL 17544171 by Yoan StAmant in ue5-main branch]