Commit Graph

84 Commits

Author SHA1 Message Date
Tim Smith
a2237e050d LiveCoding Re-instancing
LIMITATIONS:

1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.

KNOWN ISSUES:

1) Changes to enumerations and structures will not be reflected in existing blueprints.  However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.

CHANGES:

1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.

2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API

3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.

Robert did the review on the changes covered by Part 2.  Remaining changes are all straightforward.

#rb robert.manuszewski
#jira UE-74493

[CL 15736777 by Tim Smith in ue5-main branch]
2021-03-18 08:13:59 -04:00
Gines Hidalgo
a606c1d42a #jira UE-107755
Editor layout system: If there is a version bump in the layout system, it used to show a message dialog always. Behavior modified.
If the load request comes from the "Load" UI button, it keep displaying a message dialog to warn the user (and a UELOG(Warning)). If it's from the editor startup, it will only show the UE_LOG(Warning).

Also modified the default layout with the new version.

#rb none

[CL 15307798 by Gines Hidalgo in ue5-main branch]
2021-02-03 21:14:05 -04:00
geoff evans
4f72b503b8 Add Stall Detector API, enabled only for Editor builds for Windows
This code is meant to help locate and send reports/telemetry for slow code pathways that create unresponsive conditions
FGameThreadHitchHeartBeatThreaded was considered, but doesn't fit Editor's needs because its designed around general GameThread deadlines
Editor workloads are much less homogenous, and proper async support for a consistent GameThread deadline in Editor is a ways away
This necessitates a more focused approach where we can instrument specific routines such that each issue their own telemetry report
Add a "Stalls" counter in the Frame Rate and Memory title bar stats
Add LogStall Log category for viewing details about stalls that have occurred
Introduces a stall counter object on the GameThread to collect statistical data about stalls (this will not report to telemetry)
Future changes will introduce report objects into specific routines to upload to crashreporter
Future changes will introduce support for non-Windows OSes

#jira none
#rb francis.hurteau

[CL 15213394 by geoff evans in ue5-main branch]
2021-01-26 20:26:53 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
danny couture
8f88f4a055 Add some useful Insights trace
#rb Francis.Hurteau

[CL 14487717 by danny couture in ue5-main branch]
2020-10-13 21:04:47 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Vincent Gauthier
9cda21ffb3 Prevent Save and Checkout dialog to show up when changing the layout of the Editor.
#jira UE-97890
#rb patrick.boutot

[CL 14293099 by Vincent Gauthier in ue5-main branch]
2020-09-10 16:35:26 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00
rex hill
9c3ceb9689 Add option to delay showing main frame at startup
#rb chris.gagnon


#ROBOMERGE-SOURCE: CL 11672298 via CL 11672319 via CL 11672336
#ROBOMERGE-BOT: (v656-11643781)

[CL 11863430 by rex hill in Main branch]
2020-03-03 09:05:40 -05:00
rex hill
4511728f09 Tab manager filter can now block tab spawn
#rb chris.gagnon


#ROBOMERGE-OWNER: rex.hill
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 11604269 via CL 11604360 via CL 11604439
#ROBOMERGE-BOT: (v656-11643781)

[CL 11743509 by rex hill in Main branch]
2020-02-28 11:30:46 -05:00
JeanMichel Dignard
7130d293f2 Merging main @ cl 11028482
#rb none
#rnx

[CL 11029060 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-16 10:24:38 -05:00
mike fricker
a3072a7a0f UE4: Expose support for overriding the application title
Added new IMainFrame module interface function to override the application title.

IMainFrameModule::SetOverrideApplicationTitle(FText)



#ROBOMERGE-SOURCE: CL 10996086 via CL 10996091 via CL 10996095
#ROBOMERGE-BOT: (v633-10983880)

[CL 10996097 by mike fricker in Main branch]
2020-01-15 14:44:42 -05:00
JeanMichel Dignard
70d074639f Merging //UE4/Dev-Main @ 10886849 to Dev-Tools-Staging (//UE4/Dev-Tools-Staging)
#rb none
#rnx

[CL 10906274 by JeanMichel Dignard in Dev-Tools-Staging branch]
2020-01-08 13:26:18 -05:00
ryan durand
627baf970a Updating copyright for Engine Editor.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870586 by ryan durand in Main branch]
2019-12-26 15:33:43 -05:00
Gines Hidalgo
f1dcb5578a Added comments to help update the default values of the Editor layout (i.e., if changes are applied to "LevelEditor_Layout_v1.1" or "UnrealEd_Layout_v1.4").
#fyi matt.kuhlenschmidt
#rb none

[CL 10227617 by Gines Hidalgo in Dev-Editor branch]
2019-11-14 16:54:43 -05:00
gines hidalgo
200978d07a Copied CL# 9259124
Copied CL# 9452975
Copied CL# 9538568

#jira UE-80271
#jira UE-80344
Bug fixes:
1) UE-80271: Solved the issue that plugin-dependent SWidget windows appeared  blank when the Editor was loaded with the respective plugin disabled.
2) Attemp to solve UE-80344: Avoided the out-of-bounds TArray error in FTabManager.
3) Standalone SWidgets from non-loaded plugins now behave in the same way than the docked SWidgets from non-loaded plugings: They are also re-opened when the plugin is loaded again and the Editor re-started. Before, they just disappeared.
#rb chris.gagnon
#lockdown chris.gagnon

#jira UE-80271
Enhancement/bug fix: Unrecognized Docked SWidgets from non-loaded plugins are not displayed on the UI rather than being showed up as "unrecognized tab", similarly to how standalone widgets behave.
Also removed 1 of 2 very similar warnings.
#jira UE-80988
This code should also fix the 1-off crash of crash when cliking on "Window" in the Menu Bar in QA Game, given that we have reverted even more changes and have limited it only to the layout generated in MainFrameModule.
#rb lauren.barnes

Fixed regression suffered in CL 9452975 for experimental "Modeling Tools Editor Mode" plugin.
[FYI] louise.rasmussen, ryan.schmidt
#rb lauren.barnes

#ROBOMERGE-SOURCE: CL 9688454 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v538-9681622)

[CL 9688464 by gines hidalgo in Main branch]
2019-10-18 09:38:48 -04:00
Gines Hidalgo
55733ef982 Fixed regression suffered in CL 9452975 for experimental "Modeling Tools Editor Mode" plugin.
#fyi louise.rasmussen, ryan.schmidt
#rb lauren.barnes

[CL 9538568 by Gines Hidalgo in Dev-Editor branch]
2019-10-10 12:42:23 -04:00
Gines Hidalgo
74da92cf3e #jira UE-80271
Enhancement/bug fix: Unrecognized Docked SWidgets from non-loaded plugins are not displayed on the UI rather than being showed up as "unrecognized tab", similarly to how standalone widgets behave.
Also removed 1 of 2 very similar warnings.
#jira UE-80988
This code should also fix the 1-off crash of crash when cliking on "Window" in the Menu Bar in QA Game, given that we have reverted even more changes and have limited it only to the layout generated in MainFrameModule.
#rb lauren.barnes

[CL 9452975 by Gines Hidalgo in Dev-Editor branch]
2019-10-07 14:08:40 -04:00
Chris Gagnon
2e87118a18 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) Interim 4.24.
#rb none

[CL 8614014 by Chris Gagnon in Main branch]
2019-09-10 11:35:20 -04:00
Max Chen
61603c83e4 Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor) at CL#8390086
#rb none

[CL 8393238 by Max Chen in Dev-Editor branch]
2019-09-01 02:03:35 -04:00
Gines Hidalgo
d751ad2d5f #jira UETOOL-1721
Enhacement JIRA UETOOL-1721: Introduced the capability to load/save/remove Editor UI Layouts, so that the user can customize the Editor and save/share it accross machines or people.
Additional enhancements: Re-loading a layout no longer requires the whole editor to restart. Instead, only the tabs are closed and re-populated (only creating a small "flash" in the editor rather than restarting it).
Previous Editor bugs fixed:
 - Bug 1: AssetEditorToolkit.cpp::FAssetEditorToolkit::RestoreFromLayout was wrongly saving the layout in GEditorIni rather than GEditorLayoutIni.
 - Bug 2: When the layout is saved, the instance ID of the custom toolkits was being saved as well. Given that this number keep increasing after each custom tab is created (no matter if the previous ones were already closed), the editor will keep thinking that the loaded layout is no longer the currrent layout. Fix in TabManager.h::FTabId::ToString().
 - Bug 3: FLayoutSaveRestore::SaveToConfig was taking as input argument FString rather than const FString&.
#rb rex.hill, chris.gagnon

[CL 8129300 by Gines Hidalgo in Dev-Editor branch]
2019-08-20 15:18:28 -04:00
Ben Marsh
beb4519169 Rename EBuildConfigurations::Type to EBuildConfiguration.
#rb none

[CL 7937697 by Ben Marsh in Dev-Build branch]
2019-08-09 17:35:36 -04:00
Rex Hill
6f0fab96ac Rename Editor\EditorMenus\ module to Runtime\ToolMenus\ so that other modules can use the API without having to depend on editor modules.
#rb none
#rnx

[CL 7708568 by Rex Hill in Dev-Editor branch]
2019-08-02 13:45:24 -04:00
Rex Hill
244bdc521c Converted serveral menus to use new menu system: level editor, asset editor
#jira UETOOL-1605
#rb none
#rnx

[CL 7248543 by Rex Hill in Dev-Editor branch]
2019-07-09 10:52:56 -04:00