Turns out "StandaloneToolkit" is a placeholder that shouldn't even be in the menus. Fixing this by, at tab-spawner registration, disabling the generation of a main-menu entry.
[CL 27101114 by sebastian arleryd in ue5-main branch]
* The same functionality is provided by the GizmoManipulationStarted and GizmoManipulationStopped.
* This simplifies the interface and removes the bespoke parameter added to branch between when manipulation starts and when it is ongoing to avoid expensive rendering invalidations
* There are some clients of TypedElementViewportInteractionGizmoManipulation::ApplyDeltaToActor, this CL does not address usage of this function. Doing so will require further adoption of TypedElements among those systems
#jira UE-187188
#rb Brooke.Hubert
[CL 25964466 by logan buchy in ue5-main branch]
With this fix, on my machine, the cost of moving a blueprint with 1000 items drops from 45 ms to 7 ms. Baseline tick is 8 ms (120 fps) when idling, so the results while moving improve from 19 fps to 65 fps. The remaining time is mostly split between physics and navigation update. Invalidating the static lighting cache is so costly because it both invalidates the render state of every item, and notifies packages of the change.
#jira UE-147154
#rnx
#rb jamie.dale
#preflight 63ff4748e32cdb7d9aacab16
[CL 25050136 by jason hoerner in ue5-main branch]
Also expand usage of placement system to ensure these factories are used in more places
#rb brooke.hubert
#preflight 642cad951d19c0312aec3e7a
[CL 24938100 by zach rammell in ue5-main branch]
This change completely removes Matinee from the codebase. The data types and runtime evaluation code are gone. The "InterpEdit" editor mode, asset factories, and other editor support for Matinee is gone. CameraAnims and their sequencer tracks are gone. FBX import/export for Matinee assets is gone.
#preflight 62d0591e562520a394bca1d1
#preflight 62d194f63c3df323904679c1
#jira UE-105313
#rb none
#ROBOMERGE-OWNER: max.chen
#ROBOMERGE-AUTHOR: ludovic.chabant
#ROBOMERGE-SOURCE: CL 21116312 via CL 21116339 via CL 21118051
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21142481 by max chen in ue5-main branch]
The issue was that weren't using the same pivot and the same quaternion math for the rotation.
#jira UE-130496
#brooke.hubert
#preflight 61a83b83ad6629a51eac6537
#ROBOMERGE-AUTHOR: julien.stjean
#ROBOMERGE-SOURCE: CL 18349318 in //UE5/Release-5.0/... via CL 18349329
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18350076 by julien stjean in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
Storing typed elements in UObjects can easily lead to reference leaks if the elements aren't cleared prior to the UObject being left pending GC. This actually made UTypedElementList tricky to use, as you had to remember to manually empty it when you'd finished with it to avoid reference leaks, and we've had several cases now where that was done incorrectly.
To address this issue, we've moved element lists back to being a normal C++ class, FTypedElementList. However, unlike the original version of FTypedElementList (which was itself a UStruct), this version is always heap-allocated and referenced via a TSharedPtr/TSharedRef.
This gives us a nice middle-ground of a well defined lifetime (ie, no lingering references prior to GC) while still being efficient to pass around, including for scripting APIs via FTypedElementListProxy (which just wraps the TSharedPtr in a UStruct).
The downside of this approach is that we need to wrap the FTypedElementList functions that we want to expose to the scripting API (see UTypedElementListLibrary), however that is a far more reasonable burden than requring every user of the typed element framework to know and understand that UTypedElementList had to be manually cleared to avoid potentially hard to find reference leaks (especially if via leaked via scripting APIs).
The core of this change is to TypedElementList.h/.cpp, with TypedElementListFwd.h existing to forward declare the pointer types, and TypedElementListProxy.h and TypedElementListLibrary.h existing to declare the proxy type and wrapped functions used for scripting APIs. TypedElementSelectionInterface.h (and its implementations) provide an example of using FTypedElementListProxy within a scripting API, and the rest of the change is mostly just fallout to transform const UTypedElementList* to FTypedElementListConstRef and UTypedElementList* to FTypedElementListRef.
#rb Brooke.Hubert
#preflight 60d2720c634cd100016c804b
#ROBOMERGE-SOURCE: CL 16776547 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16776582 by jamie dale in ue5-release-engine-test branch]