Files
UnrealEngineUWP/Engine/Source/Runtime/EngineSettings/Private/EngineSettingsModule.cpp
Peter Sauerbrei 3d58452185 Copying //UE4/WEX-Staging to Dev-Main (//UE4/Dev-Main)
===================
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]
2016-09-16 17:07:30 -04:00

172 lines
4.6 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#include "EngineSettingsPrivatePCH.h"
/**
* Implements the EngineSettings module.
*/
class FEngineSettingsModule
: public IModuleInterface
{
public:
// IModuleInterface interface
virtual void StartupModule( ) override { }
virtual void ShutdownModule( ) override { }
virtual bool SupportsDynamicReloading( ) override
{
return true;
}
};
/* Class constructors
*****************************************************************************/
UConsoleSettings::UConsoleSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
{ }
UGameMapsSettings::UGameMapsSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
, bUseSplitscreen(true)
, TwoPlayerSplitscreenLayout(ETwoPlayerSplitScreenType::Horizontal)
, ThreePlayerSplitscreenLayout(EThreePlayerSplitScreenType::FavorTop)
, bOffsetPlayerGamepadIds(false)
{ }
UGameNetworkManagerSettings::UGameNetworkManagerSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
{ }
UGameSessionSettings::UGameSessionSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
{ }
UGeneralEngineSettings::UGeneralEngineSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
{ }
UGeneralProjectSettings::UGeneralProjectSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
, bShouldWindowPreserveAspectRatio(true)
, bUseBorderlessWindow(false)
, bStartInVR(false)
, bAllowWindowResize(true)
, bAllowClose(true)
, bAllowMaximize(true)
, bAllowMinimize(true)
{ }
UHudSettings::UHudSettings( const FObjectInitializer& ObjectInitializer )
: Super(ObjectInitializer)
{ }
/* Static functions
*****************************************************************************/
const FString UGameMapsSettings::GetGameDefaultMap( )
{
return IsRunningDedicatedServer()
? GetDefault<UGameMapsSettings>()->ServerDefaultMap.GetLongPackageName()
: GetDefault<UGameMapsSettings>()->GameDefaultMap.GetLongPackageName();
}
const FString& UGameMapsSettings::GetGlobalDefaultGameMode( )
{
UGameMapsSettings* GameMapsSettings = Cast<UGameMapsSettings>(UGameMapsSettings::StaticClass()->GetDefaultObject());
return IsRunningDedicatedServer() && GameMapsSettings->GlobalDefaultServerGameMode.IsValid()
? GameMapsSettings->GlobalDefaultServerGameMode.ToString()
: GameMapsSettings->GlobalDefaultGameMode.ToString();
}
void UGameMapsSettings::SetGameDefaultMap( const FString& NewMap )
{
UGameMapsSettings* GameMapsSettings = Cast<UGameMapsSettings>(UGameMapsSettings::StaticClass()->GetDefaultObject());
if (IsRunningDedicatedServer())
{
GameMapsSettings->ServerDefaultMap = NewMap;
}
else
{
GameMapsSettings->GameDefaultMap = NewMap;
}
}
void UGameMapsSettings::SetGlobalDefaultGameMode( const FString& NewGameMode )
{
UGameMapsSettings* GameMapsSettings = Cast<UGameMapsSettings>(UGameMapsSettings::StaticClass()->GetDefaultObject());
GameMapsSettings->GlobalDefaultGameMode = NewGameMode;
}
// Backwards compat for map strings
void FixMapAssetRef(FStringAssetReference& MapAssetReference)
{
const FString AssetRefStr = MapAssetReference.ToString();
int32 DummyIndex;
if (!AssetRefStr.IsEmpty() && !AssetRefStr.FindLastChar(TEXT('.'), DummyIndex))
{
FString MapName, MapPath;
AssetRefStr.Split(TEXT("/"), &MapPath, &MapName, ESearchCase::IgnoreCase, ESearchDir::FromEnd);
MapAssetReference.SetPath(FString::Printf(TEXT("%s/%s.%s"),*MapPath, *MapName, *MapName));
}
};
void UGameMapsSettings::PostInitProperties()
{
Super::PostInitProperties();
FixMapAssetRef(EditorStartupMap);
FixMapAssetRef(GameDefaultMap);
FixMapAssetRef(ServerDefaultMap);
FixMapAssetRef(TransitionMap);
}
void UGameMapsSettings::PostReloadConfig( UProperty* PropertyThatWasLoaded )
{
if (PropertyThatWasLoaded)
{
if (PropertyThatWasLoaded->GetFName() == GET_MEMBER_NAME_CHECKED(UGameMapsSettings, EditorStartupMap))
{
FixMapAssetRef(EditorStartupMap);
}
else if (PropertyThatWasLoaded->GetFName() == GET_MEMBER_NAME_CHECKED(UGameMapsSettings, GameDefaultMap))
{
FixMapAssetRef(GameDefaultMap);
}
else if (PropertyThatWasLoaded->GetFName() == GET_MEMBER_NAME_CHECKED(UGameMapsSettings, ServerDefaultMap))
{
FixMapAssetRef(ServerDefaultMap);
}
else if (PropertyThatWasLoaded->GetFName() == GET_MEMBER_NAME_CHECKED(UGameMapsSettings, TransitionMap))
{
FixMapAssetRef(TransitionMap);
}
}
else
{
FixMapAssetRef(EditorStartupMap);
FixMapAssetRef(GameDefaultMap);
FixMapAssetRef(ServerDefaultMap);
FixMapAssetRef(TransitionMap);
}
}
IMPLEMENT_MODULE(FEngineSettingsModule, EngineSettings);