Commit Graph

5 Commits

Author SHA1 Message Date
Jack Porter
079be7f538 Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
#rb None
#jira 0

[CL 4293080 by Jack Porter in Dev-Mobile branch]
2018-08-16 13:53:43 -04:00
Lauren Ridge
b46b1ce9ed Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 4048875)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3808185 by Cody.Albert

	Added missing calls to FEditorViewportClient::AddReferencedObjects in overrides

Change 3809824 by Michael.Trepka

	Improved the way we generate groups in Xcode project's source code navigator. They are now sorted alphabetically and have correct paths so Xcode no longer displays them in red. Also, added __INTELLISENSE__ to preprocessor definitions for indexing to improve indexing without game header files generated.

Change 3810089 by Jamie.Dale

	Fixed PO files failing to import translations containing only whitespace

Change 3811281 by Matt.Kuhlenschmidt

	PR #4331: Toggle SIE shortcut only in PIE (Contributed by projectgheist)


Change 3813031 by Matt.Kuhlenschmidt

	Fix undocked tabs not dropping at users mouse location

	#jira UE-53427

Change 3813361 by Brandon.Schaefer

	Print what SDL video driver we are using

Change 3818430 by Matt.Kuhlenschmidt

	PR #4365: Incorrect font name and forgotten undef (Contributed by projectgheist)


Change 3818432 by Matt.Kuhlenschmidt

	PR #4366: Asset Color Strip updates correct on drag and drop (Contributed by projectgheist)


Change 3818436 by Matt.Kuhlenschmidt

	PR #4367: Improved logging (Contributed by projectgheist)


Change 3819886 by Matt.Kuhlenschmidt

	Add a way to optionally disable the warning about referenced actors being moved to other levels.  Useful for bulk actor moves via script

Change 3819888 by Matt.Kuhlenschmidt

	Avoid crashing when a window size becomes too large to render.  Instead just ensure and clamp to the maximum allowed size.  Avoids crashes where the screen dimensions are saved with super large numbers for unknown reasons

Change 3821773 by Brandon.Schaefer

	Fix crash when importing to level

	#jira UE-31573

Change 3821892 by Jamie.Dale

	Improved the localized asset cooking so that it only cooks L10N variants if their source asset is cooked

	#jira UE-53010

Change 3823714 by Christina.TempelaarL

	#jira UE-52179 added support for grayscale PSD files

Change 3826805 by Christina.TempelaarL

	#jira UE-49636 SceneCaptureComponent2D hidden actor and show only actors disabled in blueprints
	#jira UE-53445 SceneCaptureComponent2D hidden actors always disabled in details layout

Change 3828444 by Anthony.Bills

	Add LXC container script for building third party libraries.

	The intention is that this should become the only way to rebuild the third party libraries that require system dependencies not included in the cross-compile toolchain and also to rebuild the toolchains. Other third party libraries without any system dependencies could be rebuilt via the cross-compile toolchains/UBT.

	This script has been tested running on CentOS 7 and Ubuntu 17.10.

	Buy default the x86 and x86_64 builds will be built against a CentOS 6 container (and targeting glibc 1.12) and the aarch64 and armhf builds will use an Ubuntu Ubuntu Trusty (14.04) but this is not yet complete.

Change 3828754 by Brandon.Schaefer

	Linux: Fix gamepad thumbstick clicks not registering (github #4209 thanks J??rn M??ller)

	#jira UE-45722

	#review-3828733 Arciel.Rekman

Change 3830414 by Brandon.Schaefer

	Remove circular referencing to a parent window. Move to use AddSP vs AddRaw as well to be safe manually remove ourselves from the selection event delegate list due to Linux pending deletion of windows.
	Looks like this should fix  UE-28322 as well which I've removed the work around placed in for that.

	#jira UE-53918

	#review @michael.trepka, @matt.kuhlenschmidt, @arciel.rekman

Change 3830916 by Brandon.Schaefer

	More verbose message about missing VK extensions (from Marcin Undak)

	#review-3830710 marcin.undak, arciel.rekman

Change 3831339 by Brandon.Schaefer

	Default to as-needed for debug mode

	#jira none

	#review-3830658 Arciel.Rekman

Change 3833102 by Jamie.Dale

	Re-added warning for duplicate package localization IDs when gathering asset localization

Change 3834600 by Jamie.Dale

	Optimized asset registry filter intersection

Change 3838024 by Brandon.Schaefer

	Remove tracking of CLion/CMake build files (from github #4346 thanks reapazor!)

	#jira UE-53551

	#review-3835803 arciel.rekman

Change 3839969 by Michael.Dupuis

	#jira UE-52289: When OnRegister is called on the component make sure our PerInstanceRenderData is up to date
	Prevent a possible crash if ClearInstanceSelection was called on a component with no PerInstanceRenderData existing

Change 3840049 by Michael.Dupuis

	#jira UE-52975: Was always performing the equivalent of an Add, so now we use the Transform during the duplicate

Change 3840071 by Matt.Kuhlenschmidt

	- Combine some shader params for slate in order to reduce overhead setting uniform buffers
	- Added better stats for slate draw call rendering
	- cleaned up huge lambda in Slate rendering main function so we can read the main slate rendering function again

Change 3840291 by Michael.Dupuis

	#jira UE-53053: Was having a mismatch between the remove reorder and the actual remove

Change 3840840 by Michael.Dupuis

	#jira UE-53944: Make sure the LOD generated is in the valid range to prevent the crash

Change 3842072 by Michael.Dupuis

	#jira UE-50299: Include NumSubsection in calculation of component quad factor

Change 3842487 by Christina.TempelaarL

	#jira UE-50573 HighResShot has wrong res in immersive mode

Change 3845702 by Matt.Kuhlenschmidt

	PR #4381: DefaultASTCQualityBySpeed too high max value. (Contributed by kallehamalainen)


Change 3845706 by Matt.Kuhlenschmidt

	PR #4388: Only restore window if minimized (Contributed by projectgheist)


Change 3845993 by Christina.TempelaarL

	#jira UE-41558 crash when selecting PostProcessingVolumes in separate levels

Change 3856395 by Brandon.Schaefer

	No longer using ALAudio on Linux

	#jira UE-53717

Change 3858324 by Michael.Trepka

	Preserve command line arguments in Xcode project when regenerating it

Change 3858365 by Michael.Dupuis

	#jira UE-52049: There was a case where adding and removing multiple time would lead to reordering the instances and this would cause the regeneration of the random stream for all the reorded instances.

Change 3858492 by Michael.Trepka

	Updated dependencies for Mac dSYM files so that only cross-referenced modules have their dSYMs recreated on subsequent builds instead of all modules.

Change 3859470 by Michael.Trepka

	CIS fix. Make sure a scheme file exists before trying to read it when generating Xcode project.

Change 3859900 by Joe.Conley

	Fix for "Check Out Assets" window not properly receiving focus.

Change 3865218 by Michael.Dupuis

	#jira UE-45784: Exposed the possibility to edit LDMaxDrawDistance

Change 3866957 by Michael.Dupuis

	#jira UE-42509: Added BodyInstance to ULandscapeSplineSegment and ULandscapeSplineControlPoint
	Deprecated bEnabledCollision and migrate data as it's replaced by BodyInstance

Change 3867220 by Cody.Albert

	Fixed Project Launcher scrollbar to properly stay anchored at the bottom of the scroll area.

Change 3869117 by Michael.Dupuis

	#jira UE-42509:Fixed compile error when not having editor data

Change 3872478 by Arciel.Rekman

	Linux: disable PIE if compiler enables it by default.

Change 3874786 by Michael.Dupuis

	#jira UE-46925: Remove the guessing functionality when importing a heightmap, and instead propose to the user valid size that can be used for the import through a combo button.
	Improved usability of the UI by disabling size field when no file was specified

Change 3875859 by Jamie.Dale

	Implemented our own canonization for culture codes

Change 3877604 by Cody.Albert

	We now validate actor names passed to SetActorLabel to ensure None isn't passed in, which can corrupt levels

Change 3877777 by Nick.Shin

	PhysX build fix - this came from CL: 3809757

	#jira UE-54924  Cannot rebuild Apex/PhysX/NvCloth .emscripten missing

Change 3881693 by Alexis.Matte

	Fix local path search to not search in memory only

	#jira UE-55018

Change 3882512 by Michael.Dupuis

	#jira none : Fixed screen size calculation to take aspect ratio into account correctly

Change 3886926 by Arciel.Rekman

	Linux: fixed checking clang settings during the cross-build (UE-55132).

	#jira UE-55132

Change 3887080 by Anthony.Bills

	Updated SDL2 build script.

	- Now allows compiling inside a CentOS 6 or Ubuntu 12.04 container with wayland support when using the ContainerBuildThirdParty.sh.
	- Added multiple build arch support to the BuildThirdParty script and pass this down to the SDL2 build script.

Change 3887260 by Arciel.Rekman

	Linux: fix leaking process handles in the cross-toolchain.

Change 3889072 by Brandon.Schaefer

	Fix RPath workaround, to better handle both cases

	#jira UE-55150

	#review-3888119 @Arciel.Rekman, @Ben.Marsh

Change 3892546 by Alexis.Matte

	Remove fbx exporter welded vertices options

	#jira UE-51575

Change 3893516 by Michael.Dupuis

	Remove static mesh instancing async buffer filling, as with all the changes made, it's no longer necessary, the cost of loading very large buffer is negligable

	Rebuild the occlusion tree when using foliage.DensityScale with something other than 1.0

Change 3894365 by Brandon.Schaefer

	Pass FileReference over a raw string to the LinkEnvironment

	#jira none

	#review-3894241 @Ben.Marsh, @Arciel.Rekman

Change 3895251 by Brandon.Schaefer

	Use X11 pointer barriers to bound the cursor to a region over warping the pointers. Patch from Cengiz

	#jira UE-25615
	#jira UE-30714

	#review-3894886 @Arciel.Rekman

Change 3897541 by Michael.Dupuis

	#jira UE-53787: Added guard if for some reason the material is null we should not try to draw using this material

Change 3904143 by Rex.Hill

	#jira UE-55366: Fix crash when overwriting existing level during level save as
	#jira UE-42426: Map '_BuiltData' can now be deleted when selected at same time as map

	- Map '_BuiltData' package is now garbage collected when switching maps in the editor

Change 3906373 by Brandon.Schaefer

	Fix splash image. Use alias format for big/little endian machines.

	#jira none

Change 3906711 by Rex.Hill

	#jira UE-42426: BuiltData now deleted with maps

Change 3907221 by Cody.Albert

	Add support for relative asset source paths in content plugins

Change 3911670 by Alexis.Matte

	Fix assetimportdata creation owner

	#jira UE-55567

Change 3912382 by Anthony.Bills

	Linux: Add binaries for GoogleTest and add to BuildThirdParty script.

Change 3914634 by Cody.Albert

	Added missing include that could cause compile errors if IWYU was disabled.

Change 3916227 by Cody.Albert

	Fixing some cases where we check #ifdef WITH_EDITOR instead of #if WITH_EDITOR

Change 3917245 by Michael.Dupuis

	#jira UE-35097: Fixed crash when creating a new landscape with 2x2 subsection and material containing grass spawning

Change 3918331 by Anthony.Bills

	Linux: Bundled Mono - Explicilty pick libc.so.6 as libc.so is a linker script and store the config file directly.

Change 3920191 by Rex.Hill

	#jira UE-44197 Fix saving sub-level level causing MapBuildData to be deleted

	Improved MapBuildData rename, move, duplicate, copy

Change 3920333 by Matt.Kuhlenschmidt

	Render target clear color property now settable in editor

	#jira UE-55347

Change 3926094 by Michael.Dupuis

	#jira UE-51502: Added some min/max values to foliage and grass settings to prevent overflow/crash

	#coderevew jack.porter

Change 3926243 by Michael.Dupuis

	#jira UE-54669: cleaned up invalid/duplicate shader and moved some shaders to appropriate list

Change 3926760 by Jamie.Dale

	Added support for TTC/OTC fonts

	These can be used via a sub-face index on FFontData, which can be set via a new combo in the font editor. You can also see the cached list of sub-faces within a font file from the UFontFace asset.

Change 3927793 by Anthony.Bills

	Mono: Remove SharpZipLib and references from bundled Mono.

	#review-3887212 @ben.marsh, @michael.trepka

Change 3928029 by Anthony.Bills

	Linux: Add support for UnrealVersionSelector.

	- Supports using UVS to launch without a project file. This will then launch the selected engine's project wizard.
	- Linux UVS uses Slate for the version selection and error log dialogs.
	- Mime-types and desktop file support added to DesktopPlatformLinux to allow associating with UVS as per the Windows binary and git builds.
	- Icons added for Linux.

	#review-3882197 @arciel.rekman, @brandon.schaefer

Change 3931293 by Alexis.Matte

	Add generic Levenshtein edit distance to core algo. This algorithm will help suggesting name matching when users have to resolve material name conflict when re-import fbx meshes.
	Add also plenty of automation tests for it.

	#jira none

Change 3931436 by Arciel.Rekman

	Stop RHI thread before shutting down RHI.

	- Prevents crashes for some drivers that create TLS objects with destructors; those destructors will get called after the thread exited, but the library will already be unloaded on RHI shutdown.

Change 3934287 by Alexis.Matte

	Fix crash when re-importing skeletal mesh. Skinned component render data resource is now release when re-importing.

	#jira none

Change 3937585 by Lauren.Ridge

	Added labels to the colors stored in the theme bar.

Change 3937738 by Alexis.Matte

	Make sure content browser do not show a preview asset created when we cancel an export animation preview

	#jira UE-49743

Change 3941345 by Michael.Dupuis

	#jira UE-26959: Prevent reusing multiple type the same grass type into the same material grass output node

Change 3941453 by Michael.Dupuis

	#jira UE-47492: Added a guard to validate LayerIndex

Change 3942065 by Jamie.Dale

	Fixed crash trying to use FSlateApplication when it wasn't available (eg, in a commandlet)

Change 3942573 by Alexis.Matte

	Fix static analysis

Change 3942623 by Michael.Dupuis

	#jira 0
	Cast to ulong as TaskIndex * NumStripes could exceed an int limit and add an assert if the wraparound is negative

Change 3942993 by Matt.Kuhlenschmidt

	PR #4547: Verify the return value of FT_New_Memory_Face (Contributed by jorgenpt)


Change 3942998 by Matt.Kuhlenschmidt

	PR #4554: Cleanup log printing (Contributed by projectgheist)


Change 3943003 by Matt.Kuhlenschmidt

	PR #4534: Prevent Fatal log when alt tabbing during a level save (Contributed by projectgheist)


Change 3943011 by Matt.Kuhlenschmidt

	PR #4518: edit (Contributed by pdlogingithub)


Change 3943027 by Matt.Kuhlenschmidt

	PR #4524: Notifications always render on the screen with the main viewport (Contributed by projectgheist)


Change 3943074 by Matt.Kuhlenschmidt

	PR #4484: Add group actor to folder (Contributed by ggsharkmob)


Change 3943079 by Matt.Kuhlenschmidt

	PR #4431: Git Plugin: replace usage of the 2 cli args "--work-tree" and "--git-dir" by "-C" (Contributed by SRombauts)


Change 3943092 by Matt.Kuhlenschmidt

	PR #4434: Git plugin: configure the default remote URL 'origin' (Contributed by SRombauts)


Change 3943132 by Matt.Kuhlenschmidt

	PR #4247: Add File picker to Git Path setting on GitSourceControl (Contributed by shiena)


Change 3943141 by Matt.Kuhlenschmidt

	PR #4303: Fix ULevelExporterT3D so that it works in a commandlet (Contributed by DSDambuster)


Change 3943349 by Jamie.Dale

	Cleaned up PR #4547

	Made the assert non-fatal to avoid it being able to take down the editor if you load up a bad font.
	Fixed some code that was deleted during the merge.

Change 3943976 by Michael.Trepka

	Copy of CL 3940687

	Fixed long link times when building for Mac in Debug by passing -no_deduplicate flag to the linker, which is what Xcode does in Debug configs.

	#jira none

Change 3944882 by Matt.Kuhlenschmidt

	Fix a few regressions with scene viewport activation locking can capturing the cursor in editor

	#jira UE-56080, UE-56081

Change 3947339 by Michael.Dupuis

	#jira UE-55664: Fixed undo/redo buffer handling so we remove from the beginning of the buffer during undo buffer where buffer is at max memory and from the end during redo operation.
	Fixed cancel also to re add removed transaction at the end or the start depending if we're doing a redo or undo operation
	Fixed the Undo History UI to listen to an event when the undo buffer changed instead of checking every frame, as when the buffer was full, no changes would occur, thus no UI update.

Change 3948179 by Jamie.Dale

	Fixed monochromatic font rendering

	- All non-8bpp images are now converted to 8bpp images for processing in Slate.
	- We convert the gray color of any images not using 256 grays (eg, monochromatic images that use 2 grays).
	- Fixed a case where the temporary bitmap wasn't being deleted.
	- Fixed a case where the bitmap could be used after it was deleted.
	- Added a CVar (Slate.EnableFontAntiAliasing) to control whether you want anti-aliased (256 grayscale) rendering (default), or monochromatic (2 grayscale) rendering.

Change 3949922 by Alexis.Matte

	Ensure fbx node name are not empty when loading a fbx file. I use the same naming convention as Maya

	#jira UE-56079

Change 3950202 by Rex.Hill

	Fix crash during editor asset automation tests.

	Now skips showing modal progress window when opening asset editor window. ActiveTopLevelWindow is not set when modal windows are open.

	#jira UE-56112

Change 3950484 by Michael.Dupuis

	#jira UE-52176: delete the Cluster tree when the builder is no longer needed

Change 3954628 by Michael.Dupuis

	Bring back 4.19/4.19.1 Landscape changes

Change 3957037 by Michael.Dupuis

	#jira UE-53343: Add foliage instances back when changing component size
	Changed the formulation for the Clip/Expand behavior to make it more explicit on what will happen
	Added SlowTask stuff to manage big landscape change

Change 3959020 by Rex.Hill

	Rename/move file MallocLeakDetection.h

Change 3960325 by Michael.Dupuis

	Fixed static analysis

Change 3961416 by Michael.Dupuis

	#jira UE-46100: Exposed UseDynamicInstanceBuffer on Foliage type, so user can decide if they want to update them dynamically
	#jira UE-55092: Fixed the warning to appear when having resource array as empty but VB as set up
	Added data conssitency that when using Dynamic buffer, Keep CPU Access should also be true, even if implicitly it's already the case, now it's explicit

Change 3962372 by Michael.Trepka

	Copy of CL 3884121

	Fix for SProgressBar rendering incorreclty on Mac

	#jira UE-56241

Change 3964931 by Anthony.Bills

	Linux: Add cross-compiled binary of UVS Shipping.

Change 3966719 by Matt.Kuhlenschmidt

	Fix parameters out of order here

	#jira UE-56399

Change 3966724 by Matt.Kuhlenschmidt

	PR #4585: Export symbols for the FDragTool (Contributed by Begounet)


Change 3966734 by Matt.Kuhlenschmidt

	PR #4596: fix the slider issue of the HighResolutionScreenshot window (Contributed by mamoniem)


Change 3966739 by Matt.Kuhlenschmidt

	Removed duplicated code

	#jira UE-56369

Change 3966744 by Matt.Kuhlenschmidt

	PR #4602: Fixes check for existing extensions when generating "All Extensions". (Contributed by PhilBax)


Change 3966758 by Matt.Kuhlenschmidt

	PR #4604: Fixed an issue where the Modules and DebugTools tabs would be unrecognized after startup if docked in the level editor (Contributed by tstaples)


Change 3966780 by Matt.Kuhlenschmidt

	Fix crash accessing graph node title widgets when objects have become stale.

	#jira UE-56442

Change 3966884 by Alexis.Matte

	Fix speedtree uninitialized values

	#jira none

Change 3967568 by Alexis.Matte

	Do not override the screensize when importing a skeletal mesh, let the value set by the AddLodInfo function

	#jira UE-56493

Change 3968333 by Brandon.Schaefer

	Fix order of operation

	#jira UE-56400

Change 3969070 by Anthony.Bills

	Linux: Make sure to set the UE_ENGINE_DIRECTORY

	#jira UE-56503

	#review-3966609 @arciel.rekman, @brandon.schaefer

Change 3971431 by Michael.Dupuis

	#jira UE-56515: Fixed an issue where ForcedLOD > MaxLOD and make sure that LastLOD will at least contain current streamed in LOD.
	#jira UE-56517: When using ParallelInitView 1 there was a memory leak related to a reallocate that happen with the TArray of FMemstack
	Pass correctly LODDistanceFactor instead of View.LODScale as we do not want StaticMeshScale to affect us.

Change 3971467 by Matt.Kuhlenschmidt

	Fixed crash deleting a texture with texture painting on it

	#jira UE-56994

Change 3971557 by Matt.Kuhlenschmidt

	Fix temporary exporter objects being potentially GC'd and causing crashes during export

	#jira UE-56981

Change 3971713 by Cody.Albert

	PR #4597: [FPS Template] Small null pointer check fix and cleanup (Contributed by TheCodez)


Change 3971846 by Michael.Dupuis

	#jira UE-56517: Properly "round" the count so we have the right amount of memory reserved
	#jira UE-56515: Still had a edge case left, so when using forced lod i simply make sure the value is in valid range, and allocate all the required data for this range

Change 3973035 by Nick.Atamas

	Line and Spline rendering changes:
	 * Lines/Splines now use 1 UV channel to anti-alias (this channel can be used for texturing)
	 * Anti-aliasing filter now adjusted based on resolution
	 * Modified Line/Spline topology to accomodate new UV requirements
	 * Disabled vertex snapping for anti-aliased lines/splines; previously vertexes were snapped, but vertex positions did not affect line rendering (behavior effectively unchanged)
	 * Splines now adaptively subdivided to avoid certain edge-cases

Change 3973345 by Nick.Atamas

	- Number tweaks to maintain previously perceived wire thickness in various editors.

Change 3977764 by Rex.Hill

	MallocTBB no longer debug fills bytes in development configuration

Change 3978713 by Arciel.Rekman

	UVS: Fix stale dependency.

Change 3980520 by Matt.Kuhlenschmidt

	Fix typo

	#jira UE-57059

Change 3980557 by Matt.Kuhlenschmidt

	Fixed negative pie window sizes causing crashes

	#jira UE-57100

Change 3980565 by Matt.Kuhlenschmidt

	PR #4628: Fixed revert action, now correctly uses CanRevert() condition (Contributed by Kryofenix)


Change 3980568 by Matt.Kuhlenschmidt

	PR #4626: UE-57111: Handle CaptureRegion for HighResShot in PIE (Contributed by projectgheist)


Change 3980580 by Matt.Kuhlenschmidt

	PR #4567: [Editor UI] Pick Parent Class dialog: set keyboard focus and handle Escape & Enter (Contributed by SRombauts)


Change 3980581 by Matt.Kuhlenschmidt

	PR #4565: [Editor UI] Add C++ Class dialog: set keyboard focus and handle Escape & Enter (Contributed by SRombauts)


Change 3981341 by Jamie.Dale

	Re-added GIsEditor condition around package namespace access

	#jira UE-55816

Change 3981808 by Ryan.Brucks

	Added LandscapeProxy functions to push RenderTarget data to Heightmaps and Weightmaps

Change 3983344 by Jack.Porter

	#include fixes for CL 3981808

	#jira 0

Change 3983391 by Jack.Porter

	One for #include fix for CL 3981808

	#jira 0

Change 3983562 by Michael.Dupuis

	#jira UE-53787: Make sure the material array is valid before trying to generate static mesh batch element
	#jira UE-56451: Instead of asserting, simply skip this element as it had invalid custom data anyway, so we can't render it

Change 3983600 by Matt.Kuhlenschmidt

	PR #4289: Pragma Once/Include guard cleanup (Contributed by projectgheist)


Change 3983637 by Matt.Kuhlenschmidt

	PR #4408: Add a template pregeneration hook (Contributed by mhutch)


Change 3984392 by Michael.Dupuis

	#jira UE-56314: Correctly apply LODBias on calculated LOD
	Fixed some Landscape popping that could occur when we were forcing a LOD that didn't match the component screen size

Change 3984950 by Rex.Hill

	Optimized texture import speed 2-3x depending on number of cpu cores and image size

Change 3985033 by Rex.Hill

	File drag and drop is more quick to respond when editor is in background

	#jira UE-57192

Change 3986218 by Jack.Porter

	Missing template parameter fix for CL 3981808

	#jira 0

Change 3986376 by Michael.Dupuis

	#jira UE-56453: Do not use the CreateDynamicMaterialInstance as it will change the parenting of the actor used material, instead simply use the function to generate the MID and parent it correctly.

Change 3989391 by Matt.Kuhlenschmidt

	Fix constant FName lookup in level editor when checking various states of level editor tabs

Change 3990182 by Rex.Hill

	Optimize editor startup time: GetCurrentProjectModules

Change 3990365 by Alexis.Matte

	Fix crash with spline mesh when the attach SM get a new imported LOD
	#jira UE-57119

Change 3991151 by Rex.Hill

	VR Editor module now waits to load images until VR mode activated in editor. Saves 0.4 seconds of editor startup time.

Change 3991164 by Rex.Hill

	Optimize editor startup time: FindModulePaths()
	- Invalidates cache when search paths added
	- Use cache during wildcard searches containing * and ?

Change 3995366 by Anthony.Bills

	Update BuildCrossToolchain script to allow a Linux host targeting multiple Linux architectures (including the hosts arch). Added a patch to support a gcc 4.8.5 based toolchain on windows (potentially useful for users crosscompiling using GCC and libstdc++ and targeting CentOS 7).

	#review-3848487 @arciel.rekman, @brandon.schaefer

Change 3996109 by Jamie.Dale

	Reworked BP error messages to be more localization friendly

	#jira UETOOL-1356

Change 3996123 by Michael.Dupuis

	#jira UE-57427: Update random color on load of the component
	#jira UE-56272:

Change 3996279 by Merritt.Cely

	Removed hardware survey from editor
	#jira an-2243

	#tests launched the editor

Change 3996626 by Alexis.Matte

	Fix crash when SkeletalMesh tangent buffer is empty after the build and we serialize the tangent array.

	#jira UE-57227

Change 3996663 by Max.Chen

	Sequencer: Fix fbx animation export - rotation and scale channels were flipped.

	#jira UE-57509
	#jira UE-57512
	#jira UE-57514

Change 4000331 by Brandon.Schaefer

	Add a GFNameTableForDebuggerVisualizers_MT back only for Unix under the Core module

	#review-3999426 @Arciel.Rekman

	#jira UE-55298

Change 4000450 by Matt.Kuhlenschmidt

	Another guard against a factory being destroyed during import

	#jira UE-57674

Change 4000459 by Matt.Kuhlenschmidt

	Added check for valid game viewport to see if this is the problem in UE-57677

	#jira UE-57677

Change 4000493 by Matt.Kuhlenschmidt

	Remove stale GC'd components when refreshing paint mode to prevent crashes

	#jira UE-52618

Change 4000683 by Jamie.Dale

	Fixed target being incorrect when added via the Localization Dashboard

	#jira UE-57588

Change 4000738 by Alexis.Matte

	Add a section settings to ignore the section when reducing

	#jira UE-52580

Change 4000920 by Alexis.Matte

	PR #4219: Fix for SColorGradingPicker preventing PIE (Contributed by projectgheist)
	author projectgheist projectgheist@gmail.com

Change 4001432 by Alexis.Matte

	Add a fbx re-import resolve material windows, user can now help resolving the material in case the importer fail to found a match.

Change 4001447 by Jamie.Dale

	Fixed property table not working with multi-line editable text

Change 4001449 by Jamie.Dale

	PR #4531: Localization multiline fix (Contributed by Lallapallooza)


Change 4001557 by Alexis.Matte

	Fix a check in fbx scene importer, in case the user import a fbx LOD group with no geometry under it

	#jira UE-57676

Change 4002539 by Alexis.Matte

	Make the fbx importer global transform options persist in the config file
	#jira UE-50897

Change 4002562 by Anthony.Bills

	Linux: Enable UVS registering for git builds only and remove old Mono and pre-UVS script code.

Change 4003241 by Alexis.Matte

	Fix the staticmesh import socket logic, it was duplicating socket when re-importing

	#jira UE-53635

Change 4003368 by Michael.Dupuis

	#jira UE-57276:
	#jira UE-56239:
	#jira UE-54547:
	Make sure we can't go above MaxLOD even for texture streaming

Change 4003534 by Alexis.Matte

	Fix re-import mesh name match

	#jira UE-56485

Change 4005069 by Michael.Dupuis

	#jira UE-57594: Add a guard to prevent crash if we have an invalid resource for the heightmap texture (happen when component is deleted, for example)

Change 4005468 by Lauren.Ridge

	Widgets should not be removed from parent when they are pending GC

	#jira UE-52260

Change 4006075 by Michael.Dupuis

	Fixed foliage density scaling to be applied even in editor, except in Foliage edit mode.

Change 4006332 by Arciel.Rekman

	UBT: Adding support for bundled toolchains on Linux.

	- Authored by Anthony Bills, with modifications.

Change 4007528 by Matt.Kuhlenschmidt

	PR #4665: Source control History Window: enlarge column Description (Contributed by SRombauts)


Change 4007531 by Matt.Kuhlenschmidt

	PR #4656: UE-57200: Ignore reference to actor if same actor (Contributed by projectgheist)


Change 4007548 by Matt.Kuhlenschmidt

	PR #4664: Set Password on EditableText (Contributed by projectgheist)


Change 4007730 by Brandon.Schaefer

	Add a new way to symbolicate symbols for a crash at runtime

	Two new tools are used for this.
	1) dump_syms Will generate a symbol file, which is to large to read from at runtime
	2) BreakpadSymbolEncoder Takes the dump_syms file and encodes it in such a way we can do
	    a binary search at runtime to find a Program Counter to a symbol we are looking for

	#review @Arciel.Rekman, @Anthony.Bills

	#jira UETOOL-1206

Change 4008429 by Lauren.Ridge

	Fixing undo bug when deleting user widgets from the widget tree

	#jira UE-56394

Change 4008581 by Cody.Albert

	Reinitialize needs to set the audio and caption tracks in addition to the video track or the currently selected track will be lost

Change 4009605 by Lauren.Ridge

	Added Recently Opened assets filter under Other Filters in the Content  Browser

Change 4009797 by Anthony.Bills

	Linux: Update MultiArchRoot path to not cache. Move in tree toolchain location to match UBT convention and make sure the MultiArchRoot is checked before the system.

Change 4010266 by Michael.Trepka

	Copy of CL 4010052

	Moved some key event handling calls to the main thread on Mac to satisfy new macOS requirements

	#jira UE-54623

Change 4010838 by Arciel.Rekman

	Linux: limit allowed clang versions to 3.8-6.0.

Change 4012160 by Matt.Kuhlenschmidt

	Changed the messagiing on the crash reporter dialog to reflect new bug submission process

	#jira UE-56475

Change 4013432 by Lauren.Ridge

	Fix for non-assets attempting to add to the Content Browser's recent filter

	#jira none

Change 4016353 by Cody.Albert

	Improved copy/paste behavior for UMG editor:

	-Pasting in the designer while a canvas is selected will place the new widget under the cursor
	-Pasting multiple times while a canvas panel is selected in the hierarchy view will cascade the widgets starting at 0,0
	-Pasting while something that isn't a panel is selected is now allowed, and will cascade the pasted widgets off the position of the selected widget (as siblings)
	-Newly pasted widgets will now be selected automatically
	-Pasting multiple widgets at once will try and maintain their relative positions if they're being pasted into a canvas panel

Change 4017274 by Matt.Kuhlenschmidt

	Added some guards against invalid property handle access

	#jira UE-58026

Change 4017295 by Matt.Kuhlenschmidt

	Fix trying to apply delta to a mix of scene components and non scene components.  Its acceptable to not have scene components in the selected component list

	#jira  UE-57980

Change 4022021 by Rex.Hill

	Fix for audio desync and video fast-forwarding behavior.
	There long delay (500ms+) until samples start arriving unless we use RequestedTimeCurrent.
	After delay occurs samples begin arriving at accelerated speed until caught up to playback time leading to visual and audio problems.

	#jira UE-54592

Change 4023608 by Brandon.Schaefer

	Downscale memory if we dont have enough

	#jira UE-58073

	#review-4023609 @Arciel.Rekman

Change 4025618 by Michael.Dupuis

	#jira UE-58036: Apply world position offset correctly

Change 4025661 by Michael.Dupuis

	#jira UE-57681: Added guard to prevent possible crash if either we have an invalid material or the material parent is invalid

Change 4025675 by Michael.Dupuis

	#jira UE-52919: if no actor was found in the level skip moving the instances

Change 4026336 by Brandon.Schaefer

	Manually generate *.sym files for Physx3

	This should be done in the BuildPhysx file

Change 4026627 by Rex.Hill

	Fix memory leak fix when playing video and main thread blocks
	#jira UE-57873

Change 4029635 by Yannick.Lange

	Fix VRMode loading assets only when VRMode starts.
	#jira UE-57797

Change 4030288 by Jamie.Dale

	Null FreeType face on load error to prevent potential crashes

Change 4030782 by Rex.Hill

	Fix save BuildData after changing reflection capture in a new level
	#jira UE-57949

Change 4033560 by Michael.Dupuis

	#jira UE-57710: Added some guard to prevent crash/assert

Change 4034244 by Michael.Trepka

	Copy of CL 4034116

	Fixed arrow keys handling on Mac

Change 4034708 by Lauren.Ridge

	PR #4699: UE-8508: Update config file to keep folder color in sync (Contributed by projectgheist)


	#jira UE-58251

Change 4034746 by Lauren.Ridge

	PR #4701: Add option to close tabs to the right of the active tab (Contributed by jesseyeh)

	#jira UE-58277

Change 4034873 by Lauren.Ridge

	Fix for not being able to enter simulate more than once in a row.

	#jira UE-58261

Change 4034922 by Lauren.Ridge

	PR #4387: Commands mapped in incorrect location (Contributed by projectgheist)

	#jira UE-53752

Change 4035484 by Lauren.Ridge

	Tentative fix for crash on pasting comment. All other accesses to UMaterialExpressionComment check its validity first
	#jira UE-57979

Change 4037111 by Brandon.Schaefer

	Try to use absolute path from dladdr if we can to find the sym files

	#jira UE-57858

	#review-4013964 @Arciel.Rekman

Change 4037366 by Brandon.Schaefer

	Dont check the command line before its inited

	#review-4037183 @Arciel.Rekman
	#jira UE-57947

Change 4037418 by Alexis.Matte

	Remove the checkSlow when adding polygon

Change 4037745 by Brandon.Schaefer

	Use as much info as we can during ensure

	Just as fast as the old way but with more information

	#review-4037495 @Arciel.Rekman
	#jira UE-47770

Change 4037816 by Rex.Hill

	Import mesh optimization, BuildVertexBuffer

Change 4037957 by Arciel.Rekman

	UBT: make it easier to try XGE on Linux.

Change 4038401 by Lauren.Ridge

	Reordering is now correctly handled by undo. Reordering and then undoing will no longer cause a "ghost" widget to also be part of the tree.

	#jira UE-58206

Change 4039612 by Anthony.Bills

	Unix: Check for null StdOut and ReturnCode parameters, otherwise the code may dereference a null variable when the process fails to create.

Change 4039754 by Alexis.Matte

	Remove the Render meshdescription, no need to carry this temporary data in the staticmesh

Change 4039806 by Anthony.Bills

	Linux: UVS fixes

	- Update to use new Unix base platform.
	- Use bin/bash instead of usr/bin/bash (may need revisiting later).
	- Recompile Shipping version with changes.
	- Update Setup.sh to run from correct CWD (due to current limitations in the relative directory handling).

Change 4039883 by Lauren.Ridge

	PR #4576: Save editor config to file first time a fav folder is added in the co. (Contributed by projectgheist)

	#jira UE-56249

Change 4040117 by Lauren.Ridge

	Replacing widgets should now also clear out references to the widget

	#jira UE-57045

Change 4040790 by Lauren.Ridge

	Tentative fix for Project Launcher crash when platform info not found
	#jira UE-58371

Change 4042136 by Arciel.Rekman

	UBT: refactor of LinuxToolChain to make it leaner and more configurable.

	- Made it possible to override SDK passed to the toolchain.
	- Simplified the code by using the same executable names on Windows and Linux (as .exe is optional), except where File.Exists() is needed (also remove a few)
	- Some minor renames to make it clear that SystemSDK means system compiler (which otherwise may be unclear)
	- Made changes to accomodate the new debug format.

Change 4042930 by Brandon.Schaefer

	GCoreObjectArrayForDebugVisualizers was changed to FChunkedFixedUObjectArray reflect that in the Unix part

Change 4043539 by Brandon.Schaefer

	Fix callsite address being used at times for the Program Counter
	Fix only reporting the actual callstack and not the crash handling callstacks

	#review-4041370 @Arciel.Rekman
	#jira UE-58477

Change 4043674 by Arciel.Rekman

	Added Linux ARM64 (AArch64) lib for MikkTSpace.

	- Now required for standalone games due to EditableMesh runtime plugin.

Change 4043677 by Arciel.Rekman

	Linux: updated ARM64 (AArch64) version of SDL2.

Change 4043690 by Arciel.Rekman

	Linux: allow compiling VulkanRHI for AArch64 (ARM64).

Change 4045467 by Brandon.Schaefer

	Add Anthony Bills SetupToolchain.sh script

	Used to download the latest toolchain

Change 4045940 by Michael.Trepka

	Return empty list instead of null from Mac GetDebugInfoExtensions() in UBT

	#jira UE-58470

Change 4046542 by Alexis.Matte

	Fix skeletal re-import material assignation

	#jira UE-58551

Change 4048262 by Brandon.Schaefer

	Rebuild SDL with pulse audio libs

	#jira UE-58577

Change 3887093 by Anthony.Bills

	Add bundled mono binary for Linux.

	- Unify some of the script structure across Mac and Linux.
	- This currently uses the same mono C# assemblies as Mac to keep the additional source size down.
	- If the Mac mono version is updated, the Linux version will also need to be updated to match the same mono git revision.
	- The system version of mono can still be used by setting the UE_USE_SYSTEM_MONO env var to 1.

Change 4003226 by Michael.Dupuis

	Refactored StaticMeshInstancing to now use a command buffer to communicate with the GPU to prevent concurent access issues. It's mostly used in Editor or if runtime changes occur, otherwise the data is built and send to the GPU directly without keeping CPU copy.
	Changed how the density scaling was applied to be more optimal
	Removed UseDynamicInstanceBuffer as the concept is now irrelevant

Change 3833097 by Jamie.Dale

	Localization Pipeline Optimization

	Manifest/Archives:
	Added FLocKey to keep an immutable string and its hash. This is used in several places within manifests and archives to minimize string hashing. FLocTextHelper also now take these in its API.
	This also fixes some places where manifests were being iterated by key rather than source string (as this was causing redundant work).

	Portable Object:
	Cleaned up a lot of redundant code, changed things to use FLocKey, and simplified a lot of string manipulation to use algorithms instead (which proved to be faster).

	Asset Gathering:
	Optimized the way garbage collection runs while gathering from assets so that we avoid purging assets that we still need to gather from (or are still active dependencies). This also sorts the assets so that we can try and evict dependencies from memory as soon as possible (in much the same way that the cooker does).

	Automation:
	The gather commandlet can now take multiple configs to process. This is used by automation to avoid starting the editor several times (which can save a significant amount of start-up overhead).

[CL 4052378 by Lauren Ridge in Main branch]
2018-05-04 14:14:10 -04:00
Ben Marsh
30f891786a Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3847469)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3805828 by Gil.Gribb

	UE4 - Fixed a bug in the lock free stalling task queue and adjusted a comment. The code is not current used, so this is not actually change the way the code works.

Change 3806784 by Ben.Marsh

	UAT: Remove code to compile UBT when using UE4Build. It should already be compiled as a dependency of UAT.

Change 3807549 by Graeme.Thornton

	Add a cook timer around VerifyCanCookPackage. A licensee reports this taking a lot of time so it'll be good to account for it.

Change 3807727 by Graeme.Thornton

	Unhide the text asset format experimental editor option

Change 3807746 by Josh.Engebretson

	Remove WER from iOS platform

Change 3807928 by Robert.Manuszewski

	When async loading, GC Clusters will be created after packages have been processed to avoid situations where some of the objects that are being added to a cluster haven't been fully loaded yet

Change 3808221 by Steve.Robb

	GitHub #4307 - Made GetModulePtr() thread safe by not using GetModule()

	^ I'm not convinced by how much thread-safer this is really, but it's tidier anyway.

Change 3809233 by Graeme.Thornton

	TBA: Misc changes to text asset commandlet
	 - Rename mode to "loadsave"
	 - Add -outputFormat option which can be assigned "text" or "binary"
	 - When saving binary, use a differentiated filename so that source assets aren't overwritten

Change 3809518 by Ben.Marsh

	Remove the outdated UnrealSync automation script.

Change 3809643 by Steve.Robb

	GitHub #4277 : fix bug; FMath::FormatIntToHumanReadable 3rd comma and negative value

	#jira UE-53037

Change 3809862 by Steve.Robb

	GitHub #3342 : [FRotator.h] Fix to DecompressAxisFromByte to be more efficient and reflect its intent accurately

	#jira UE-42593

Change 3811190 by Graeme.Thornton

	Add support for writing specific log channels to their own files

Change 3811197 by Graeme.Thornton

	Minor updates to output formatting and timing for the text asset commandlet

Change 3811257 by Robert.Manuszewski

	Cluster creation will now be time-sliced

Change 3811565 by Steve.Robb

	Define out non-monolithic module functions.

Change 3812561 by Steve.Robb

	GitHub #3886 : Enable Brace-Initialization for Declaring Variables

	Incorrect semi-colon search removed after discussion with author.
	Test added.

	#jira UE-48242

Change 3812864 by Steve.Robb

	Removal of some unproven code which was supposed to fix hot reloading BP class functions in plugins.

	See: https://udn.unrealengine.com/questions/376978/aitask-blueprint-nodes-disappear-when-their-module.html

	#jira UE-53089

Change 3820358 by Ben.Marsh

	PR #4358: Incredibuild use ShowAgent by default (Contributed by projectgheist)


Change 3822594 by Ben.Marsh

	UAT: Improvements to log file handling.

	- Always create log files in the final location, rather than writing to a temp directory and copying in later.
	- Now supports -Verbose and -VeryVerbose for increasing log verbosity, rather than -Verbose=XXX.
	- Keep a backlog of log output before the log system is initialized, and flush it to the log file once it is.
	- Allow buildmachines to specify the uebp_FinalLogFolder environment variable, which is used to form paths for display. When build machines copy log files elsewhere after UAT finishes (eg. a network share), this allows error messages to display the right location.

Change 3823695 by Ben.Marsh

	UGS: Fix issue where precompiled binaries would not be shown as available for a change until scrolling the last submitted code change into the buffer (other symptoms, like de-focussing the main window would cause it to go back to an unavailable state, since the changes buffer was shrunk).

	Now always queries changes up to the last change for which zipped binaries are available.

Change 3823845 by Ben.Marsh

	UBT: Exclude C# projects for unsupported platforms when generating project files.

Change 3824180 by Ben.Marsh

	UGS: Add an option to show changes by build machines, and move the "only show reviewed" option in there too (Options > Show Changes).

	#jira

Change 3825777 by Steve.Robb

	Fix to return value of StringToBytes.

Change 3825810 by Ben.Marsh

	UBT: Reduce length of include paths for MSVC toolchain.

Change 3825822 by Robert.Manuszewski

	Optimized PIE lazy pointer fixup. Should be up to 8x faster now.

Change 3826734 by Ben.Marsh

	Remove code to disable TextureFormatAndroid on Linux. It seems to be an editor dependency.

Change 3827730 by Steve.Robb

	Try to avoid decltype(auto) if it's not supported.

	See: https://udn.unrealengine.com/questions/395644/build-417-with-c11-on-linux-ttuple-errors.html

Change 3827745 by Steve.Robb

	Initializer list support for TMap.

Change 3827770 by Steve.Robb

	GitHub #4399 : Added a CONSTEXPR qualifiers to FVariant::GetType()

	#jira UE-53813

Change 3829189 by Ben.Marsh

	UBT: Now always writes a minimal log file. By default, just contains the regular console output and any reasons why actions are outdated and needed to be executed. UAT directs child UBT instances to output logs into its own log folder, so that build machines can save them off.

Change 3830444 by Steve.Robb

	BuildVersion and ModuleManifest moved to Core, and parsing of these files reimplemented to avoid a JSON library.
	This should be revisited when Core has its own JSON library.

Change 3830718 by Ben.Marsh

	Fix incorrect group name being returned by FStatNameAndInfo::GetGroupName() for stat groups.

	The editor populates the viewport stats list by calling this for every registered stat and stat group (via FLevelViewportCommands::HandleNewStatGroup). The menu entry attempts to show the stat name with STAT_XXX stripped from the start as the menu item label, with the free-form text description as a tooltip.

	For stat groups, the it would previously just return the stat group name as "Groups" (due to the raw naming convention of "//Groups//STATGROUP_Foo//..."). Since this didn't match the expected naming convention in FLevelViewportCommands::HandleNewStat (ie. STAT_XXX or STATGROUP_XXX), it would fail to add it.

	When the first actual stat belonging to that group is added, it would add a menu entry for the group based on that, but the stat description no longer makes sense as a tooltip for the group. As a result, all the editor tooltips were junk.

	#jira UE-53845

Change 3831064 by Ben.Marsh

	Fix log file contention when spawning UBT recursively.

Change 3832654 by Ben.Marsh

	UGS: Fix error panel not being selected when opened, and weird alignment/color issues on it.

Change 3832680 by Ben.Marsh

	UGS: Fix failing to detect workspace if synced to a different stream. Seems to be a regression caused by recent P4D upgrade.

Change 3832695 by Ben.Marsh

	UGS: Invert the options in the 'Show Changes' submenu for simplicity.

Change 3833528 by Ben.Marsh

	UAT: Script to rewrite source files with public include paths relative to the 'Public' folder. Usage is: RebasePublicIncludePaths -UpdateDir=<Dir> [-Project=<Dir>] [-Write].

Change 3833543 by Ben.Marsh

	UBT: Allow targets to opt-out of having public include paths added for every dependent module. This reduces the command line length when building a target, which has recently become a problem with larger games (due to Microsoft's compiler embedding the command line into each object file, with a maximum length of 64kb). All engine modules are compiled with this enabled; games may opt into it by setting bLegacyPublicIncludePaths = false; from their .target.cs, as may individual modules.

Change 3834354 by Robert.Manuszewski

	Archetype pointer will now be cached to avoid locking the object tables when acquiring its info. It should also be faster this way regardless of any locks.

	#jira UE-52035

Change 3834400 by Robert.Manuszewski

	Fixing crash on exit caused by cached archetypes not being cleaned up before static exit cleanup.

	#jira UE-52035

Change 3834947 by Steve.Robb

	USE_FORMAT_STRING_TYPE_CHECKING removed from FMsg::Logf and FMsg::Logf_Internal.

Change 3835004 by Ben.Marsh

	Fix code that relies on dubious behavior of requiring referenced "include path only" modules having their _API macros set to be empty, even if the module is actually implemented in a separate DLL.

Change 3835340 by Ben.Marsh

	Fix errors making installed build from directories with spaces in the name.

Change 3835972 by Ben.Marsh

	UBT: Improved diagnostic message for targets which don't need a version file.

Change 3836019 by Ben.Marsh

	UBT: Fix warnings caused by defining linkage macros for third party libraries.

Change 3836269 by Ben.Marsh

	Fix message box larger than the screen height being created when a large number of modules are incompatible on startup.

Change 3836543 by Ben.Marsh

	Enable SoundMod plugin on Linux, since it's already supported through the editor.

Change 3836546 by Ben.Marsh

	PR #4412: fix type mismatch (Contributed by nakapon)


Change 3836805 by Ben.Marsh

	Fix commandlet to compile marketplace plugins.

Change 3836829 by Ben.Marsh

	UBT: Fix ability to precompile plugins from installed engine builds.

Change 3837036 by Ben.Marsh

	UBT: Write the previous and new contents of intermediate files to the log if they change. Makes it easier to debug unexpected rebuilds.

Change 3837037 by Ben.Marsh

	UBT: Fix engine modules having inconsistent definitions depending on whether modules are only referenced for their include paths vs being linked into a binary (due to different _API macro).

Change 3837040 by Ben.Marsh

	UBT: Remove code that initializes members in ModuleRules and TargetRules objects before the constructor is run. This is no longer necessary, now that the backwards-compatible default constructors have been removed.

Change 3837247 by Ben.Marsh

	UBT: Remove UELinkerFixups module, now that plugins and precompiled modules do not require hacks to force initialization (since they're linked in as object files).

	Encryption and signing keys are now set via macros expanded from the IMPLEMENT_PRIMARY_GAME_MODULE macro, via project-specific macros added in the TargetRules constructor.

Change 3837262 by Ben.Marsh

	UBT: Set whether a module is an engine module or not via a default value for the rules assembly. All non-program engine and enterprise modules are created with this flag set to true; program targets and modules are now created from a different assembly that sets it to false. This removes hacks from UEBuildModule needed to adjust behavior for different module types based on the directory containing the module.

	Also add a bUseBackwardsCompatibleDefaults flag to the TargetRules class, also initialized to a default value from a setting passed to the RulesAssembly constructor. This controls whether modules created for the target should be configured to allow breaking changes to default settings, and is set to false for all engine targets, and true for all project targets.

Change 3837343 by Ben.Marsh

	UBT: Remove the OverrideExecutableFileExtension target property. Change the only current use for this (the MayaLiveLinkPlugin target) to use a post build step to copy the file instead.

Change 3837356 by Ben.Marsh

	Fix invalid character encodings.

Change 3837727 by Graeme.Thornton

	UnrealPak: KeyGenerator: Only generate prime table when required, not all the time

Change 3837823 by Ben.Marsh

	UBT: Output warnings and errors when compiling module rules assembly in a way that allows them to be double-clicked in the Visual Studio output window.

Change 3837831 by Graeme.Thornton

	UBT: When parsing crypto settings, always load legacy data first, then allow the new system to override it. Provides the same key backwards compatibility that the editor settings class gives

Change 3837857 by Robert.Manuszewski

	PR #4404: Make FGCArrayPool singleton global instead of per-CU (Contributed by mhutch)


Change 3837943 by Robert.Manuszewski

	PR #4405: Fix FGarbageCollectionTracer (Contributed by mhutch)


Change 3838451 by Ben.Marsh

	UBT: Fix exceptions thrown on a background thread while caching C++ includes not being caught and logged correctly. Now captures exceptions and re-throws on the main thread.

	#jira UE-53996

Change 3839519 by Ben.Marsh

	UBT: Simplify configuring bPrecompile and bUsePrecompile settings for modules. Each rules assembly can now be configured as installed, which defaults the module rules it creates to use precompiled data.

Change 3843790 by Graeme.Thornton

	UnrealPak: Log the size of all encrypted data

Change 3844258 by Ben.Marsh

	Fix plugin compile failure when created via new plugin wizard. Passing -plugin on the command line is unnecessary, and is now reserved for packaging external plugins for the marketplace.

	Also extend the length of time that the error toast stays visible, and don't delete the plugin on failure.

	#jira UE-54157

Change 3845796 by Ben.Marsh

	Workaround for slow performance of String.EndsWith() on Mono.

Change 3845823 by Ben.Marsh

	Fix case sensitive matching of platform names in -TargetPlatform=X argument to BuildCookRun.

	#jira UE-54123

Change 3845901 by Arciel.Rekman

	Linux: fix crash due to lambda lifetime issues (UE-54040).

	- The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+).

	(Edigrating 3819174 to Dev-Core)

Change 3846439 by Ben.Marsh

	Revert CL 3822742 to always call Process.WaitForExit(). The Android target platform module in the editor spawns ADB.EXE, which inherits the editor's stdout/stderr handles and forks itself. Process.WaitForExit() waits for EOF on those pipes, which never occurs because the forked process never terminates.

	Proper fix is probably to have the engine explicitly duplicate stdout/stderr handles for new pipes to output process, but too risky before copying up to Main.

Change 3816608 by Ben.Marsh

	UBT: Use DirectoryReference objects for all include paths.

Change 3816954 by Ben.Marsh

	UBT: Remove bIncludeDependentLibrariesInLibrary option. This is not widely supported by platform toolchains, and is not used anywhere.

Change 3816986 by Ben.Marsh

	UBT: Remove UEBuildBinaryConfig; UEBuildBinary objects are now just created directly.

Change 3816991 by Ben.Marsh

	UBT: Deprecate PlatformSpecificDynamicallyLoadedModules. We no longer have any special behavior for these modules.

Change 3823090 by Ben.Marsh

	UAT: Improve logging for child UAT instances.

	- Calling RunUAT now requires an identifier for prefixing into the parent log, which is also used to determine the name of the log folder.
	- Stdout is no longer written to its own output file, since it's written to the parent stdout, the parent log file, and the child log file anyway.
	- Log folders for child UAT instances are left intact, rather than being copied to the parent folder. The derived names for the copied names were confusing and hard to read.
	- Output from UAT is no longer returned as a string. It should not be parsed anyway (but may be huge!). ProcessResult now supports running without capturing output.

Change 3826082 by Ben.Marsh

	UBT: Add a check to make sure that all modules that are precompiled are correctly marked to enable it, even if they are part of the build target.

Change 3827025 by Ben.Marsh

	UBT: Move the compile output directory into a property on the module, and explicitly pass it to the toolchain when compiling.

Change 3829927 by James.Hopkin

	Made HTTP interface const correct

Change 3833533 by Ben.Marsh

	Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules.

Change 3835826 by Ben.Marsh

	UBT: Precompiled targets now generate a separate manifest for each precompiled module, rather than adding object files to a library. This fixes issues where object files from static libraries would not be linked into a target if a symbol in them was not referenced.

Change 3835969 by Ben.Marsh

	UBT: Fix cases where text is being written directly to the console rather than via logging functions.

Change 3837777 by Steve.Robb

	Format string type checking added to FOutputDevice::Logf.
	Fixes for those.

Change 3838569 by Steve.Robb

	Algo moved up a folder.

[CL 3847482 by Ben Marsh in Main branch]
2018-01-20 11:19:29 -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
cfc9f4775f Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3805092)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 3623004 by Ben.Marsh

	Fix RemoteExecutor not taking the remote machine specs into account.

Change 3623172 by Ben.Marsh

	UGS: Fix "More Info..." button not using P4 server override.

Change 3628820 by Ben.Marsh

	PR #3979: Get working directory from task element, not tool node (Contributed by nullbus)


Change 3630424 by Graeme.Thornton

	Make the AES key parameter const in FAES::EncryptData()

Change 3632786 by Steve.Robb

	FString constructor fixed to not take an ignored void* parameter, which can be misleading.

Change 3639534 by Ben.Marsh

	Remove old P4.NET library. Doesn't seem to be used by anything.

Change 3640536 by Steve.Robb

	GitHub #4007 : Delete unnecessary specialization of MakeArrayView

	#jira UE-49617

Change 3641155 by Gil.Gribb

	UE4 - Speculative fix for problem with summary reading in FAsyncArchive2.

Change 3643932 by Ben.Marsh

	Add an example build script for updating the version number, then compiling and staging the editor and tools to an output directory. Optionally submits at the end (requires -Submit argument).

Change 3644825 by Ben.Marsh

	Use VSWHERE to find the location of MsBuild.exe, if available.

	https://github.com/EpicGames/UnrealEngine/pull/3879#issuecomment-329688645

Change 3647395 by Ben.Marsh

	Allow compiling of monolithic binaries from BuildEditorAndTools.xml, using the -set:GameTarget=FooGame -set:TargetPlatforms=Win32;Win64 options.

Change 3650300 by Ben.Marsh

	UAT: Remove code that deletes cooked data on a failed cook. The engine should write packages out transactionally now (by writing to a temporary file and moving into place), and deleting the cooked data just prevents post-mortem analysis.

Change 3650856 by Robert.Manuszewski

	Adding checks to prevent FlushAsyncLoading and LoadObject/LoadPackage from being called from any threads other than the game thread

Change 3651022 by Gil.Gribb

	UE4 - Possible fix for mysterious ensure indicating problematic recursion in the pak precacher.

Change 3658331 by Steve.Robb

	Fix for the parsing of large integer values.

Change 3661958 by Gil.Gribb

	UE4 - Fixed rare hang in task graph.

Change 3664021 by Robert.Manuszewski

	Fix for a potential GC crash caused by stale pointer in AnimInstanceProxy

	See https://udn.unrealengine.com/questions/392432/gc-issue-uaniminstancemontageinstances-empty-but-u.html

Change 3664254 by Steve.Robb

	Use ANSI allocator when thread sanitizer is enabled.  This allows the generation of more accurate and meaningful reports.

Change 3664436 by Steve.Robb

	Use TUniquePtr instead of a thread-unsafe TSharedPtr to move data between threads.

Change 3666461 by Graeme.Thornton

	Improvements to signing/encryption key embedding and runtime access
	 - Changed method of embedding key into the executable to make it more secure
	 - Added FAESKey class to wrap a 32 byte key

Change 3666462 by Graeme.Thornton

	Cut ShooterGame AES key down to 32 characters

Change 3677560 by Ben.Marsh

	PR #4074: UBT: Add include and library-related fields to module JSON output (Contributed by adamrehn)


Change 3683534 by Steve.Robb

	Refactoring of enum/struct lookup during hot reload.

Change 3683754 by Steve.Robb

	Alignment fixes to allow int64 on 32-bit platforms
	Support for integral types in IsAligned.
	Static asserts so that alignment functions will no longer be called with non-intergal, non-pointer types.
	Some fixes to existing code.

Change 3686670 by Steve.Robb

	Fix for thread-unsafe modification of static array in FString::ParseIntoArrayWS.

Change 3687540 by Ben.Marsh

	Fix all UBT/UAT output going to stderr rather than stdout.

Change 3688931 by Gil.Gribb

	UE4 - Critical fix for a rare race condition in the pak file async IO layer.

Change 3690000 by Graeme.Thornton

	Manual copy of 4.18 CL 3687869

	Make UBT include the destination INI file for a given hierarchy if it exists
	Renamed VSCode enum value to VisualStudioCode, so it matches the source accessor plugin name

Change 3690030 by Graeme.Thornton

	VSCode fixes
	 - Source Code Accessor plugin changes. Add new interface method to open a solution at a given path
	 - GameProjectUtils now uses the source navigation API to open solutions rather than hardcoding which solution file types to look for
	 - Various fixes for vscode project file generation

	#jira UE-50554

Change 3690885 by Steve.Robb

	Atomic reads in FReferenceControllerOps<ESPMode::ThreadSafe>.

Change 3691052 by Steve.Robb

	Free stats thread on shutdown.

Change 3695138 by Steve.Robb

	AsConst helper function added.

Change 3696627 by James.Hopkin

	Changed player controller iterator typedefs to use TWeakObjectPtr rather than the deprecated TAutoWeakObjectPtr

	(review-3606695)

Change 3697099 by Steve.Robb

	GitHub #4105 : Removed redundant class access modifier

Change 3697154 by Steve.Robb

	Removal of deprecated functions in delegates.
	Mutable lambdas to can now be bound to delegates.

Change 3697180 by Steve.Robb

	GitHub #4115 : Incorrect CPPMacroType used for USoftClassProperty

Change 3697239 by Steve.Robb

	Allow TArray::Insert to take an array with any allocator type.

Change 3697269 by Steve.Robb

	RelocateConstructItems instead of MoveConstructItems.

Change 3697558 by Steve.Robb

	New _GetRef functions for TArray, which return a reference to the newly-added element.
	Unit tests for these functions.

Change 3699776 by Steve.Robb

	TSAN warning suppression around IAsyncReadRequest::bCompleteAndCallbackCalled.

Change 3702397 by Steve.Robb

	TIsTrivial type trait.

Change 3702569 by Steve.Robb

	Allow a TGuardValue to be assigned to a different type from the one being guarded.

Change 3706644 by Robert.Manuszewski

	Different stack ingore count for development builds for FArchiveStackTrace

Change 3709272 by Steve.Robb

	Removal of redundant UpdateVertices, which causes a race condition on the renderer thread.

Change 3709452 by Robert.Manuszewski

	Fixed a bug where with async time limit set to a low value the async loading could hang because the linker would keep reloading the preload dependencies

Change 3709454 by Robert.Manuszewski

	Added command line option -NOEDL to disable EDL

Change 3709487 by Steve.Robb

	Remove use of PLATFORM_HAS_64BIT_ATOMICS, which is always 1.

Change 3709645 by Ben.Marsh

	Fix race condition between multiple instances of UBT trying to write out the XML config cache.

Change 3711193 by Ben.Marsh

	Add an editor setting for the shared DDC location to use.

	#jira UE-51487

Change 3713811 by Steve.Robb

	Update .modules files after a hot reload.
	Don't check for directory timestamp changes as a way of detecting new files if hot reloading with a makefile, as this is already done during makefile invalidation checks.
	Pass hotreload flags around in UBT instead of relying on global state.

	This fixes the hot reload iteration speed regression without also regressing the fix to UE-42205.

	#jira UE-51472

Change 3715654 by Steve.Robb

	GitHub #4156 : Fixed not compiling template function Algo::UpperBoundBy.

Change 3718782 by Steve.Robb

	TSharedPtr, TSharedRef and TWeakPtr assignment are now implemented as copy-and-swap to avoid an invalid smart pointer state being visible to any destructors being called.

Change 3720830 by Steve.Robb

	Initial import of TAtomic object wrapper, which guarantees atomic access to an object.

Change 3720881 by Steve.Robb

	FCompression ThreadSanitizer data race fixes.

Change 3722640 by Graeme.Thornton

	Guard network platform file heartbeat function with the socket critical section. Stop heartbeat from causing a crash when firing during async loading.

	#jira UE-51463

Change 3722655 by Steve.Robb

	Don't null name table because it's already zeroed at startup.
	Some tidy-ups.

Change 3722754 by Steve.Robb

	Thread sanitizer fix.
	Small typo fix.

Change 3722849 by Graeme.Thornton

	Improve "caching file" message in networkplatformfile so it says "Requesting file..." and is only output when we actually request the file from the server

Change 3723081 by Steve.Robb

	TAtomic is now aligned to the underlying integer type.
	TAtomic will now static assert with a better error message when given an unsupported type.
	Define added for the maximum platform-supported atomic type, and used instead of a (wrong) hardcoded number.
	Misc renames.

Change 3723270 by Ben.Marsh

	Include /d2cgsummary argument when running UBT with -Timing.

Change 3723683 by Ben.Marsh

	Do not include documentation in the generated project files by default. Suspect that the 30,000 UDN files that get added to the solution take up memory and degrate performance.

Change 3725422 by Robert.Manuszewski

	When serializing compressed archive with multithreaded compression enabled, wait for the oldest async task instead of spinning.

Change 3725735 by Robert.Manuszewski

	Making all CheckDefaultSubobjects related functions const

Change 3726167 by Steve.Robb

	FMinimalName::IsNone added.

Change 3726458 by Steve.Robb

	TAtomic will no longer instantiate for types which are not exactly a size supported by the platform layer.

Change 3726542 by Ben.Marsh

	UGS: Always include the project filename in the editor build command. The project may not be in one of the .uprojectdirs paths.

Change 3726595 by Ben.Marsh

	Allow building multiple game targets in the example BuildEditorAndTools.xml script.

Change 3726724 by Ben.Marsh

	Fix ambiguities in calculating root directory. (GitHub #4172)

Change 3726959 by Ben.Marsh

	Make sure that AutomationTool uses the same list of preprocessor definitions when compiling *.target.cs files as UnrealBuildTool does.

Change 3728437 by Steve.Robb

	VisitTupleElements now supports invocation of a functor taking arguments from multiple tuples in parallel.
	Some improved documentation.

	NOTE: This is a backward-incompatible change to VisitTupleElements.  Any existing calls will need their arguments swapping.

Change 3732262 by Gil.Gribb

	UE4 - Fixed rare hangs in the task graph.

Change 3732755 by Steve.Robb

	Stats TSAN fixes.
	Optimizations to FCycleCounter::Start() to only read the stat name once.

Change 3735000 by Robert.Manuszewski

	Always preload the AssetRegistry module on startup. even if EDL is disabled.

	Even without EDL, if the async loading thread is enabled the AssetRegistryModule will otherwise be loaded from the ASL thread and that will assert.

Change 3735292 by Robert.Manuszewski

	Made sure component visualizer is removed from VisualizersForSelection when UnregisterComponentVisualizer() is called otherwise it may cause crashes when the engine terminates.

Change 3735332 by Steve.Robb

	Refactoring of UDelegateProperty::Identical() to clarify logic.
	Fixed UMulticastDelegateProperty::Identical() to compare the bound function names.
	PPF_DeltaComparison removed, as it doesn't seem useful.

Change 3737960 by Graeme.Thornton

	VSCode - Add launch task for generating project files for the given folder

Change 3738398 by Graeme.Thornton

	Make Visual Studio source code accessor's module hotreload handler pass the 'save all files' message to the current accesor, rather than direct to the visual studio accessor

	#jira UE-51451

Change 3738405 by Graeme.Thornton

	VSCode: Format c/cpp settings strings using comment path formatting function

Change 3738928 by Steve.Robb

	Fix for lack of null conditional operators in some older Monos. (replicated from CL# 3729574 in Release-4.18)

	#jira UE-51842

Change 3739135 by Ben.Marsh

	Fix being unable to package projects in a folder called "Wolf". This is only a restricted folder for Epic's Perforce history.

	#jira UE-51855

Change 3739360 by Ben.Marsh

	UAT: Fix issue with P4PORT setting not being parsed correctly.

Change 3745959 by James.Hopkin

	#core Added ImplicitConv for safe upcasts to a specific required type, e.g. deduced delegate payload types

Change 3746125 by Steve.Robb

	FName ThreadSanitizer fixes.

Change 3747274 by Steve.Robb

	TSAN fix for FMediaTicker::Stopping.

Change 3747618 by Steve.Robb

	ThreadSanitizer data race fix for FShaderCompileThreadRunnableBase::bForceFinish.

Change 3747720 by Steve.Robb

	ThreadSanitizer fix for FMessageRouter::Stopping.

Change 3749207 by Graeme.Thornton

	First pass of CryptoKeys plugin. Allows creation/editing/cycling of AES/RSA keys.

Change 3749323 by Graeme.Thornton

	Fix UAT crash when only -targetplatform is specifiied

Change 3749349 by Steve.Robb

	TSAN_SAFE guards around LockFreeList to silence ThreadSanitizer.

Change 3749617 by Steve.Robb

	Logf static_assert for formatting string enabled.

Change 3749897 by Steve.Robb

	FDebug::LogAssertFailedMessage static assert for formatting string enabled.

Change 3754011 by Steve.Robb

	Static asserts that the allocator supports move.
	Move-enabled our allocators which don't support move.

Change 3754227 by Ben.Marsh

	Fix build command line in generated projects missing a space before the compiler version override.

	#jira UE-52226

Change 3754562 by Ben.Marsh

	PR #4206: Replace deprecated wsprintf with secure swprintf for Bootstrap executable (Contributed by jessicafalk)


Change 3755616 by Graeme.Thornton

	Runtime code for using the new crypto ini files to define signing/encryption keys

	#jira UE-46580

Change 3755666 by James.Hopkin

	Used ImplicitConv to remove Casts being used for up-casts

	#review-3745965

Change 3755671 by Graeme.Thornton

	Add log message in unrealpak to say which config file system it is using for crypto keys

Change 3755672 by Graeme.Thornton

	Updating ShooterGame with new CryptoKeys based security setup

Change 3756778 by Ben.Marsh

	Add support for running multiple jobs simultaneously on a single builder.

	When running job or agent setup, the --num-slots=X parameter defines the number of steps that can run simultaneously (EC procedures pass in the resource step limit). A lock file is created under the workspace root (D:\Build) and a reservation file is created for the first slot that can be allocated (slot-1, slot-2, etc...). The slot number is used to define the workspace name that should be used.

Change 3758498 by Ben.Marsh

	Re-throw exceptions when a file cannot be deleted when cleaning a target.

Change 3758921 by Steve.Robb

	ThreadSanitizer fix to FThreadSafeStaticStatBase::HighPerformanceEnable to do a relaxed atomic load on access.
	DoSetup() now returns the newly-allocated pointer, instead of reloading it from memory.

Change 3760599 by Graeme.Thornton

	Added missing epic header comment to some new source files

Change 3760642 by Steve.Robb

	ThreadSanitizer fix for concurrent access to GMainThreadBlockedOnRenderThread.

Change 3760669 by Graeme.Thornton

	Improvement to OpenSSL based signing key generator. Generate a full RSA key then steal the primes from it, rather than generating the primes manually.

	Added a test mode to the cryptokeys commandlet to test signing key generation

Change 3760711 by Steve.Robb

	ThreadSanitizer fixes to GIsRenderingThreadSuspended.

Change 3760739 by Steve.Robb

	ThreadSanitizer fix for FQueuedThread::TimeToDie.

Change 3760763 by Steve.Robb

	ThreadSanitizer fix for GRunRenderingThreadHeartbeat.
	Removal of unnecessary/dangerous initializer for GMainThreadBlockedOnRenderThread.

Change 3760793 by Steve.Robb

	Some simple refactoring to remove some volatile reads of BufferStartPos and BufferEndPos.

Change 3760817 by Steve.Robb

	ThreadSanitizer fixes for FAsyncWriter::BufferStartPos and BufferEndPos.

Change 3761331 by Josh.Engebretson

	UnrealBuildTool enforcement of Development and Debug configurations in existing .csproj

	#jira UE-52416

Change 3761521 by Steve.Robb

	ThreadSanitizer fixes for FEvent::EventStartCycles and EventUniqueId.

Change 3763117 by Graeme.Thornton

	PR #3722: Optimising FPaths::IsRelative() (Contributed by jovisgCL)


Change 3763358 by Graeme.Thornton

	Ensure that all branches within FGenericPlatformMisc::RootDir() produce an absolute path with no duplicate slashes
	Remove relative->abs conversion of root dir from FPaths::MakeStandardFilename(), now that we know RootDir() always returns an absolute path

	Derived from the content of this PR:
	PR #3742: Treat RootDirectory the same way as Standardized (Contributed by TroutZhang)


Change 3764058 by Graeme.Thornton

	Generate a .code-workspace file for the current workspace. Allows foreign projects to "mount" the UE4 folder so that the engine tasks are avaible, and all engine source is visible to VSCode for searching purposes

	#jira UE-52359

Change 3764705 by Steve.Robb

	Better handling of whitespace in ImportText_Internal() for set and map properties.
	Containers are now emptied upon import failure, to avoid leaving bad container states (unhashed, partial data).
	Fix to USetProperty's temp buffer size to avoid buffer overruns.
	Duplicate map keys are now skipped during import, same as USetProperty's behavior.

Change 3764731 by Steve.Robb

	Don't re-run UHT if only source files have changed in the same folder as headers.  This was already done for hot reload, but there's no reason why it should be limited to that.

Change 3765923 by Graeme.Thornton

	VSCode - "taskName" -> "label" for C# build tasks

Change 3766018 by Steve.Robb

	constexpr constructor for TAtomic.

Change 3766037 by Steve.Robb

	Misc tidyings in HotReload.cpp.

Change 3766046 by Steve.Robb

	ThreadSanitizer fixes to ENamedThreads::RenderThread and ENamedThreads::ENamedThreads_Local.

Change 3766288 by Steve.Robb

	Improved efficiency of adding/removing elements to UGCObjectReferencer::ReferencedObjects.

Change 3766374 by Josh.Engebretson

	Fix issue with ini quoted value comparison

	#jira UE-52066

Change 3766532 by Josh.Engebretson

	PR #3680: Added NetSerialize to FDateTime fixing UE-22533 (Contributed by druhasu)
	#jira UE-46156

Change 3766740 by Steve.Robb

	TMultiMap::Append added.

Change 3767523 by Steve.Robb

	ThreadSanitizer fix for UE4Delegates_Private::GNextID.

Change 3767601 by Steve.Robb

	ThreadSanitizer fix for FStats::GameThreadStatsFrame.

Change 3770567 by Ben.Marsh

	Add a FAnnotatedArchiveFormatter interface which allows querying structural type information that may not be in binary archives.

Change 3770826 by Ben.Marsh

	Move StructuredArchive implementation into Core, so primitive types can implement serialization overloads for it.

Change 3770875 by Steve.Robb

	Redundant UScriptStruct::PostLoad removed, which was causing a race condition in async loading.  This was re-establishing the CppStructOps, but that is unnecessary because native classes cannot change as a result of a load - only BP structs can, and they don't have CppStructOps.

Change 3772167 by Ben.Marsh

	Add a context-free binary formatter that can serialize tagged data. This functions as a lower-overhead binary intermediate format for JSON data.

Change 3772248 by Steve.Robb

	ThreadSanitizer fixes to FMalloc call counters.

Change 3772383 by Ben.Marsh

	Separate archive metadata from FArchive into FArchiveContext, so it can be safely exposed to consumers of FStructuredArchive.

Change 3772906 by Graeme.Thornton

	TextAssetCommandlet - Utility commandlet for testing/converting to text asset format

Change 3772932 by Ben.Marsh

	Fix "String:" prefix not being stripped from escaped string values.

Change 3772942 by Graeme.Thornton

	Add experimental setting to enable in-editor text asset format functionality
	Add "export to text" option into the content browser asset actions context menu

Change 3772955 by Ben.Marsh

	Add a new "stream" compound type to FStructuredArchive, which allows serializing a sequence of elements similarly to an array, but without serializing an explicit size. Allows passing through data to an underlying binary archive without breaking compatibility.

Change 3772963 by Ben.Marsh

	Allow querying record keys and stream lengths from annotated archive formatters, since these archives have markup for field boundaries.

Change 3773010 by Graeme.Thornton

	Added CORE_API to FArchiveFromStructuredArchive
	Gave text asset format experimental option a slightly less random tooltip comment

Change 3773057 by Ben.Marsh

	Add a flag to FArchive to determine whether the archive is text (IsTextFormat()).

	Add support for seeking within FArchiveFromStructuredArchive. For text formats, data is serialized to an in-memory buffer, with names and objects serialized as indices into an array. For non-text formats, data is serialized directly to the underlying archive.

	Also rename FStructuredArchive::TryEnterSlot() to TryEnterField().

Change 3773118 by Steve.Robb

	TSignedIntType and TUnsignedIntType type traits for getting an integer type of a given size.

Change 3773122 by Steve.Robb

	TAtomic fixes for pointer arithmetic.
	TSignedIntType used instead of reimplementing its own trait.

Change 3773123 by Steve.Robb

	Unit tests for TAtomic.

Change 3773138 by Steve.Robb

	Run numeric tests on integer types instead of basic tests.
	Fix for compiler warnings when subtracting from unsigned atomics.

Change 3773166 by Steve.Robb

	Refactoring of arithmetic operations into its own class, then basing the pointer and integral versions on that.

Change 3774216 by Gil.Gribb

	UE4 - Fix rare crash in the pak precacher immediately after unmounting a pak file.

Change 3774426 by Ben.Marsh

	Copy all C# tools to a staging directory before compiling them. This prevents access violations when compiling tools like iPhonePackager that reference DotNETCommon, and ensures we strip NotForLicensees folders out of them all.

	See: https://answers.unrealengine.com/questions/726010/418-will-not-build-from-source.html

Change 3774658 by Ben.Marsh

	Improve error reporting while generating intellisense for project files. Include the name of the target being compiled, and allow project file generation to continue without it.

Change 3775141 by Ben.Marsh

	Always output HTML5 diagnostics at "information" verbosity, to avoid every line being prefixed with "WARNING:" and screwing up the EC postprocessor.

Change 3775459 by Ben.Marsh

	Removing .NET Framework Perforce DLL as runtime dependency of engine third party library. The actual library is linked statically.

Change 3775522 by Ben.Marsh

	UGS: Treat .uproject and .uplugin files as code changes.

Change 3775597 by Ben.Marsh

	Fix post-build steps for plugins not being executed.

	#jira UE-52754

Change 3777895 by Graeme.Thornton

	StructuredArchiveFromArchive - An adapter class for wrapping an existing FArchive with a structured archive

Change 3777931 by Graeme.Thornton

	Refactored FArchiveUObjects serialization code into some static helpers
	Added FArchiveUObjectFromStructuredArchive which allows the adaption of a structured archive into an FArchive that supports the extra UObect serialization functions for weak/soft pointers

Change 3777942 by Graeme.Thornton

	Added missing CORE_API to FStructuredArchive::FStream
	Added FStructuredArchive::FSlot insertion operator for char
	Added specialization of TArray<uint8> serializer for structured archives which serializes the contents as one value

Change 3778084 by Graeme.Thornton

	Adding FPackageName::GetTextAssetPackageExtension() to access the file extension we use for text asset files

Change 3778096 by Graeme.Thornton

	Add a constructor to FArchiveUObjectFromStructuredArchive that takes a slot and passes it to the base class

Change 3778389 by Josh.Engebretson

	Fix an optimization issue with CPU benchmarking
	Add better support for debugging/testing local rocket builds

	UDN Link: https://udn.unrealengine.com/questions/400909/command-scalability-auto-gives-inaccurate-cpu-benc.html

	#jira UE-52192

Change 3778701 by Josh.Engebretson

	Ensure plugin content folders are mounted consistently.  Fixes TryConvertFilenameToLongPackageName failing to work on plugin assets

	UDN Link: https://udn.unrealengine.com/questions/276386/tryconvertfilenametolongpackagename-fails-for-plug.html

	#jira UE-40317

Change 3778832 by Chad.Garyet

	Adding enterprise path support for PCB's for UGS

Change 3780258 by Graeme.Thornton

	TextAssetCommandlet - Accumulate timings for loading packages and saving packages

Change 3780463 by Graeme.Thornton

	CryptoKeys improvements
	 - Enable CryptoKeys plugin by default
	 - Attempt to inherit settings from the old system by default
	 - Hide ini/index encryption settings from packaging settings and just inherit previous values into new system

	Minor UBT change to remove a trailing comma from the end of encryption/signing key binary strings

Change 3780557 by Ben.Marsh

	Fix LoginFlow module not being precompiled for the binary release.

Change 3780846 by Josh.Engebretson

	Improve filename to long package name resolution when provided a relative path

Change 3780863 by Ben.Marsh

	UAT: Add a better error message when a C# project has an invalid reference.

Change 3780911 by Ben.Marsh

	Update the BuildEditorAndTools.xml script to allow submitting archived binaries to Perforce.

	The "Submit To Perforce For UGS" node creates a zip of all the binaries that have been built, and submits it to the stream specified by the 'ArchiveStream' argument.

Change 3780956 by Josh.Engebretson

	Add support for ! (RemoveKey) config command to UBT

	UDN Link: https://udn.unrealengine.com/questions/397267/index.html

	#jira UE-52033

Change 3782957 by Robert.Manuszewski

	UE4 - Fixed a linear search in EDL that caused performance problems for very large maps.

Change 3784503 by Ben.Marsh

	Optimizations for FStructuredArchive:

	* Store the depth explicitly in element objects, to avoid having to loop through the scope stack to find it.
	* Prevent shrinking of arrays when removing elements.
	* Add an inline allocator to the scope and container stacks.

Change 3784700 by Ben.Marsh

	Remove the inline allocator from FStructuredArchive; checking whether the inline or backup allocator is being used is slower than just allocating up-front.

Change 3784989 by Ben.Marsh

	Compile out all the FStructuredArchive validation code when WITH_TEXT_ARCHIVE_SUPPORT = 0.

Change 3786860 by Gil.Gribb

	UE4 - Remove no buffering flag from windows async IO because it disabled the disk cache entirely.

Change 3787159 by Ben.Marsh

	Guard against UE4.0 backwards compatibility path when determining if an engine is a source distribution.

Change 3787493 by Josh.Engebretson

	Parallel pak generation now uses MaxDegreeOfParallelism option which is now set to the number of CPU cores
	Moved cryptography settings parsing out of threaded CreatePak method to avoid concurrency issue in ConfigCache.TryReadFile
	Fix for multiple threads parsing ini keys (PR 3995)

	#PR 3995
	#jira 52913
	#jira 49503

Change 3787773 by Steve.Robb

	Fix for missing final values from FOREACH_ENUM_ macros.

Change 3788287 by Ben.Marsh

	TBA: Add checks in debug builds that key names in maps and records for FStructuredArchive are unique.

Change 3788678 by Ben.Marsh

	Fix compile error due to inability to instantiate TArray<> of forward declared struct. Convert set of key names to an array to avoid including Set.h in public header for FStructuredArchive.

Change 3789353 by Graeme.Thornton

	Removed unused/rotten modes from TextAsset commandlet.
	Used existing "-iterations=n" switch to control a global iteration over the given command. Useful for performance testing.

Change 3789396 by Ben.Marsh

	Move code to validate container keys/sizes into DO_GUARD_SLOW checks, and allocate container metadata instances dynamically to fix problems with references to things not declared in headers that can't be included from StructuredArchive.h

Change 3789772 by Ben.Marsh

	Always strip trailing slashes from the end of paths specified by .build.cs files; they can cause quoted paths to be escaped on the command line.

Change 3790003 by Ben.Marsh

	TBA: Rename FStructuredArchive::EElementType::Object to FStructuredArchive::EElementType::Record.

Change 3790051 by Steve.Robb

	PIE is disabled during a hot reload.
	Hot reload in editor is disabled during PIE.
	Hot reload from IDE is deferred until after PIE is exited.
	Compiling multiple times before a hot reload (e.g. compiling multiple times in PIE) will now load the most recent change.

	#jira UE-20357
	#jira UE-52137

Change 3790709 by Steve.Robb

	Better move support for TVariant.
	EVariantTypes switched over to using an enum class to aid debugger visualization.

Change 3791422 by Ben.Marsh

	TBA: Return the type of a field from an annotated archive formatter at the point that we enter it, rather than querying all the time.

Change 3791489 by Graeme.Thornton

	TBA: Change StructuredArchiveFromArchive adapter to use the archive.Open() result directly, now that it's a slot and not a record

Change 3792344 by Ben.Marsh

	Improvements to base64 encoding library.

	* Now supports encoding and decoding with ANSICHAR and WIDECHAR implementations.
	* Added support for decoding base-64 blobs without padding marks.
	* Added support for decoding into pre-allocated buffer.
	* Added constexpr functions for determining the encoded and maximum decoded size of an input buffer.
	* Prevent writes past the end of allocated buffer (no longer need to manually remove padding bytes).

Change 3792949 by Ben.Marsh

	TBA: Rename FAnnotatedArchiveFormatter to FAnnotatedStructuredArchiveFormatter.

Change 3794078 by Robert.Manuszewski

	Fixing a crash that could happen when FGCObjects were constructed and destructed when shutting down the engine

	#jira UE-52392

Change 3794413 by Ben.Marsh

	TBA: Remove the element type parameter to SetScope(). It isn't really needed; we can just assume the element ID correctly identifies the item on the stack.

Change 3794731 by Ben.Marsh

	TBA: Optimize creation of stack elements for empty slots in FStructuredArchive. This saves a lot of bookkeeping when serializing a large number of individual fields. Since only one slot can be active at a time (and it only exists temporarily, until we write into it), we can just store the element ID assigned to it in a member variable.

Change 3795081 by Ben.Marsh

	UBT: Move LinuxCommon.cs into Platform/Linux folder.

Change 3795137 by Ben.Marsh

	UBT: Allow modules to specify private compiler definitions from the build.cs file, only visible within that module (via the "PrivateDefinitions" property).

Change 3795247 by Ben.Marsh

	Fix missing header when creating a new interface from the editor new code wizard.

	#jira UE-53174

Change 3796025 by Graeme.Thornton

	Fixed some deprecated "Definitions" warnings in OpenCV build files

Change 3796103 by Graeme.Thornton

	Disable experimental text asset option - it does nothing useful yet.

Change 3796157 by Graeme.Thornton

	Fix path type mismatch in visual studio source code accessor meaning that the DTE comms wouldn't identify a running instance of VS as having the current solution open.

	#jira UE-53206

Change 3796315 by Ben.Marsh

	Move Formatter to the correct position for initializer.

	#jira UE-53208

Change 3797082 by Ben.Marsh

	UAT: Work around for exception thrown by launching cook with "-platform=Android_ETC1 -targetplatform=Android -cookflavor=ETC1". Anrdoid_ETC1 is not a valid platform (it's a cook platform), and can't be parsed by UAT.

	#jira UE-53232

Change 3799050 by Ben.Marsh

	Make UnrealPak.version files writable for Mac and Linux.

Change 3801012 by Graeme.Thornton

	VSCode - Update source accessor to use code workspace as it's target, rather than just the project directory

Change 3801214 by Gil.Gribb

	UE4 - Remove assert to work around minor problem with lock free lists.

	#jira UE-49600

Change 3801219 by Steve.Robb

	WeakObjectPtrs now warn when casting away const.

Change 3801299 by Graeme.Thornton

	Fix quote issue with foreign project build tasks on PC

Change 3803292 by Graeme.Thornton

	Fix crash on startup when using cook-on-the-side. Force a flush of the asset registry background scanning when creating the cook-on-the-side platform registries

Change 3803559 by Steve.Robb

	TSAN fix for FMalloc::MaxSingleAlloc.

Change 3803735 by Graeme.Thornton

	Last set of cryptokeys changes
	 - Added some comments for editor exposed settings
	 - Split "encrypt assets" option into "encrypt uassets" and "encrypt all assets"

Change 3803929 by Ben.Marsh

	UGS: Show an in-place error panel when a project fails to open, allowing the user to retry and have their tabs saved instead of creating a modal dialog.

Change 3624590 by Steve.Robb

	AddReferencedObjects now generates a compile error with containers of UObject*s where the UObjectType is forward-declared, as these which won't be added to the reference collector.
	Tidy-up of existing calls to AddReferencedObjects.

Change 3629473 by Ben.Marsh

	Build: Rename the option for embedding source server information in PDB files for installed engine builds.

Change 3632894 by Steve.Robb

	VARARG* macros deprecated and usage replaced with variadic templates.

Change 3640704 by Steve.Robb

	MakeWeakObjectPtr added, which deduces a TWeakObjectPtr type from a raw pointer type.
	Fix to TWeakObjectPtr's constructor which implicitly removed const.
	Fixes to everything which didn't compile as a result.

Change 3650813 by Graeme.Thornton

	Removed FStartupPackages and associated code

Change 3651000 by Ben.Marsh

	Return the stack size from FPlatformStackWalk::CaptureStackBacktrace() rather than checking for the first null pointer, to prevent truncated callstacks if parts of the stack are zeroed out.

	#jira UE-49980

Change 3690842 by Steve.Robb

	FPlatformAtomics::AtomicRead added - needs optimizing.
	AtomicRead() used in FThreadSafeCounter::GetValue().

Change 3699416 by Steve.Robb

	Fix to debugger visualization of TArray with a TInlineAllocator or TFixedAllocator.
	Improved readability of TSparseArray visualization.

Change 3720812 by Steve.Robb

	Atomic functions for 8-bit and 16-bit.
	Android, Linux and Switch implementations now just use the Clang implementation.
	AtomicRead64 deprecated in favor of the int64* AtomicRead overload.

Change 3722698 by Steve.Robb

	VS debugger visualizers for TAtomic.

Change 3732270 by Steve.Robb

	Relaxed stores and loads.

Change 3749315 by Graeme.Thornton

	If UAT is invoked with platforms in both the -platform and -targetplatform command line switches, build using all of them rather than just the ones in -targetplatform

	#jira UE-52034

Change 3750657 by Josh.Engebretson

	Fixed issue when debugging editor cook/package and project launch operations

	#jira UE-52207

Change 3758514 by Steve.Robb

	Fixes to FString::Printf having non-literals being passed as its formatting string.

Change 3763356 by Steve.Robb

	ENamedThreads::RenderThread and ENamedThreads::RenderThread_Local encapsulated by getters and setters.

Change 3770549 by Steve.Robb

	Removal of obsolete PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS and PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES.
	Tidy up of existing code which uses it.

Change 3770553 by Ben.Marsh

	Adding structured serialization API to Core/CoreUObject for use with text-based assets.

	* FStructuredArchive abstracts an archive which is made up of compound types (records, arrays, and maps). Values are stored in slots within these types.
	* Records are string -> value dictionaries where the key names can be compiled out in non-editor builds or when WITH_TEXT_ARCHIVE_SUPPORT = 0.
	* Maps are string -> value dictionaries where the key names are present regardless of the build type.
	* Proxy objects are defined to express the context for serialization (FStructuredArchive::FRecord, FStructuredArchive::FArray, FStructuredArchive::FMap, FStructuredArchive::FSlot) which allows basic validation through static typing. These objects act as lightweight handles, and can be cheaply constructed and passed around on the stack. Most serialization to and from the archive is done through these objects.
	* Runtime checks perform additional validation to ensure that serialized data is well formed and written in a forward-only manner, regardless of the underlying archive type.
	* The actual input/output format is determined by a separate interface (FArchiveFormatter). Context validation (always causing matching LeaveArray for every EnterArray, etc...) is done by FStructuredArchive, so implementing these classes is fairly trivial. FArchiveFormatter can be de-virtualized in non-editor builds, where WITH_TEXT_ARCHIVE_SUPPORT = 0.
	* Includes implementations of FArchiveFormatter for binary and JSON formats.

Change 3771105 by Steve.Robb

	Deprecation warnings for PLATFORM_COMPILER_HAS_AUTO_RETURN_TYPES and PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS.
	Fix for incorrect warning formatting on Clang platforms.

Change 3771520 by Steve.Robb

	Start moving Clang-using platforms' pre-setup stuff into a Clang-specific header.

Change 3771564 by Steve.Robb

	More common macros moved to the Clang pre-setup header.

Change 3771613 by Steve.Robb

	EMIT_CUSTOM_WARNING_AT_LINE moved to ClangPlatformCompilerPreSetup.h.

Change 3772881 by Ben.Marsh

	Add support for serializing FName and UObject through FStructuredArchive.

	In order to allow custom linker behavior when serializing objects:

	* The constructor to JSON input formatter now takes a delegate to convert a string object name into a UObject pointer.
	* The constructor to tagged binary formatter takes a delegate to serialize a UObject pointer into any form it chooses (likely an integer index into the import table)

	Object and name types are stored as strings in JSON, using an "Object:" or "Name:" prefix to differentiate them from regular strings. Any strings that already contain one of these prefixes are prepended with a "String:" prefix (as is any string that already has a "String:" prefix).

Change 3772941 by Graeme.Thornton

	Make build work when including StructuredArchive.h from core container types
	Added standard header to new files
	Add structured archive serializer for TArray
	Fix bug in structured archive where containers weren't being popped from the scope stack

Change 3772972 by Ben.Marsh

	Add an adapter which presents a legacy FArchive interface to a FStructuredArchive slot.

	Data is serialized into this slot as a stream of elements; raw data is buffered up into fixed size chunks, names and objects are serialized separately.

	When used with FBinaryArchiveFormatter, this should result in all data being passed through to the underlying archive in a backwards compatible way, wiith no additional bookkeeping fields.

Change 3773006 by Ben.Marsh

	Rename FStructuredArchive::FRecord::EnterSlot() to EnterField().

Change 3773013 by Steve.Robb

	bUseInlining target rule added to UnrealBuildTool, which defaults to true, to allow inlining to be disabled for debugging purposes.

Change 3774499 by Ben.Marsh

	Minor fixes for FStructuredArchive related classes:

	* Text-based archive formats are now compiled out when WITH_TEXT_ARCHIVE_SUPPORT = 0.
	* Fixed issue with FTaggedBinaryArchiveFormatter state becoming corrupted when looking ahead at field types.
	* FArchiveFieldName constructor is now explicit, to fix cases where strings were being passed directly to serialize functions.

Change 3774600 by Ben.Marsh

	Add CopyFormattedData() function, which can copy data from one formatter to another. Add a test case to SerializationAPI that converts from data -> JSON -> binary -> JSON -> data.

	This function can be used to implement a generic visitor pattern, by implementing a FArchiveFormatter which receives the deserialized data.

Change 3789721 by Ben.Marsh

	TBA: Split FTaggedBinaryArchiveFormatter into separate classes for reading and writing.

Change 3789920 by Ben.Marsh

	TBA: Support automatic coercion between any numeric types in tagged binary archives. Also report the smallest type that can contain a value, rather than just in32/double.

	#jira UECORE-364

Change 3789982 by Ben.Marsh

	TBA: Change FStructuredArchive::Open() to return a slot, rather than a record, to make it easier to implement a raw FArchive adapter.

Change 3792466 by Ben.Marsh

	TBA: Better handling of raw data in text based assets. Short sequences of binary data are Base64 encoded as a single string. Longer sequences are stored as an array of Base64 encoded lines, push a SHA1 hash to detect cases where the data was merged incorrectly.

	In order to allow inference of the correct type for a field, other fields called "Base64" will be escaped to "_Base64", and any field beginning with "_" will have an additional underscore inserted. Reading files back in reverses these transformations.

Change 3792935 by Ben.Marsh

	TBA: Rename FArchiveFormatter to FStructuredArchiveFormatter for consistency with FStructuredArchive.

Change 3795100 by Ben.Marsh

	UBT: Rename the ModuleRules Definitions property to PublicDefinitions, to make its semantics clearer.

Change 3795106 by Ben.Marsh

	Replace all internal usages of ModuleRules.Definitions, and replace it with ModuleRules.PublicDefinitions.

Change 3796275 by Ben.Marsh

	Fix paths to Version.h includes from resource files.

Change 3800683 by Josh.Engebretson

	Remove WER from Mac and Linux crash reports in favor of unified runtime-xml format
	#jira UE-50073

Change 3803545 by Steve.Robb

	TWeakObjPtr const-dropping assignment fix.
	Fixes to change.

[CL 3805231 by Ben Marsh in Main branch]
2017-12-12 18:32:45 -05:00