#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]
===================
MAJOR FEATURES + CHANGES
===================
Change 3123735 on 2016/09/13 by Josh.Markiewicz
#UE4 - added FNames for some common online features to be refactored later
#codereview david.nikdel
Change 3123608 on 2016/09/13 by Josh.Markiewicz
#OSS - refactor FUniqueNetIdRepl to derive from FUniqueNetIdWrapper and clean up redundant code
#codereview david.nikdel
Change 3120074 on 2016/09/09 by David.Nikdel
#Analytics: Move log message to more correct location
Change 3120073 on 2016/09/09 by David.Nikdel
#Analytics: Adjustments to ET.DroppedSubmission per Wes's feedback
- Don't try to restore events at all if caching is disabled (but do log the error)
- Stop accumulating events (even the ET.DroppedSubmission event) at 1024 cached to defend against run away accumulation
#CodeReview: Wes.Hunt
Change 3119959 on 2016/09/09 by Peter.Sauerbrei
update to engine to provide the generic chunk install when one is not implemented or requested
#rb none
Change 3119378 on 2016/09/09 by David.Nikdel
#Analytics #ET: Added a config option to not drop events in the event of a failure to flush.
- Events are re-added to the queue (may result in some reordering but timestamps will still be there) in the event of a failure
- Also appending an ET.DroppedSubmission event in this case so we can track how often clients fail. Has HTTP_STATUS and URL attributes.
- Events accumulate within a given application run but no attempt is made to persist across crashes etc.
#CodeReview: Wes.Hunt
Change 3118773 on 2016/09/08 by Peter.Sauerbrei
bring over fix for missing debug information in IOS executables
#rb none
Change 3118574 on 2016/09/08 by Peter.Sauerbrei
pulled over architecture fix for IOS from Main
#rb none
Change 3117672 on 2016/09/08 by Steve.Allison
Adding 3544_iPadMini3_ChAIRQA
Change 3116529 on 2016/09/07 by Josh.Markiewicz
#UE4 - reverted started IOS purchase/store work from default engine OSS plugins
#codereview david.nikdel
Change 3116010 on 2016/09/07 by Josh.Markiewicz
#WEX - Copying //WEX/Dev-Mobile to Dev-Main (//WEX/Dev-Main) to get OnlineSubsystemiOS changes
Change 3114411 on 2016/09/06 by Peter.Sauerbrei
fix for deploying movies to the correct directory
#rb none
Change 3113944 on 2016/09/06 by Peter.Sauerbrei
addition of resave packages command to UAT
#rb none
Change 3112948 on 2016/09/02 by Nathan.Green
#WEX
- Fixing file length on Android so that we can write out stats files (change is being submitted into Dev-Mobile by Chris Babcock)
#CodeReview: Chance.Lyon, David.Nikdel
Change 3112567 on 2016/09/02 by Josh.Markiewicz
#UE4 - fixed possible exception when checking directories that don't exist (copy of CL#3099217)
#rb ben.marsh
Change 3112055 on 2016/09/02 by Chance.Lyon
#WEX
- Merging mobile branch changes into main
Change 3108827 on 2016/08/31 by Peter.Sauerbrei
fix for warning
#rb none
Change 3105012 on 2016/08/29 by Peter.Sauerbrei
enable ICMP for Android
#rb none
Change 3103322 on 2016/08/26 by David.Nikdel
#WEX: Fix for clang warnings in Font Outline code
#CodeReview: Matt.Kuhlenschmidt
Change 3102935 on 2016/08/26 by David.Nikdel
Merging CL 3102878 from
//UE4/Dev-Editor/Engine/...
to //WEX/Main/Engine/...
------
Added support for outline fonts
- An outline size (in slate units), optional material and optional fill color can be specified with each font info.
- Outlines do not contribute to measurement directly so the text measuring and shaping methods have been modified to account for outlines
- Fixed a bug where font materials do not work properly if part of the font's rendered glyphs were in a different atlas
#CodeReview: Matt.Kuhlenschmidt, Matt.Hancy, Peter.Sauerbrei
Change 3102541 on 2016/08/26 by Peter.Sauerbrei
fix for build warning on Mac and IOS
#rb none
Change 3101820 on 2016/08/25 by Peter.Sauerbrei
Moved the online changes to the plugins directory
#rb none
Change 3101808 on 2016/08/25 by Peter.Sauerbrei
Merging using WEX_Main_to_UE4_WEX_Staging bringing in UE4 engine 4.14
#rb none
Change 3097879 on 2016/08/23 by David.Nikdel
#Analytics #OSS: Adjusted cohort selection algorithm and test cases
Change 3096606 on 2016/08/22 by Nathan.Green
#WEX
- Adding bAllowWindowResize, bAllowClose, bAllowMaximize, and bAllowMinimize boolean to GeneralProjectSettings
- Preventing us from resizing the window for the time being (in the future we may only allow along aspect ratio resizing)
#CodeReview: Chance.Lyon, David.Nikdel
Change 3094946 on 2016/08/19 by David.Nikdel
#OSS - Added FUserOnlineAccountMcp::SelectCohort
Change 3094942 on 2016/08/19 by David.Nikdel
#UE4 - Made FMD5 const-correct
Change 3092494 on 2016/08/17 by Nathan.Green
#WEX
- Making sure we never build zip64 instead of zip
#CodeReview: Chance.Lyon, David.Nikdel, Chris.Babcock
Change 3090760 on 2016/08/16 by Michael.Trepka
Copy of CL 3089133
Fix for task bar displayed over the fullscreen window on Windows 10 with Anniversary Update
Change 3090759 on 2016/08/16 by Michael.Trepka
Copy of CL 3078927
Updated WindowTitleBarArea widget to not override window zone in fullscreen mode, to prevent window from being moved. That required adding separate handling for double click in fullscreen, as it's no longer handled by window action.
Change 3087872 on 2016/08/12 by Josh.Markiewicz
#UE4 - cleaned up IOS store/purchase interface (first pass, minus IAP restore)
#codereview david.nikdel, josh.adams
Change 3084182 on 2016/08/10 by Peter.Sauerbrei
revert out the OpenGL shader compression code
#rb none
Change 3082565 on 2016/08/09 by Ben.Marsh
Fix building with VS2015 update 3.
Change 3082557 on 2016/08/09 by Ben.Marsh
Fix UBT makefile being invalidated to update adaptive unity build settings, even if that module happens to not include that file in a unity file. Keep a list of all files included by unity files as well as files in the working set.
#codereview Mike.Fricker, Michael.Noland
Change 3082456 on 2016/08/09 by Josh.Markiewicz
#UE4 - fixed typo
Change 3082439 on 2016/08/09 by Josh.Markiewicz
#UE4 - added CanMakePurchase call to IOS
Change 3081905 on 2016/08/09 by Michael.Noland
Editor: Made the text colors and font size in the output log configurable in the editor appearance settings (no changes to default values ... yet)
#codereview matt.kuhlenschmidt
Change 3080932 on 2016/08/08 by Josh.Markiewicz
#UE4 - New IOS purchasing/store interface v2
- added interfaces to main IOS subsystem
- added proper destruction of interfaces to Shutdown of IOS
- moved FStoreKitHelper to its own file
-- extended it for new v2 (improvements forthcoming)
- MCPCatalogHelper returns bogus user id for IOS app store
#codereview josh.adams, david.nikdel
#tests very basic IAP stuff so far
Change 3080217 on 2016/08/07 by Michael.Noland
Engine: Prevented a startup warning when SpectatorClass is nullptr, as not all games require a spectator pawn
- Also reduced the number of GetWorld() calls in APlayerController::SpawnSpectatorPawn()
Change 3080046 on 2016/08/06 by Michael.Noland
Engine: Moved where scissor rect reset happens for custom slate drawables to avoid a conflict with an existing fix in another branch
#codereview matt.kuhlenschmidt
Change 3080032 on 2016/08/06 by Michael.Noland
UMG: Fixed a bug where screen-mode UWidgetComponent widgets were drawn incorrectly offset in splitscreen or with aspect-ratio constrained cameras
#codereview nick.darnell, marc.audy
Change 3080031 on 2016/08/06 by Michael.Noland
Engine: Add the option to return player viewport-relative positions to ProjectWorldLocationToScreenWithDistance, ProjectWorldLocationToScreen, and ProjectWorldToScreen, which is useful if the position is going to be used for widgets in splitscreen or with aspect-ratio constrained cameras
#codereview nick.darnell, marc.audy
Change 3080029 on 2016/08/06 by Michael.Noland
Engine: Fixed a bug where the debug console and other debug rendering would be an incorrect size (based on the last player viewport) and also be partially clipped (depending on what in Slate rendered previously)
- This fixes issues with the console being offset and clipped when using aspect ratio constrained cameras or split screen
#codereview matt.kuhlenschmidt
Change 3079656 on 2016/08/05 by Josh.Markiewicz
#WEX - basic IOS changes to project
- added OnlineSubsystemIOS
- added some default settings
- removed GoogleVR from project
#codereview david.nikdel
Change 3078971 on 2016/08/05 by Steve.Allison
Updating to match check-in for UE4 Main @ CL 3078968
Change 3078025 on 2016/08/04 by Michael.Trepka
Copy of CLs 3073978 and 3075931
- More reliable way of checking if the cursor should be changed to resize cursor in bordeless window mode
- On Windows, lock the cursor to the center of the rect if the cursor is hidden to avoid problems with borderless window's round corners not treated as part of the window.
Change 3075415 on 2016/08/03 by Peter.Sauerbrei
reduce the metal command buffers
Change 3071457 on 2016/07/31 by David.Hunt
#WEX
Blueprint indexing
@Pete: This change and anything in Engine/Content can be stomped by any engine integration. This is just to help with not having to resave all of these to udpate a few of our own content blueprints for search indexing.
#CodeReview Peter.Sauerbrei, Steve.Allison, David.Nikdel
Change 3068661 on 2016/07/28 by Josh.Markiewicz
#WEX - changed the max number of possible UObjects allowed by a factor of 10 to reduce the memory footprint
#codereview david.nikdel, peter.sauerbrei
Change 3068500 on 2016/07/28 by David.Nikdel
#OSSMCP: Use correct HttpRequest creation method to respect game service config
Change 3066945 on 2016/07/27 by David.Nikdel
Reproduced CL 3063869 from Michael.Noland
>> Engine: Added a cvar (t.FPSChart.OpenFolderOnDump) to control whether or not FPS charts automatically open the profiling folder when stopfpschart is executed, which can be useful to avoid a bunch of open
>> windows while doing automated testing
#CodeReview: Michael.Noland
#JIRA: WEX-2342
Change 3063495 on 2016/07/25 by Michael.Trepka
Copy of CL 3063426
Borderless window support improvements:
- the cursor changes to resize when hovering over the window edge
- added a way for widgets to register a delegate that's called when window actions occur (maximize, restore, etc.)
- used window action notification for WindowTitleBarArea to improve how toggling fullscreen on double click is handled
Change 3063431 on 2016/07/25 by Michael.Trepka
Copy of CL 3063057 - Use round corners for windows with no system title bar and border only in windowed mode.
Change 3062654 on 2016/07/23 by Michael.Trepka
Copy of CL 3046975 and 3056204 - Support for making the game window borderless (no system border or title bar). Disabled by default. Enabling requires adding bUseBorderlessWindow=True to [/Script/EngineSettings.GeneralProjectSettings] in DefaultGame.ini. The game using this is responsible for adding WindowTitleBarArea widget to its UI, as well as window minimize/maximize/close buttons.
Change 3062647 on 2016/07/23 by Michael.Trepka
Copy of CL 3029211 - Added a setting (on by default) to make the game window preserve its content's aspect ratio while being resized by user
Change 3062646 on 2016/07/23 by Michael.Trepka
Copy of CLs 3039855, 3042644 and 3042911 - Added an option to toggle fullscreen with F11 key in addition to Alt+Enter
Change 3062638 on 2016/07/23 by Michael.Trepka
Copy of CL 3038201 and CL 3046803 -Added WindowTitleBarArea widget
Change 3062056 on 2016/07/22 by Peter.Sauerbrei
addition of optimization for ios compile times
Change 3054586 on 2016/07/18 by Nathan.Green
#WEX
- Adding tags around my engine level change
#CodeReview: Chance.Lyon, David.Nikdel
Change 3054581 on 2016/07/18 by Nathan.Green
#WEX
- Removing previous change, making all buttons ignore space bar and enter as we don't really care about that functionality
#JIRA: WEX-2256
#CodeReview: Chance.Lyon, Colin.Pyle, David.Nikdel
Change 3048243 on 2016/07/13 by Steve.Allison
This one actually has the changes from rev4
Change 3046649 on 2016/07/12 by Steve.Allison
Updating to match provision in UE4 Main @ CL 3046262
Change 3046127 on 2016/07/12 by Ian.Fox
#UE4, #OnlineSubSystem - Hotfix in the ExpirationDate field early so we can update the OGF plugin
#codereview David.Nikdel
Change 3034707 on 2016/06/30 by Peter.Sauerbrei
update provision to go with latest certificate
#rb none
Change 3031429 on 2016/06/28 by David.Nikdel
#WEX: porting an engine change we depend on in latest OGF (pre integrate)
Change 3030084 on 2016/06/27 by David.Nikdel
#GameCatalog: Add code to export attributes in itemGrants
#CodeReview: Scott.Bowen
Change 3030073 on 2016/06/27 by David.Nikdel
#Json: Make JsonObjectWrapper play nice with serialization and Import/Export Text
#CodeReview: Scott.Bowen
Change 3030029 on 2016/06/27 by David.Nikdel
#WEX: Fix for FJsonObjectWrapper::ImportTextItem (use FParse::QuotedString to read from Buffer)
#CodeReview: Scott.Bowen
Change 3029740 on 2016/06/27 by David.Nikdel
#OGF #JsonObjectWrapper
- Add attributes to catalog grants
@ScottB - I didn't get a chance to test this today. Things are crazy for PS+. All the code should already be there on the backend though. Here's a shelf in case you need it asap
#CodeReview: Scott.Bowen
Change 3028704 on 2016/06/27 by Ian.Fox
Duplicating 3027482 from //Orion/Main
Read TaggedPropertyRedirects from all config files to allow plugins to register property redirectors
You'll need this before you grab the latest OGF or your catalog prices will go away, so here it is now
#ue4
#rb David.Nikdel
#tests none
Change 3021448 on 2016/06/21 by Peter.Sauerbrei
potential fix for android apk size issue
Change 3020999 on 2016/06/21 by David.Nikdel
#WEX: Likely fix for WEX-1610
#CodeReview: Chance.Lyon
Change 3008450 on 2016/06/09 by Colin.Pyle
#PF
- WEX-1737, WEX-1744
- Adding the ability to set new layers in widget components
- WidgetComponents are now blueprintable
- New blueprint for the level marker menu widget components
- Map marker menus are now in a layer above other widget components
Change 3007804 on 2016/06/09 by Peter.Sauerbrei
fix for build set up failure
Change 3007292 on 2016/06/09 by Peter.Sauerbrei
add the WEX e-mail stuff back in, seems to have gotten lost in the transition
Change 3004478 on 2016/06/07 by Peter.Sauerbrei
for now have the cooker respect the bCookAll flag in the project settings.
Change 3000256 on 2016/06/03 by Peter.Sauerbrei
fix for iOS compile warning
Change 2998304 on 2016/06/02 by Nathan.Green
#PF
- Fixing Windowed Mode
#CodeReview: Chance.Lyon, Colin.Pyle, Peter.Sauerbrei
Change 2994269 on 2016/05/31 by Peter.Sauerbrei
Merging
//depot/UE4-WEX/...
to //WEX/Main/...
Change 2987181 on 2016/05/23 by Peter.Sauerbrei
Merging
//UE4/WEX-Staging/.p4ignore.txt
//UE4/WEX-Staging/Engine/...
//UE4/WEX-Staging/GenerateProjectFiles.bat
//UE4/WEX-Staging/GenerateProjectFiles.command
//UE4/WEX-Staging/GenerateProjectFiles.sh
//UE4/WEX-Staging/UE4Games.uprojectdirs
//UE4/WEX-Staging/WEX/...
to //WEX/Main/...
Change 2984959 on 2016/05/20 by Peter.Sauerbrei
re-applying HSL engine change
#PF
PF-292
- Make sure to regenerate the list when you open the recipe view
- Fixes cases where you buy an item in the store then return to evolve
Change 2984957 on 2016/05/20 by Peter.Sauerbrei
re-apply engine change from HSL
#PF
PF-33
- Check if we are in BeginDestroyed on Animation updates, possibly fixes a crash on level transition
- Make interactive items play their mouseover animations
- Heroes make the screen shake if they are on cooldown, we should figure out how to remove that on PC
Change 2984956 on 2016/05/20 by Peter.Sauerbrei
re-apply HSL change
#PF
PF-11
- Remove simulated touch with the mouse
- Add Right-click support to the game
- Right click now does the special attack
Change 2984345 on 2016/05/19 by Peter.Sauerbrei
Copying
//UE4/WEX-Staging/...
to //WEX/Main/...
This should reset the merge history
Change 2981872 on 2016/05/18 by Peter.Sauerbrei
fixes for IOS build of WEX
Change 2980734 on 2016/05/17 by Peter.Sauerbrei
Copying
//depot/UE4-WEX/...
to //WEX/Main/...
Populating WEX stream from old depot at CL2979954
#lockdown nick.penwarden
[CL 3129012 by Peter Sauerbrei in Main branch]
This also stops offline (bitmap) cached fonts from reporting that they're able to provide a composite font (they can't).
This makes it clearer when Slate will be forced to use the fallback font path, which may not always be as fast as the standard font path.
[CL 2482035 by Jamie Dale in Main branch]
UE-6203 - Crash when PIE after changing value of wrap text in UMG
IPropertyHandle::AccessRawData can return null values while we're transitioning to PIE, and these should not be added to the array of structs returned by FSlateFontInfoStructCustomization::GetFontInfoBeingEdited as all of those entries are assumed to be valid, non-null, pointers.
[CL 2375943 by Jamie Dale in Main branch]
UE-5795 - UMG: Crash when changing font size on TextBlock in a widget that was referenced by another widget (both UMG editors opened)
We were getting a crash using the cached values of SlateFontInfoStructs after updating a nested widget in UMG. This has been changed to get the value of SlateFontInfoStructs as required, first ensuring that the struct property handle is still valid.
[CL 2374699 by Jamie Dale in Main branch]
Slate now has the concept of composite fonts and font families (via FCompositeFont and FTypeface). A composite font is a font that contains a default font family, as well as any number of sub-font families which should be used for a given set of character ranges. This change will greatly improve the localization support for fonts.
UFont assets can now use two forms of caching "offline" (which is the way they have always worked historically), and "runtime" (which utilizes the Slate font cache to cache glyphs on demand). These runtime cached UFont assets are now the only way to specify which font to use for a UMG widget, and address the previous issues about ensuring that the required font files were staged for your game.
The Slate font cache now works on FFontData instances, rather than filenames. This allows the UFont asset to embed a blob of TTF or OTF font data inside it, rather than require the fonts be loaded from files on disk.
The Canvas text renderer has been updated to support runtime cached UFont assets. This gives our legacy Canvas based tools the same improved font localization support as the rest of the Slate-based editor UI.
UFont asset creation has been changed to use runtime caching by default, and additionally, you can now import a TTF or OTF file via the Content Browser and it will automatically create a UFont asset. If you still want an offline cached UFont asset, you can just change the cache type in the font editor, and the usual font picker dialog will appear and allow you to generate a font texture atlas.
[CL 2342203 by Jamie Dale in Main branch]