#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 Ben.Marsh
Change 2718980 on 2015/10/07 by Dmitriy.Dyomin
UWorld::CreateWorld: remove commandlet-specific behavior (Contributed by slonopotamus)
Change 2719155 on 2015/10/07 by Allan.Bentham
HQ ES2 Reflections, selects the nearest 3 reflection captures to the primitive and reflects around the captures themselves (parallax correction).
Change 2724572 on 2015/10/12 by Jack.Porter
Fix for landscape disappearing when using r.forcelod
Change 2726062 on 2015/10/13 by Jack.Porter
Merged CL2726057 from 4.10
Fixed issues with landscape mirror tool on landscapes substantially above and below the zero line
Fixed problem where landscape grass was not invalidated after using the mirror tool
Change 2726133 on 2015/10/13 by Jack.Porter
Fix for Device Profiles editor missing specific Android device profiles
Fix for Device Profiles editor creating blank device profiles for Android cook variant "platforms"
Change 2736210 on 2015/10/21 by Dmitriy.Dyomin
Mobile Rendering: ReceiveDecals flag support for all meshes (previously only for skeletal meshes)
Change 2736463 on 2015/10/21 by Jack.Porter
Merge of 4.10 CL 2736461
Fixed Landscape disappearing when Layer Debug visualization selected outside Landscape edit mode
Change 2742855 on 2015/10/27 by Dmitriy.Dyomin
Fixed: World origin offset handling for UInterpToMovementComponent
https://udn.unrealengine.com/questions/266512/uinterptomovementcomponent-doesnt-update-with-worl.html
Change 2745055 on 2015/10/28 by Allan.Bentham
Update reflection captures (via update captures button) now works when mobile preview is active.
Change 2755668 on 2015/11/05 by Allan.Bentham
Use distance from shadow view to object instead of view space Z.
Change 2762186 on 2015/11/11 by Jack.Porter
The user can now specify the relative priority for each Android texture format in Project Settings. This will affect the format selected for Launch on Device and by the device for projects packaged using the Android_Multi target
Change 2765902 on 2015/11/13 by Gareth.Martin
Landscape per-component layer whitelisting basic functionality
Change 2769487 on 2015/11/17 by Jack.Porter
Support reflection viewmode on ES2 Preview
Change 2769576 on 2015/11/17 by Gareth.Martin
Improved landscape per-component layer whitelisting functionality
- added shortcut keys (plus/minus + click) to whitelist/un-whitelist a layer from the paint tool
- automatically added components' painted layers to the component whitelists when enabling whitelist restriction
Change 2771223 on 2015/11/18 by Gareth.Martin
Improved landscape per-component layer whitelisting functionality
- Removing a layer from the whitelist will now delete its data from the component
Change 2777862 on 2015/11/23 by Gareth.Martin
Improved landscape per-component layer whitelisting functionality
- on the shared verts on component edges/corners painting must now pass the whitelist of all components sharing the vert or it won't paint, rather than causing a disconnect
Better handling of erasing 100%-painted areas of blended landscape weightmap
- It will now pick the first other painted layer on that component to fill the erased value with, so 100% areas of blended layers are now erasable.
- todo: erasing can still cause disconnects on shared edge verts
Change 2780470 on 2015/11/25 by Dmitriy.Dyomin
Use hardware instancing when device supports it
Change 2780679 on 2015/11/25 by Jack.Porter
Landscape layer usage viewmode
Change 2781878 on 2015/11/26 by Gareth.Martin
Better handling of erasing 100%-painted areas of blended landscape weightmap
- It will now pick the *most painted* other painted layer on that component to fill the erased value with, and correctly takes shared edge/corner verts into account
Various fixes to TMap/TSet/TFixedSizeArrayView - all reviewed by Core
Change 2782214 on 2015/11/27 by Allan.Bentham
Prevent editor's ES2 emulation shaders degamma-ing the alpha channel when reading material textures.
Merging using Ronin-To-UE4-Dev-Mobile
Change 2782536 on 2015/11/30 by Jack.Porter
When updating reflection captures in ES2 mode, first wait for any shader compilation initiated by the feature level switch to complete
Change 2792617 on 2015/12/07 by Jack.Porter
Added a Project Setting to edit the r.DiscardUnusedQuality console variable
Change 2792618 on 2015/12/07 by Gareth.Martin
Baking landscape material world-position-offset into collision
Change 2794270 on 2015/12/08 by Dmitriy.Dyomin
DynamicMeshBuilder uses 16bit index buffer on ES2 platforms
Change 2794556 on 2015/12/08 by Allan.Bentham
Fix incorrect mip/roughness selection for HQ reflections.
Fixed couple of merge issues.
Change 2794568 on 2015/12/08 by Gareth.Martin
Fix black spot / hole if all layers on a component use height blending and add to <= 0
[CL 2796640 by Nick Penwarden in Main branch]