Commit Graph

11 Commits

Author SHA1 Message Date
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
9fa4bf0f27 Move FEditorModeInfo and shared mode defines to EditorFramework module.
#rnx
#Jira UE-96448
#review-14071452
#rb jamie.dale lauren.barnes

[CL 14084099 by brooke hubert in ue5-main branch]
2020-08-11 16:46:17 -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
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
max chen
0546ffc075 Editor: Fix depth picker to actually pick a sensible depth rather than just the hit proxy actor location
#jira UE-82034
#rb matt.hoffman

#ROBOMERGE-SOURCE: CL 9753544 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v545-9751379)

[CL 9753546 by max chen in Main branch]
2019-10-22 19:01:53 -04:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ben Marsh
5275490168 Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3277940)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3233612 on 2016/12/13 by Ben.Marsh

	UGS: Fix cases where precompiled binaries are submitted for a content change.

Change 3235584 on 2016/12/14 by Ben.Marsh

	UBT: Deprecate the overridable TargetRules.ShouldUseSharedBuildEnvironment() function; targets should specify which build environment to use by setting the BuildEnvironment field in their constructor instead.

Change 3235741 on 2016/12/14 by Ben.Marsh

	UBT: Deprecate the SetupBinaries() callback on the TargetRules class. Instead of overriding this, targets may override their launch module through the "LaunchModuleName" property in their constructor, and add extra modules to the "ExtraModuleNames" field on the TargetRules object itself.

Change 3238176 on 2016/12/16 by Ben.Marsh

	UBT: New XML config file parser. Now reads once at startup and can be applied to instanced objects rather than global fields, and caches parsed output in a binary form for quicker initialization on subsequent runs.

Change 3238249 on 2016/12/16 by Ben.Marsh

	UBT: Add attribute-driven command line parser.

Change 3238462 on 2016/12/16 by Ben.Marsh

	UBT: Include the Platform, Configuration and Architecture on the TargetRules. Add a constructor which takes the TargetInfo object and deprecate the parameterless one; these fields are currently initialized before invoking the constructor in RulesAssembly.

Change 3238564 on 2016/12/16 by Ben.Marsh

	UBT: Deprecate the ModuleRules constructor which takes a TargetInfo argument. Replace it with a read-only wrapper around the target rules instead, so target-specific configuration options can be read without needing to access global static variables. Also require that it's passed to the base class constructor.

Change 3239919 on 2016/12/19 by Ben.Marsh

	UBT: Remove the "PreferredSubPlatform" property. This is only used for Windows XP support, which is being retired anyway. Having the target define its own architecture is an awkward contractiction to maintain support for, since the target rules are constructed after the architecture already has been determined.

Change 3240061 on 2016/12/19 by Ben.Marsh

	UBT: Remove ThirdPartyHeaderFinder. I don't think anything is using this any more.

Change 3240175 on 2016/12/19 by Ben.Marsh

	UBT: Add the target name and project file location to the target rules.

Change 3240490 on 2016/12/19 by Ben.Marsh

	UAT: Remove Mac staging code that requires UAT to compile and construct .target.cs files when packaging, to check bUseSteam and bUseCEF3 flags. libsteam_api.dylib is now staged at build time by adding it as a bundle resource, CEF3 is already marked as a runtime dependency by CEF3.build.cs, and UnrealCEFSubProcess.app is already marked as a runtime dependency from WebBrowser.build.cs.

Change 3240717 on 2016/12/20 by Ben.Marsh

	UAT: Allow configuring UAT to run as if on a build machine by passing the -buildmachine argument on the command line.

Change 3240718 on 2016/12/20 by Ben.Marsh

	UAT: Remove target-specific properties that are no longer used by staging (bUsesSlate, bUsesCEF3, etc...). This stuff should all be handled inside UBT.

Change 3241002 on 2016/12/20 by Ben.Marsh

	UBT: Move most target configuration settings from UEBuildConfiguration to TargetRules. This encapsulates target specific settings that will allow instancing multiple targets in the future. To facilitate migration of settings to their new location, "UEBuildConfiguration" is now a property that returns the current target rules instance.

Change 3241027 on 2016/12/20 by Ben.Marsh

	Only copy the Steamworks dylib into the app bundle for monolithic builds. For all other times, just add it as a runtime dependency.

Change 3241055 on 2016/12/20 by Ben.Marsh

	UBT: Only store a ReadOnlyTargetRules object on the instanced build target; finalize the configuration before it's instantiated.

Change 3241156 on 2016/12/20 by Ben.Marsh

	Update SwarmInterface.csproj to .NET framework 4.5, to match what all other C# tools are using.

Change 3241205 on 2016/12/20 by Ben.Marsh

	Replace all uses of TargetRules.TargetType with TargetType.

Change 3241881 on 2016/12/21 by Ben.Marsh

	UBT: Remove project file information from UEBuildContext base class. As configurable properties are moved on to the TargetRules object, it will no longer be a dependency to instantiate the platform with this path.

Change 3241895 on 2016/12/21 by Ben.Marsh

	UBT: Remove toolchain support for Windows XP.

Change 3241908 on 2016/12/21 by Ben.Marsh

	UBT: Move settings for windows targets into a WindowsTargetRules class, which is exposed for targets to modify via the TargetRules.WindowsPlatform field.

Change 3242835 on 2016/12/22 by Ben.Marsh

	UBT: Fix multiple binaries being created if plugins specify module names more than once. MfMedia.uplugin has MfMediaFactory listed twice.

Change 3242837 on 2016/12/22 by Ben.Marsh

	Change UE4EditorServices to include MacSystemIncludes rather than Cocoa.h directly; causes FVector to be defined incorrectly in non-unity builds.

Change 3242923 on 2016/12/22 by Ben.Marsh

	Build: Fixes for conforming incremental workspaces:

	* P4 have table is now reset before deleting all the files. This prevents Perforce being out of sync if the delete fails for some reason.
	* Incremental workspaces are skipped when running a clean operation, because they do not have a workspace capture file (causing a full re-sync, always). The "P4 Clean" option is still effective for cleaning these workspaces.

Change 3242961 on 2016/12/22 by Ben.Marsh

	UBT: Move entry points from PreBuildSync() and PostBuildSync() from UEToolChain to UEBuildPlatform, and make the original toolchain versions static. These functions are already at odds with the rest of the data flow within UBT because they rely on global state cached outside the toolchain instance, making assumptions that UBT is only ever going to be invoked with one target that's constructed in the same run and that nothing is being cached (eg. UBT makefiles). Moving them onto UEBuildPlatform simplifies the toolchain lifecycle for other platforms without leaving Mac and IOS any more limited than they were before.

Change 3242981 on 2016/12/22 by Ben.Marsh

	UBT: Remove symbol server handling code into UAT's platform library, since it's never needed from inside UBT.

Change 3242999 on 2016/12/22 by Ben.Marsh

	UBT: Remove the StripSymbols() function from the UEToolChain base class. This functionality is only required by UAT, so it's better suited to being exposed through UAT's modular platform classes.

Change 3243022 on 2016/12/22 by Ben.Marsh

	UBT: Require an instance of the target rules to be able to construct a toolchain in UBT. This will allow configuring toolchain-specific options from the target, using reflection from config files, and the command line.

Change 3243083 on 2016/12/22 by Ben.Marsh

	UBT: Move settings for the Windows compiler version to use onto the Windows-specific target rules.

Change 3243090 on 2016/12/22 by Ben.Marsh

	UBT: Change the third party paths in UEBuildConfiguration to constants. Changing these would not work.

Change 3243423 on 2016/12/23 by Ben.Marsh

	UBT: Move a lot of settings from BuildConfiguration to TargetRules. This allows different targets to have different settings, naturally, and moves converts argument parsing and config to be driven by attributes.

Change 3243516 on 2016/12/23 by Ben.Marsh

	UBT: Remove the ValidateUEBuildConfiguration callback, which is no longer used. (XGE settings validation occurs in XGE.cs)

Change 3244020 on 2016/12/28 by Ben.Marsh

	UBT: Remove the BaseIntermediatePath static property. Precursor to removing RelativeEnginePath and IntermediateFolder properties.

Change 3244074 on 2016/12/28 by Ben.Marsh

	UBT: Remove the RelativeEnginePath variable from BuildConfiguration. UnrealBuildTool.EngineDirectory gives the absolute path, and can be used to construct a relative path when necessary.

Change 3244076 on 2016/12/28 by Ben.Marsh

	UBT: Remove BuildConfiguration.BaseIntermediateFolder; just use a fixed directory everywhere instead.

Change 3244083 on 2016/12/28 by Ben.Marsh

	UBT: Replace FileReference and DirectoryReference instance methods for manipulating files and directories with static methods, to mirror the System.IO.File and System.IO.Directory classes.

Change 3244441 on 2016/12/31 by Ben.Marsh

	UBT: Remove code to force PDBs when building with no debug info under XGE. Verified described symptoms (that it causes PCH generation to be serialized) no longer occur.

Change 3244687 on 2017/01/03 by Matthew.Griffin

	Changed Exception to use FirstInclude.IncludeName as PrecompiledHeaderIncludeFilename can be null when this occurs

Change 3246112 on 2017/01/04 by Ben.Marsh

	UBT: Fix UHT failures building some targets with the -useprecompiled option, due to differences in the order that circularly dependent modules are parsed. Precompiled binaries are now kept in the regular AppBinaries list, but are excluded from the build at the last minute. Also change some checks from IsEngineInstalled() to bUsePrecompiled, to prevent headers being overwritten when running in a non-installed precompiled build.

Change 3246223 on 2017/01/04 by Ben.Marsh

	UBT: Prevent version manifests being overridden if a file is not being built as part of the target.

Change 3246387 on 2017/01/04 by Ben.Marsh

	UBT: Remove BuildConfiguration settings for UnrealCodeAnalyzer. This tool isn't used at the moment, but it's configured using global variables accessed from all over the UBT codebase, making it difficult to refactor the build options into an instanced object. If we bring this tool back from the dead in the future, it should be possible to implement it using the exported JSON target definition or the XGE manifest, similarly to how IncludeTool uses it.

Change 3247004 on 2017/01/04 by Ben.Marsh

	UBT: Simplify the logic for cleaning targets in UBT. Now uses FileReference/DirectoryReference objects everywhere, doesn't require the compile/link environment, and does all the checking to avoid deleting precompiled binaries in one place.

Change 3247250 on 2017/01/04 by Ben.Marsh

	UBT: Prevent precompiled binaries being added to the list of app binaries twice.

Change 3247594 on 2017/01/05 by Ben.Marsh

	Build: Run sample and template editors on the same agents as the other incremental builds. Remove ProtoStar, which does not have any non-precompiled editor target to build.

Change 3247763 on 2017/01/05 by Ben.Marsh

	UBT: Allow the toolchain to update the list of build products for each module linked into a binary. Allows Mac to add dylibs and bundle resources specified per-module without having to construct a link environment and try to link them.

Change 3247775 on 2017/01/05 by Ben.Marsh

	UBT: Instance the target compile and link environments when they are required during building, and don't persist them on the UEBuildTarget instance.

Change 3247811 on 2017/01/05 by Ben.Marsh

	EC: Add a batch file for testing postp filters.

Change 3247839 on 2017/01/05 by Ben.Marsh

	EC: Include the name of the file being compiled when parsing MSVC errors and warnings.

Change 3248101 on 2017/01/05 by Ben.Marsh

	UBT: Fix Android support for force included headers.

Change 3248533 on 2017/01/05 by Ben.Marsh

	PR #3097: UBT project supports optional platforms (Contributed by PrimalJohnScott)

Change 3249205 on 2017/01/06 by Ben.Marsh

	UAT: Fix ParseTaggedP4Output throwing an exception if the same key name is specified more than once. This can happen when parsing the output from "P4 INFO", where multiple brokers are present.

Change 3249249 on 2017/01/06 by Ben.Marsh

	UBT: Check for the existance of AndroidManifest.xml within extracted AAR directories, rather than just checking for the existance of the directory itself. Perforce does not remove empty directories when cleaning a workspace unless the rmdir option is on the workspace, so this can cause incremental build failures to fail on build machines.

Change 3249486 on 2017/01/06 by Ben.Marsh

	UBT: Use relative paths in unity files when compiling for Mac/IOS, rather than generating a separate local/remote version of the file for gathering include dependencies. Absolute paths are only used to work around the way that MSVC concatenates paths internally; we don't hit the same problems when checking dependencies.

Change 3249736 on 2017/01/06 by Ben.Marsh

	UBT: Rename CPPEnvironment to CppCompileEnvironment, and remove the separate CPPEnvironmentConfiguration object. All settings are now stored directly on the CppCompileEnvironment object.

Change 3250179 on 2017/01/07 by Ben.Marsh

	Fix creating installed build when root directory contains a space in the name.

Change 3250181 on 2017/01/07 by Ben.Marsh

	UBT: Remove some esoteric (and unused, AFAIK) options for orthogonally building different platforms.

Change 3250223 on 2017/01/07 by Ben.Marsh

	UBT: Merge the LinkEnvironment and LinkEnvironmentConfiguration classes together.

Change 3250233 on 2017/01/07 by Ben.Marsh

	UGS: Allow specifying a workspace-specific sync filter, which is applied on top of the standard filter. Also fix filter being cleared if the cancel button is pressed, and help text being stripped out.

Change 3250241 on 2017/01/07 by Ben.Marsh

	UBT: Move the options for specifying additional Android architectures to target onto an Android-specific object on the TargetRules.

Change 3250400 on 2017/01/08 by Ben.Marsh

	UBT: Move executor config settings onto the executor instances.

Change 3257708 on 2017/01/13 by Ben.Marsh

	UBT: Remove the ThirdPartySourceDirectory constant; there are many places which hard-code or assume this location anyway, and it's not going to change.

Change 3260535 on 2017/01/17 by Ben.Marsh

	Add an optional "RequiredSubmittedChange" setting to EC settings files. Allows a scheduled job to run even if there have been no code changes submitted. Test with the utilization capture job.

Change 3260875 on 2017/01/17 by Ben.Marsh

	EC: Fix workspaces getting out of sync wrt. newly added files when jobs are aborted during a sync. In such cases, the P4 have table indicates the new files have been synced locally, but the workspace is forced back to a state before it had them due to the capture file. When a following sync tries to add them again, P4 believes the workspace already has them synced.

	To work around this, we now write an additional file to the root folder of a workspace containing the last CL that was captured, and sync back to it before doing the reconcile.

Change 3261724 on 2017/01/18 by Ben.Marsh

	Allow filtering job types from the list view in EC. Hide the utilization capture job by default. Also set up notifications for the utilization capture job.

Change 3261756 on 2017/01/18 by Ben.Marsh

	IncludeTool: Prevent matching a full enum declaration as a forward declaration.

Change 3261932 on 2017/01/18 by Ben.Marsh

	EC: Add support for specifying days of the week in schedules. The following syntaxes are supported:

	"Monday, Tuesday and Wednesday at 10:30"
	"Daily except Sunday and Wednesday at 14:30"

	 Also tweak display of dates relative to now to handle dates/times in the future, and include the date when specifying a day name.

	#jira UEB-729

Change 3262676 on 2017/01/18 by Ben.Marsh

	UBT: Split UBTMakefile into its own file. (From PR #3106)

Change 3263893 on 2017/01/19 by Ben.Marsh

	UBT: Stop exporting platform classes from UBT, as well as all the referenced classes that have to be made public as a result. Any platform-specific functionality that needs to be shared with UAT is now exposed through wrappers in separate public classes, eg. WindowsExports.cs, IOSExports.cs, etc...

Change 3264291 on 2017/01/19 by Ben.Marsh

	UBT: Fix errors generating documentation in UBT, and enable it by default. Will catch more errors with new code being added. Originally in PR #3106, but redone due to conflicts.

Change 3264534 on 2017/01/19 by Ben.Marsh

	UBT: Include plugin config files in generated projects.

Change 3264571 on 2017/01/19 by Ben.Marsh

	UBT: Prevent overwriting .modules files if nothing has changed. On builders, it's common to build multiple editors in the same workspace, and changing the last modified timestamp causes BuildGraph to fail due to tampered files.

Change 3265745 on 2017/01/20 by Ben.Marsh

	UGS: Automatically open UGS when running the launcher for a second time, rather than prompting to close the original instance.

Change 3265777 on 2017/01/20 by Ben.Marsh

	UGS: Automatically close and reopen when UGS is re-ran with the shift key held down to switch into unstable mode.

Change 3268314 on 2017/01/23 by Ben.Marsh

	UBT: Make sure version manifests are stable by sorting the list of build products, so they are only touched if the contents have really changed.

Change 3269601 on 2017/01/24 by Ben.Marsh

	UBT: Fix symbol files being added to manifest for some platforms even though debug info is disabled.

Change 3269607 on 2017/01/24 by Ben.Marsh

	UBT: Fix bug where UBT would need to be invoked when switching between two editors sharing the same engine binaries on Mac. The location of the .modules file cannot be guessed on Mac by looking in the same directory as the primary output executable because it's an .app bundle, and the actual modules are nested several directories below that.

Change 3269608 on 2017/01/24 by Ben.Marsh

	UBT: Fix additional files copied into the app bundle always being updated on Mac. Now uses rsync --checksum to make sure only modified files are updated.

Change 3271062 on 2017/01/24 by Ben.Marsh

	UBT: Fixes for bugs detected by PVS Studio (PR #3161)

Change 3272421 on 2017/01/25 by Ben.Marsh

	Fix commends regarding DDC in BaseEngine.ini

	#jira UE-41076

Change 3272810 on 2017/01/25 by Ben.Marsh

	Fix VS2017 being displayed as 'Visual Studio 15' in the Windows target settings panel.

Change 3272935 on 2017/01/25 by Ben.Marsh

	Fix Metal errors launching on Mac due to use of OSX environment settings before they are initialized. Toolchain settings are now constructed on demand in a separate class, for Mac, iOS and TVOS.

Change 3274167 on 2017/01/26 by Ben.Marsh

	Fix resource files not being compiled in installed builds on Windows. Was causing metadata not to be embedded into executables.

	#jira UE-36457

Change 3275557 on 2017/01/27 by Ben.Marsh

	Expand checks for propagation of restricted folder names to include source files, and to ensure that each restricted folder is represented in the output. Also improve messaging to show the dependency chain leading to a restricted folder being referenced, and which folder it is.

Change 3275628 on 2017/01/27 by Ben.Marsh

	UBT: Splitting configuration files into one class per-file.

Change 3276784 on 2017/01/29 by Ben.Marsh

	Add an authoritative list of confidential folder names, and expose it through global BuildGraph properties ($(RestrictedFolderNames) and $(RestrictedFolderFilter)). Also switch existing scripts to use it.

Change 3276792 on 2017/01/29 by Ben.Marsh

	UBT: Use UE4CSharp.prog files to indicate which projects should be included in the solution without having to hard-code a list of them in UBT.

Change 3277263 on 2017/01/30 by Ben.Marsh

	IncludeTool: Merging various fixes.

	* Fix warnings about #include directives after first code block from parsing monolithic headers.
	* Fix exception on startup if the intermediate directory does not already exist.
	* Add a special case for ignoring missing header guards from MonolithicHeaderBoilerplate.h, rather than marking it as an inline header. Marking it as inline prevents parsing include directives, which results in including CoreTypes.h from the wrong location.
	* Create job objects for spawned compiler instances to prevent them trying allocating more memory than the system can spare.
	* Remove (unused) code which makes assumptions about files ending with "Classes.h".
	* Add a verbose per-file output log to aid with debugging.
	* Negate the MakeStandalone command line option, which was added to allow tweaking forward declarations in already optimized files, so the optimized output does not have missing headers by default.
	* Fix missing headers when creating standalone files, due to incorrect list of previous files being passed in to the OutputFile constructor. Now passes the original list of included files, not the output list.
	* Fix initial header for a cpp file sometimes being removed. Forcibly including a header at the start of the file does not use the normal pathway for spidering through includes, so a second include of the same file was being generated. Any includes of that header were being forced into output, and the earlier include was then removed due to being redundant.
	* Prevent forward declaring enums which have to be parsed by UHT. UHT relies on includes to determine a parse order, and will fail if the enum definition has not been parsed first.
	* Use a relative path for private includes in the same module if there are any. Fixes some incorrect paths, and makes it clearer that we're doing something we shouldn't.

Change 3277307 on 2017/01/30 by Ben.Marsh

	UBT: Fix private PCHs not using correct header. Causes custom definitions to be excluded from the command line.

[CL 3278101 by Ben Marsh in Main branch]
2017-01-30 16:52:08 -05:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Max Chen
41e5062f30 Copying //UE4/Dev-Sequencer to //UE4/Main (Source: //UE4/Dev-Sequencer @ 2945541)
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2837601 on 2016/01/20 by Thomas.Sarkanen

	Sequencer: Exposed bool, byte, event, fade, float, slomo, and visibility section keys in context menu

Change 2840895 on 2016/01/23 by Thomas.Sarkanen

	Sequencer: Moved key proxy handling from section into key area; added support for grouped keys; exposed color properties in context menu.

Change 2901092 on 2016/03/09 by Thomas.Sarkanen

	Sequencer: Fixed ensure() and crash when exiting PIE & then playing back in editor

	Made sure that instances that are playing that have active montages can re-connect to a playing montage if it is already active. We dont stop/start preview/non-
preview playback when switching modes right now so I've just made the system robust to the switch when playing back animation.
	Ensured that instances are kept up to date by hooking into EndPlayMapDelegate. This fires slightly later than OnEndPIE, so it allows us to pick up when instances
have been deleted from the world. OnEndPIE is fired before the worlds are shutdown so instances can still be bound to valid (but nearly dead) actors at this point.

	#jira UE-27898
	#jira UE-27899

Change 2901159 on 2016/03/09 by Chris.Bunner

	Allow EXR frames from SaveHighResScreenshot to be uncompressed (r.SaveUncompressedEXRFrames).

Change 2903123 on 2016/03/10 by Max.Chen

	Sequencer: Add snapping for the in/out range.

Change 2903126 on 2016/03/10 by Max.Chen

	Sequencer: Fix split and trim for cinematic shot sections so that the start offset value is set.

Change 2903132 on 2016/03/10 by Max.Chen

	Sequencer: Create camera here and set it as the current camera cut.

Change 2903138 on 2016/03/10 by Max.Chen

	Sequencer: Improve mechanism for adding objects to Sequencer. Hold down shift while dragging from content browser to add as a spawnable. Hold down ctrl while
dragging from content browser to add as a possessable.

Change 2903143 on 2016/03/10 by Max.Chen

	Sequencer: Add 4k to movie capture dialog.

	#jira UE-28147

Change 2903157 on 2016/03/10 by Max.Chen

	Sequencer: Pop out of locked camera when popping out of the sequence.

	#jira UE-27662

Change 2908097 on 2016/03/14 by Andrew.Rodham

	Sequencer: Added default viewport type onto the viewport types menu
	  - The activation command for a given viewport type no longer toggles it if it's already active, it will just do nothing.
	  - Switching back to the default viewport type can be achieved with SHIFT+D

Change 2911869 on 2016/03/16 by Max.Preussner

	Editor: Caching device proxy manager, so the UI doesn't constantly poll for the TargetDeviceServices module

Change 2917943 on 2016/03/22 by Thomas.Sarkanen

	Sequence Recording: Added "Record New Sequence From Current Player" to sub-sequence track menu

	This option is only available in PIE. When selected it primes a new seciton for recording against the pawn that is currently being controlled by the player.

Change 2917946 on 2016/03/22 by Max.Chen

	Sequencer: Automatically add and attach a cine camera when dropping a crane or rail.

Change 2917954 on 2016/03/22 by Thomas.Sarkanen

	Fix anim dynamics going crazy on time skips

	Added new API to FAnimNode_Base: NeedsDynamicReset and ResetDynamics.
	This allows nodes that subscribe to this interface to be reset on teleport/time skips.
	Call through to ResetDynamics on zero timestep (ie. skips) in the preview path in Sequencer.

Change 2917961 on 2016/03/22 by Frank.Fella

	Sequencer - Sequencer - Update the color track code to match the behavior in matinee, also remove empty light color tracks from the sequence, and add a missing
particle parameter track.

Change 2917984 on 2016/03/22 by Max.Chen

	Sequencer: Fix crash on deleting object binding nodes multiple times.

Change 2917986 on 2016/03/22 by Max.Chen

	Sequencer: Fix if adding multiple camera cuts at the same time with the same duration as an existing camera cut. The camera is replaced in this case.

Change 2917994 on 2016/03/22 by Jeff.Farris

	Support for scene depth picker. Used for focus depth sampling in cine cams.

Change 2918003 on 2016/03/22 by Max.Chen

	Sequencer - Fix selection issues related to keying an undo by moving the selection clear on rebuild to after the tree selection state has been cached by path.

Change 2920371 on 2016/03/23 by Max.Preussner

	UnrealEd: Added a file import path that doesn't load the entire file into memory prior to importing

	UFactory::StaticImport will now call FactoryCreateFile for both text and binary files. The default implementation will load the file into a buffer/string and call
FactoryCreateBinary/FactoryCreateText to preserve legacy behavior. New factories may override FactoryCreateFile to perform their own file processing instead.

Change 2923359 on 2016/03/25 by Max.Preussner

	UnrealEd: Refactored out StaticImportObject code into ImportObject

Change 2924887 on 2016/03/28 by Jeff.Farris

	Sequencer: Camera Anim and Camera Shake tracks now support PostProcess changes in the CameraAnim

Change 2927283 on 2016/03/30 by Max.Chen

	Sequencer: Fix crash resetting default in audio track in sequencer. Fix audio track rename when adding another audio.

	#jira UE-28836, UE-28859

Change 2928290 on 2016/03/30 by Max.Preussner

	ContentBrowser: Disabling 'Show in Explorer' context menu option for newly created/unsaved asset(s)

Change 2928480 on 2016/03/30 by Max.Preussner

	AssetTools: Added built-in type category for Media assets

Change 2928498 on 2016/03/30 by Max.Preussner

	AssetTools: Sorting asset type categories alphabetically

Change 2932326 on 2016/04/04 by Frank.Fella

	Sequencer - Add "paste from matinee" support for audio tracks, and add volume support to audio sections in sequencer.

Change 2933917 on 2016/04/05 by Max.Preussner

	Core: Added microseconds support to FTimespan

Change 2933920 on 2016/04/05 by Max.Preussner

	Sockets: Simplified socket timeout assignments

Change 2935434 on 2016/04/06 by Max.Chen

	Sequencer: Deselect possessable before converting it to a spawnable and deleting it. Also, make sure the newly converted spawnables are selected. This fixes a bug
where the transform gizmo remains after adding a spawnable.

	Also, consolidate code for adding possessables to sequencer so that the newly added possessable node will be selected in the widget tree.

	#jira UE-28215

Change 2935590 on 2016/04/06 by Jeff.Farris

	Made crane rig preview mesh at the tip move as expected and appear in a reasonable place.

Change 2936082 on 2016/04/07 by Max.Chen

	Sequencer: Attach should use default attach component of the actor if it exists. This fixes a bug where trying to attach to a camera crane rig attaches to the
proper component.

Change 2936118 on 2016/04/07 by Max.Chen

	Sequencer: Adding crane/rail with shift now adds the crane/rig as a spawnable and the attached cine camera as a spawnable. An attach track is created for the cine
camera spawnable.

	#jira UE-28308

Change 2937226 on 2016/04/07 by Max.Chen

	Sequencer: Add invalidation when levels are added or removed.This fixes a bug were if you have a level sequence open and then add a sublevel that the level
sequence operates on, it correctly updates the actors from the new sub level.

	#jira UE-27595

Change 2937263 on 2016/04/07 by Frank.Fella

	Sequencer - Changed the matinee to sequencer conversion tools so that curve keys set to "clamped auto" import as user tangents since we don't support clamped auto
in sequencer.

Change 2937273 on 2016/04/07 by Max.Chen

	Sequencer: No longer experimental/betal and now enabled by default.

	#jira UETOOl-625

Change 2937694 on 2016/04/08 by Max.Chen

	Curve Editor: Separate out input and output snapping.

	#jira UE-27209

Change 2937852 on 2016/04/08 by Andrew.Rodham

	Sequencer: Spawnables no longer use generated classes

	  - Spawnables now store a template actor instance, rather than a generated class
	  - All relevant code has been converted to use this new approach
	  - Spawnable defaults are now harvested directly from any spawned instances when the movie scene is saved, or when the object is de-spawned. We only do this for
spawnables *in the currently active sequence instance*. This approach ensures that instance components and other properties persist.
	    - Currently we don't mark the package as dirty when the defaults are changed. This needs to be addressed.
	  - Some fixes have been made to AActor and Actor Iterators to ensure that actors not contained within a level do not crash.
	  - Spawning optimisations to follow

Change 2937956 on 2016/04/08 by Max.Preussner

	Sequencer: Added selection range commands to general toolbar menu

Change 2937981 on 2016/04/08 by Max.Preussner

	Sequencer: Refactored GetKeyHandles to take a time range for filtering keys

Change 2938007 on 2016/04/08 by Max.Preussner

	Sequencer: Implemented selection range key selection

Change 2938184 on 2016/04/08 by Max.Chen

	Sequencer: Find in Content Browser is now in the top level menubar.

	#jira UE-21598

Change 2938665 on 2016/04/08 by Frank.Fella

	UMG - Add support for material animation.

Change 2939048 on 2016/04/10 by Max.Chen

	CineCamera: Change current position on rail to normalize position.

Change 2939067 on 2016/04/10 by Max.Chen

	Sequencer: Add paste color from matinee

Change 2939587 on 2016/04/11 by Andrew.Rodham

	Sequencer: Fixes to spawnable rework
	  - Removed commented out code.
	  - Fixed particle system components not disabling auto activate.
	  - Instance Components are now correctly registered on spawn.
	  - Removed ability to set the editable flag on actors in favor of a delegate assigned to SActorDetails to disable property editing on actors spawned from outside
of the currently focused sequence.

Change 2939666 on 2016/04/11 by Andrew.Rodham

	Sequencer: Fixed active sequence ID not being set on creation

Change 2940663 on 2016/04/12 by Andrew.Rodham

	Sequencer: Spawnable object templates now always have the RF_ArchetypeObject flag

	#jira UE-29337, UE-29339

Change 2940742 on 2016/04/12 by Thomas.Sarkanen

	Improvements to sequence recording API

	Sequence recording is now more extensible.
	Moved the majority of recorders into a seperate module.
	Cleaned up recorder API, removed bRecord that was only really used once.
	Added factory class as a modular feature that allows users to register and implement their own recorders.
	Recorders can supply their own settings classes. These are incorporated into the UI via a details customization so they appear to be seamlessly integrated.
	Exposed components to record as an advanced setting. Users can use this to gate the components and actors that are recorded.

	#jira UE-28850 - Update sequence recording API for better extensibility

Change 2940828 on 2016/04/12 by Max.Chen

	Level Editor: Clear the camera preview if the level viewport is locked to the same camera.

	#jira UE-27489

Change 2941090 on 2016/04/12 by Frank.Fella

	Sequencer - Fix inconsistencies with the level visibility track.
	+ Add an option to update a track instance when it stops playing due to it's parent movie scene being deactivated as a sub-scene.
	+ Reset level visibility state when the section ends, or when it's parent subsection ends.

Change 2941427 on 2016/04/12 by Andrew.Rodham

	Sequencer: Fixes for recorded dynamic components
	  - Dynamic components are now named uniquely within their owner actor, and are no longer re-bound to new object tracks when detached/re-attached
	  - New dynamic components are created every time a new component is detected on an actor, regardless of whether it was once attached before. This affords
recording externally managed components from a component pool.
	  - Section recorders for components that are no longer attached to the actor are now disabled correctly.

Change 2941760 on 2016/04/12 by Max.Preussner

	Editor: Setting up correct material expresions when creating material from normal map texture

Change 2941819 on 2016/04/13 by Max.Chen

	Sequencer: Fire named events in all sublevels.

	#jira UE-28843

Change 2942052 on 2016/04/13 by Andrew.Rodham

	Sequencer: Fixed not being able to add dynamic material parameter tracks to spawnables when the object is not spawned

	#jira UE-24287

Change 2942223 on 2016/04/13 by Max.Preussner

	Editor: Using built-in function to assign sampler format

Change 2942833 on 2016/04/13 by Max.Chen

	Sequencer: More copy matinee helpers.

	- Make some sections infinite.
	- Fix FindPossessableObjectId
	- Expose FindGroupByName

Change 2942944 on 2016/04/13 by Max.Chen

	Sequencer: Fix anim copy so that it doesn't create an animation clip longer than the next clip's start position.

Change 2943313 on 2016/04/14 by Max.Chen

	Sequencer: Initial matinee to level sequence asset converter. Right click on a matinee actor in the level and choose "Convert to Level Sequence"

	Current supports:
	 - movement tracks
	 - generic property tracks
	 - particle tracks
	 - anim control tracks
	 - event tracks
	 - audio tracks
	 - visibility track
	 - director track (fade, slomo, camera cuts)

	Possible todos:
	- Relative scale3D
	- Option to create spawnables instead of possessables
	- Create shots per director track camera cut instead of a direct translation to the camera cut track

	#jira UETOOL-467

Change 2943596 on 2016/04/14 by Andrew.Rodham

	Editor: Fixed placement mode scrollbar visibility not working for custom content

	#jira UE-27191

Change 2943651 on 2016/04/14 by Max.Chen

	Sequencer: Invalidate the audio waveform when the source changes.

	#jira UE-29394

Change 2943674 on 2016/04/14 by Max.Chen

	Sequencer: Store/restore playback state when rebuilding.

	#jira UE-29452

Change 2943993 on 2016/04/14 by Max.Chen

	Sequencer: Convert slot name from matinee to level sequence.

Change 2944156 on 2016/04/14 by Frank.Fella

	Sequencer - Fix undo when moving items into folders, and when deleting folder.

	#jira UE-27368

Change 2944227 on 2016/04/14 by Max.Chen

	Sequencer: Show curves in the curve editor if one of the parent nodes is selected. For example, if Location is selected, show Location.X, Location.Y, and
Location.Z

Change 2945057 on 2016/04/15 by Andrew.Rodham

	Editor: Fixed placement mode scrollbar visibility not working for custom content

	#jira UE-27191

#lockdown nick.penwarden

[CL 2945551 by Max Chen in Main branch]
2016-04-15 14:50:58 -04:00