Commit Graph

60 Commits

Author SHA1 Message Date
sebastian arleryd
12a1ed500f Fix issue where "StandaloneToolkit" appeared multiple times in the UEFN main menu
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]
2023-08-15 09:43:27 -04:00
logan buchy
87012153c4 Remove TypedElementViewportInteractionGizmoManipulation from TypedElement ViewportInteraction
* 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]
2023-06-13 17:28:30 -04:00
jason hoerner
2a816e5ad4 Further optimization for moving actor with many static mesh components. Only invalidate the static lighting cache at the start of a move operation. We don't invalidate the cache in "GizmoManipulationStarted", because the user can click on a handle (calling the start function) without actually moving, which should have no effect. So a flag is used to detect the first time "GizmoManipulationDeltaUpdate" is called, and subsequent calls can skip repeatedly invalidating the lighting cache.
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]
2023-04-14 17:02:21 -04:00
zach rammell
9d13ddaedc Allow asset factories to be registered at runtime
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]
2023-04-05 18:00:20 -04:00
aditya ravichandran
2a47203660 Add the ability for modes to add a secondary toolbar below the Level Editor toolbar, currently used by the modeling mode
#jira UE-175474
#preflight 63d951357a39a18021eb4ad1
#rb lauren.barnes, semion.piskarev

[CL 23938896 by aditya ravichandran in ue5-main branch]
2023-01-31 17:06:24 -05:00
bryan sefcik
0837230669 Ran IWYU again on half of the Engine/Source/Editor/... source files.
#jira

[CL 21716414 by bryan sefcik in ue5-main branch]
2022-08-30 23:03:03 -04:00
bryan sefcik
8cc129f2b6 IWYU Pass 1 - Engine/Source/Editor/...
#jira
#preflight 6306736ac85b7fef22be7751

[CL 21558583 by bryan sefcik in ue5-main branch]
2022-08-24 22:45:13 -04:00
max chen
6450d4a229 Remove Matinee (1/2)
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]
2022-07-17 22:45:06 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
brooke hubert
e6db027123 Fix issue where the supplied actor factory was not making it through to the actor spawn in placement subsystem
#preflight 61e79b383778a195ded1f463
#Jira UE-139202
#rb julien.stjean

#ROBOMERGE-AUTHOR: brooke.hubert
#ROBOMERGE-SOURCE: CL 18661572 in //UE5/Release-5.0/... via CL 18661601 via CL 18661627
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18661657 by brooke hubert in ue5-main branch]
2022-01-19 13:50:04 -05:00
brooke hubert
40ee769f95 Properly hook up instance client manager in placement mode.
This fixes duplication crash.

#preflight 61ddb7fd0134bb26f3bdd989
#Jira UE-131054
#rb julien.stjean

#ROBOMERGE-AUTHOR: brooke.hubert
#ROBOMERGE-SOURCE: CL 18589986 in //UE5/Release-5.0/... via CL 18589994 via CL 18589996
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18590008 by brooke hubert in ue5-main branch]
2022-01-12 16:49:49 -05:00
julien stjean
23596ba9c7 Fixed code that depends on the selection order without a proper normalization of the selection set.
#jira UE-132003
#preflight 61b0d8b1c17a9a154abfe810
#rb Brooke.Hubert

#ROBOMERGE-AUTHOR: julien.stjean
#ROBOMERGE-SOURCE: CL 18431233 in //UE5/Release-5.0/... via CL 18435330
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435562 by julien stjean in ue5-release-engine-test branch]
2021-12-10 17:48:48 -05:00
julien stjean
6f120bb052 Fixing the SMInstanceElements rotating differently to an offseted pivot then a normal actor or component.
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]
2021-12-02 02:13:23 -05:00
lauren barnes
8ffecdf82c Adding a delegate for mode toolkits to do any UI shutdown that depends on the mode UI layer. Small fix to completely unregister known tabs in the mode UI layer.
#jira none
[FYI] Mike.Zyracki

#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 18328063 in //UE5/Release-5.0/... via CL 18328072
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18328083 by lauren barnes in ue5-release-engine-test branch]
2021-11-30 13:46:09 -05:00
mark lintott
9fab055f48 Non-Unity build fixes
#rb none
#jira none
#preflight 61a630a713434551d78661f5

#ROBOMERGE-AUTHOR: mark.lintott
#ROBOMERGE-SOURCE: CL 18324460 in //UE5/Release-5.0/... via CL 18324468
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18324492 by mark lintott in ue5-release-engine-test branch]
2021-11-30 09:46:34 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -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
brooke hubert
82a6a0003f Add ability for placement palette items to have a custom settings object from the placement factory, and add a details panel to the mode for editing the settings object.
#preflight 613264d517a8610001fa6050
#Jira UETOOL-3790
#rb julien.stjean

#ROBOMERGE-AUTHOR: brooke.hubert
#ROBOMERGE-SOURCE: CL 17472632 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17472652 by brooke hubert in ue5-release-engine-test branch]
2021-09-09 11:16:10 -04:00
julien stjean
9af8446874 Changed the TypedElementInterface to use UInterfaces instead of an object base api.
#jira UETOOL-4054
#preflight 6132413c1a52e20001dce90d
#rb Jamie.Dale

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

[CL 17424661 by julien stjean in ue5-release-engine-test branch]
2021-09-03 14:18:34 -04:00
brooke hubert
a60ba51741 Mode UI layer will set the icon if one is provided to the minor tab info, or fallback on the default for the workspace category if one was not provided.
#preflight 612e3f1fb6b29c0001ebc06c
#Jira none
#rb lauren.barnes

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

[CL 17369756 by brooke hubert in ue5-release-engine-test branch]
2021-08-31 12:11:44 -04:00
lauren barnes
5bd8c74d4e FAssetEditorModeUILayer now serves as a layer between a given asset editor and the mode toolkits, so that the mode toolkits can request UI panels and the asset editor determines where they are located in the asset editor layout. The first implementation is in the level editor, and all default mode UI has been moved to FModeToolkit.
#jira UETOOL-3555
#preflight 61143dbf9c7bb10001f080b3
#rb Matt.Kuhlenschmidt

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

[CL 17152291 by lauren barnes in ue5-release-engine-test branch]
2021-08-12 10:54:54 -04:00
brooke hubert
aa2de405e8 Editor static mesh factory uses placement partition actor instead of foliage partition actor.
#Jira UETOOL-3787
#preflight 6113d6650d783d00011b6ce9
#rb jamie.dale jeanfrancois.dube

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

[CL 17152023 by brooke hubert in ue5-release-engine-test branch]
2021-08-12 10:30:30 -04:00
zach rammell
1c5e438e41 Extend viewport focusing to work with typed elements
#jira UETOOL-3744
#rb [at]brooke.hubert
#preflight 61144bdcb2dc4b00015438c5

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

[CL 17145336 by zach rammell in ue5-release-engine-test branch]
2021-08-11 21:16:26 -04:00
jamie dale
afa943050c Converted UTypedElementList to no longer be a UObject
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]
2021-06-24 14:31:49 -04:00