#rnx
#rb none
#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)
[CL 10870549 by ryan durand in Main branch]
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2821607 on 2016/01/08 by Mieszko.Zielinski
Added a way to limit amount of information logged by vlog by discarding logs from classes from outside of class whitelist #UE4
This feature was followed by refactoring of functions taking FVisualLogEntry pointers to use references instead.
#rb Lukasz.Furman
#codereview John.Abercrombie
Change 2828384 on 2016/01/14 by Mieszko.Zielinski
Back out of visual log refactor done as part of CL#2821607 #UE4
Change 2910454 on 2016/03/15 by Zak.Middleton
#ue4 - Properly exclude zero-distance MTD results in ComponentEncroachesBlockingGeometry_WithAdjustment() in the presense of multiple overlaps.
#rb Jeff.Farris
#jira UE-24327
UDN: https://udn.unrealengine.com/questions/270574/jeff-farris-hack-for-physx-mtd.html
Change 2910548 on 2016/03/15 by Zak.Middleton
#ue4 - Handle MTD computation returning NaN direction when there is a "contact" with zero distance.
Change 2912311 on 2016/03/16 by Marc.Audy
Properly handle overlaps in C++ in documentation code and UE4 to Unity doc
#rb Martin.Wilson
Change 2913086 on 2016/03/17 by Marc.Audy
Adding ability to have 9 parameters to a dynamic delegate
Change 2913101 on 2016/03/17 by Marc.Audy
Fix some of the loctext error messages
Change 2913102 on 2016/03/17 by Thomas.Sarkanen
Console usability improvements
Display console autocompletion commands from the lexicographically first element up to either the total number of commands or MAX_AUTOCOMPLETION_LINES, whichever is least. The previous behaviour started the list "in the middle" and hid the first elements if there were too many matches. Thus "[ab ac ad]" with "aa" hidden now becomes "[aa ab ac]" with "ad" hidden.
To make scrolling work as expected, the input handling of the up and down arrow keys has been reversed so that the cursor iterates forward starting from the top with the down arrow key, and goes back up with the up arrow key. Command history is still accessed with the up arrow key.
This commit also undoes one of the most evil uses of operator overloading I've ever seen, on par with "#define true false" but more subtle
Color console autocomplete entries to denote their type: command, CVar or other (manual autocompletion entries). CVars are further divided into writeable and read-only variables.
Assume that manual console autocompletion entries are commands. This makes the autocompletion list colors more consistent and less noisy
Automatically select (but don't complete) a command on console character input. To prevent the autocomplete from becoming too trigger happy, no longer automatically complete commands for arbitrary key inputs that we happen to have a match for
Allow cycling through console commands with the tab key
Discriminate between first time and repeated tab presses and only scroll through autocomplete entries on the latter
Fix off-by-one error in console: "x more matches" line was being shown when the number of autocomplete elements was equal to MAX_AUTOCOMPLETION_LINES
Fix an off-by-one error that was causing the topmost console command to not be shown if there was an autocomplete scroll region
Show the currently selected autocomplete entry faded out behind the user's typed input
Slightly increase brightness of the normal input text colour to better distinguish between the typed and autocompleted parts of the input line
Left-justify command descriptions in the console autocompletion box
Detect overflow of console autocomplete lines on low resolutions and decrease the space used for description justification to compensate
Make the console input, history and autocomplete colours user configurable
Add console background transparency. Configurable, set to 15% by default
Add missing closing quote to the console dump HTML template
#github #2061: Console usability improvements from Mattiwatti
Change 2913104 on 2016/03/17 by Thomas.Sarkanen
Added indicator displayed on animation nodes when they use the 'fast path'
Added checkbox that can be used to audit Blueprint fast-path usage.
Switched almost all animation node widgets to derive from new SAnimationGraphNode. This creates the overlay widget that indicates whether this node is using a more optimal path.
#doc Also added documentation tooltips and UDN doc files/images for the fast path systems.
#jira UE-24698 - Add icon to pins in anim graph to indicate 'fast mode' access
#rb Martin.Wilson
Change 2913306 on 2016/03/17 by Marc.Audy
Cleaning up GetResourceSize
- Made many call Super::GetResourceSize
- Removed trivial implementations
- Fixed HierarchicalInstanceStaticMeshComponent double counting an array
Change 2913535 on 2016/03/17 by Lukasz.Furman
fixed broken behavior tree graph data after subnode undo
#ue4 UE-28198
Change 2913608 on 2016/03/17 by Lukasz.Furman
fixed behavior tree execution indices after undoing move in editor
#ue4 UE-26705
Change 2913847 on 2016/03/17 by Lukasz.Furman
added new automation test for UE-28309
#ue4
Change 2913849 on 2016/03/17 by Lukasz.Furman
fixed behavior tree skipping over branch when restart request comes during AbortCurrentTask call
#ue4 UE-28309
Change 2913895 on 2016/03/17 by Marc.Audy
Added 'self' argument to Actor and PrimitiveComponent delegates that didn't already supply one
Fixed up all C++ uses of these delegates
#jira UE-23122
#rb Zak.Middleton
Change 2914743 on 2016/03/18 by Thomas.Sarkanen
Editing of primitive data in PhAT
[CL 2926677 by Marc Audy in Main branch]
Including:
- every GameplayTask can specify resources it requires to run, and separately resources it's going to lock, or "shadow" ones in the priority queue
- added a broadcast delegate to GameplayTasksComponent one can register for to get notified about changes in resource locks
- AI uses this to lock AI logic for scripted tasks
- made IGameplayTaskOwnerInterface::GetAvatarActor require a task pointer to determine avatar actor - this was needed for a "skeletal" owners, like BT nodes
- Improvements to AITask_MoveTo
- expanded BTTaskNode with bits required for it being a GameplayTask owner
- might need to move that to the most generic BTNode so that services can easily spawn tasks as well
- BT movement tasks can now use AITasks (opt-in with AISystem::bEnableBTAITasks via Project Settings)
- started adding a generic mechanism for configuring AI properties via Project Settings
- consistency throughout multiple ways of spawning given AI task being the main drive here. Started with movement of course
- currently implemented by exposing AISystem's properties to global config. Going to switch that over to UDeveloperSettings soon.
- Added a blackboard component member to AIController
- added setting BB SelfActor key to AI-controlled Pawn
[CL 2597132 by Mieszko Zielinski in Main branch]