2016-01-07 08:17:16 -05:00
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
# include "AndroidPlatformEditorPrivatePCH.h"
# include "AndroidTargetSettingsCustomization.h"
# include "DetailLayoutBuilder.h"
# include "DetailCategoryBuilder.h"
# include "PropertyEditing.h"
# include "ScopedTransaction.h"
# include "SExternalImageReference.h"
# include "SHyperlinkLaunchURL.h"
# include "SPlatformSetupMessage.h"
# include "PlatformIconInfo.h"
# include "SourceControlHelpers.h"
# include "ManifestUpdateHelper.h"
2014-10-14 22:50:06 -04:00
# include "SNotificationList.h"
# include "NotificationManager.h"
2015-12-04 09:32:58 -05:00
# include "EngineBuildSettings.h"
2016-04-14 20:35:31 -04:00
# include "InstalledPlatformInfo.h"
2014-03-14 14:13:41 -04:00
# define LOCTEXT_NAMESPACE "AndroidRuntimeSettings"
//////////////////////////////////////////////////////////////////////////
// FAndroidTargetSettingsCustomization
2014-12-11 13:44:41 -05:00
namespace FAndroidTargetSettingsCustomizationConstants
{
const FText DisabledTip = LOCTEXT ( " GitHubSourceRequiredToolTip " , " This requires GitHub source. " ) ;
}
2014-03-14 14:13:41 -04:00
TSharedRef < IDetailCustomization > FAndroidTargetSettingsCustomization : : MakeInstance ( )
{
return MakeShareable ( new FAndroidTargetSettingsCustomization ) ;
}
FAndroidTargetSettingsCustomization : : FAndroidTargetSettingsCustomization ( )
2014-11-06 15:24:06 -05:00
: AndroidRelativePath ( TEXT ( " " ) )
, EngineAndroidPath ( FPaths : : EngineDir ( ) + TEXT ( " Build/Android/Java " ) )
2014-03-14 14:13:41 -04:00
, GameAndroidPath ( FPaths : : GameDir ( ) + TEXT ( " Build/Android " ) )
2014-04-23 19:40:10 -04:00
, EngineGooglePlayAppIDPath ( EngineAndroidPath / TEXT ( " res " ) / TEXT ( " values " ) / TEXT ( " GooglePlayAppID.xml " ) )
, GameGooglePlayAppIDPath ( GameAndroidPath / TEXT ( " res " ) / TEXT ( " values " ) / TEXT ( " GooglePlayAppID.xml " ) )
2014-03-14 14:13:41 -04:00
, EngineProguardPath ( EngineAndroidPath / TEXT ( " proguard-project.txt " ) )
, GameProguardPath ( GameAndroidPath / TEXT ( " proguard-project.txt " ) )
, EngineProjectPropertiesPath ( EngineAndroidPath / TEXT ( " project.properties " ) )
, GameProjectPropertiesPath ( GameAndroidPath / TEXT ( " project.properties " ) )
{
new ( IconNames ) FPlatformIconInfo ( TEXT ( " res/drawable/icon.png " ) , LOCTEXT ( " SettingsIcon " , " Icon " ) , FText : : GetEmpty ( ) , 48 , 48 , FPlatformIconInfo : : Required ) ;
new ( IconNames ) FPlatformIconInfo ( TEXT ( " res/drawable-ldpi/icon.png " ) , LOCTEXT ( " SettingsIcon_LDPI " , " LDPI Icon " ) , FText : : GetEmpty ( ) , 36 , 36 , FPlatformIconInfo : : Required ) ;
new ( IconNames ) FPlatformIconInfo ( TEXT ( " res/drawable-mdpi/icon.png " ) , LOCTEXT ( " SettingsIcon_MDPI " , " MDPI Icon " ) , FText : : GetEmpty ( ) , 48 , 48 , FPlatformIconInfo : : Required ) ;
new ( IconNames ) FPlatformIconInfo ( TEXT ( " res/drawable-hdpi/icon.png " ) , LOCTEXT ( " SettingsIcon_HDPI " , " HDPI Icon " ) , FText : : GetEmpty ( ) , 72 , 72 , FPlatformIconInfo : : Required ) ;
new ( IconNames ) FPlatformIconInfo ( TEXT ( " res/drawable-xhdpi/icon.png " ) , LOCTEXT ( " SettingsIcon_XHDPI " , " XHDPI Icon " ) , FText : : GetEmpty ( ) , 96 , 96 , FPlatformIconInfo : : Required ) ;
2015-08-28 19:34:42 -04:00
new ( LaunchImageNames ) FPlatformIconInfo ( TEXT ( " res/drawable/downloadimagev.png " ) , LOCTEXT ( " SettingsIcon_DownloadImageV " , " Download Background Vertical Image " ) , FText : : GetEmpty ( ) , 720 , 1280 , FPlatformIconInfo : : Required ) ;
new ( LaunchImageNames ) FPlatformIconInfo ( TEXT ( " res/drawable/splashscreen_portrait.png " ) , LOCTEXT ( " LaunchImage_Portrait " , " Launch Portrait " ) , FText : : GetEmpty ( ) , 360 , 640 , FPlatformIconInfo : : Required ) ;
new ( LaunchImageNames ) FPlatformIconInfo ( TEXT ( " res/drawable/splashscreen_landscape.png " ) , LOCTEXT ( " LaunchImage_Landscape " , " Launch Landscape " ) , FText : : GetEmpty ( ) , 640 , 360 , FPlatformIconInfo : : Required ) ;
2014-03-14 14:13:41 -04:00
}
void FAndroidTargetSettingsCustomization : : CustomizeDetails ( IDetailLayoutBuilder & DetailLayout )
{
SavedLayoutBuilder = & DetailLayout ;
BuildAppManifestSection ( DetailLayout ) ;
BuildIconSection ( DetailLayout ) ;
2015-08-28 19:34:42 -04:00
BuildLaunchImageSection ( DetailLayout ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-27 10:57:03 -05:00
static void OnBrowserLinkClicked ( const FSlateHyperlinkRun : : FMetadata & Metadata )
{
const FString * URL = Metadata . Find ( TEXT ( " href " ) ) ;
if ( URL )
{
FPlatformProcess : : LaunchURL ( * * URL , nullptr , nullptr ) ;
}
}
2014-03-14 14:13:41 -04:00
void FAndroidTargetSettingsCustomization : : BuildAppManifestSection ( IDetailLayoutBuilder & DetailLayout )
{
2014-12-11 13:44:41 -05:00
// Cache some categories
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
IDetailCategoryBuilder & APKPackagingCategory = DetailLayout . EditCategory ( TEXT ( " APKPackaging " ) ) ;
2014-12-11 13:44:41 -05:00
IDetailCategoryBuilder & BuildCategory = DetailLayout . EditCategory ( TEXT ( " Build " ) ) ;
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
IDetailCategoryBuilder & SigningCategory = DetailLayout . EditCategory ( TEXT ( " DistributionSigning " ) ) ;
2014-03-14 14:13:41 -04:00
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
TSharedRef < SPlatformSetupMessage > PlatformSetupMessage = SNew ( SPlatformSetupMessage , GameProjectPropertiesPath )
2014-03-14 14:13:41 -04:00
. PlatformName ( LOCTEXT ( " AndroidPlatformName " , " Android " ) )
. OnSetupClicked ( this , & FAndroidTargetSettingsCustomization : : CopySetupFilesIntoProject ) ;
SetupForPlatformAttribute = PlatformSetupMessage - > GetReadyToGoAttribute ( ) ;
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
APKPackagingCategory . AddCustomRow ( LOCTEXT ( " Warning " , " Warning " ) , false )
2014-03-14 14:13:41 -04:00
. WholeRowWidget
[
PlatformSetupMessage
] ;
2015-01-27 10:57:03 -05:00
APKPackagingCategory . AddCustomRow ( LOCTEXT ( " UpgradeInfo " , " Upgrade Info " ) , false )
. WholeRowWidget
[
SNew ( SBorder )
. Padding ( 1 )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. Padding ( FMargin ( 10 , 10 , 10 , 10 ) )
. FillWidth ( 1.0f )
[
SNew ( SRichTextBlock )
2015-04-24 10:31:00 -04:00
. Text ( LOCTEXT ( " UpgradeInfoMessage " , " <RichTextBlock.TextHighlight>Note to users from 4.6 or earlier</>: We now <RichTextBlock.TextHighlight>GENERATE</> an AndroidManifest.xml when building, so if you have customized your .xml file, you will need to put all of your changes into the below settings. Note that we don't touch your AndroidManifest.xml that is in your project directory. \n Additionally, we no longer use SigningConfig.xml, the settings are now set in the Distribution Signing section. " ) )
2015-01-27 10:57:03 -05:00
. TextStyle ( FEditorStyle : : Get ( ) , " MessageLog " )
. DecoratorStyleSet ( & FEditorStyle : : Get ( ) )
. AutoWrapText ( true )
+ SRichTextBlock : : HyperlinkDecorator ( TEXT ( " browser " ) , FSlateHyperlinkRun : : FOnClick : : CreateStatic ( & OnBrowserLinkClicked ) )
]
]
] ;
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
APKPackagingCategory . AddCustomRow ( LOCTEXT ( " BuildFolderLabel " , " Build Folder " ) , false )
2014-03-14 14:13:41 -04:00
. IsEnabled ( SetupForPlatformAttribute )
. NameContent ( )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. Padding ( FMargin ( 0 , 1 , 0 , 1 ) )
. FillWidth ( 1.0f )
[
SNew ( STextBlock )
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
. Text ( LOCTEXT ( " BuildFolderLabel " , " Build Folder " ) )
2014-03-14 14:13:41 -04:00
. Font ( DetailLayout . GetDetailFont ( ) )
]
]
. ValueContent ( )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
[
SNew ( SButton )
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
. Text ( LOCTEXT ( " OpenBuildFolderButton " , " Open Build Folder " ) )
. ToolTipText ( LOCTEXT ( " OpenManifestFolderButton_Tooltip " , " Opens the folder containing the build files in Explorer or Finder (it's recommended you check these in to source control to share with your team) " ) )
. OnClicked ( this , & FAndroidTargetSettingsCustomization : : OpenBuildFolder )
2014-03-14 14:13:41 -04:00
]
] ;
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
// Signing category
SigningCategory . AddCustomRow ( LOCTEXT ( " SigningHyperlink " , " Signing Hyperlink " ) , false )
. WholeRowWidget
[
SNew ( SBox )
. HAlign ( HAlign_Center )
[
SNew ( SHyperlinkLaunchURL , TEXT ( " http://developer.android.com/tools/publishing/app-signing.html#releasemode " ) )
. Text ( LOCTEXT ( " AndroidDeveloperSigningPage " , " Android Developer page on Signing for Distribution " ) )
. ToolTipText ( LOCTEXT ( " AndroidDeveloperSigningPageTooltip " , " Opens a page that discusses the signing using keytool " ) )
]
] ;
2014-04-23 19:40:10 -04:00
// Google Play category
IDetailCategoryBuilder & GooglePlayCategory = DetailLayout . EditCategory ( TEXT ( " GooglePlayServices " ) ) ;
TSharedRef < SPlatformSetupMessage > GooglePlaySetupMessage = SNew ( SPlatformSetupMessage , GameGooglePlayAppIDPath )
. PlatformName ( LOCTEXT ( " GooglePlayPlatformName " , " Google Play services " ) )
. OnSetupClicked ( this , & FAndroidTargetSettingsCustomization : : CopyGooglePlayAppIDFileIntoProject ) ;
SetupForGooglePlayAttribute = GooglePlaySetupMessage - > GetReadyToGoAttribute ( ) ;
2014-12-01 11:19:41 -05:00
GooglePlayCategory . AddCustomRow ( LOCTEXT ( " Warning " , " Warning " ) , false )
2014-04-23 19:40:10 -04:00
. WholeRowWidget
[
GooglePlaySetupMessage
] ;
2014-12-01 11:19:41 -05:00
GooglePlayCategory . AddCustomRow ( LOCTEXT ( " AppIDHyperlink " , " App ID Hyperlink " ) , false )
2014-04-23 19:40:10 -04:00
. WholeRowWidget
[
SNew ( SBox )
. HAlign ( HAlign_Center )
[
SNew ( SHyperlinkLaunchURL , TEXT ( " http://developer.android.com/google/index.html " ) )
. Text ( LOCTEXT ( " GooglePlayDeveloperPage " , " Android Developer Page on Google Play services " ) )
. ToolTipText ( LOCTEXT ( " GooglePlayDeveloperPageTooltip " , " Opens a page that discusses Google Play services " ) )
]
] ;
TSharedRef < IPropertyHandle > EnabledProperty = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , bEnableGooglePlaySupport ) ) ;
GooglePlayCategory . AddProperty ( EnabledProperty )
. EditCondition ( SetupForGooglePlayAttribute , NULL ) ;
TSharedRef < IPropertyHandle > AppIDProperty = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , GamesAppID ) ) ;
AppIDProperty - > SetOnPropertyValueChanged ( FSimpleDelegate : : CreateRaw ( this , & FAndroidTargetSettingsCustomization : : OnAppIDModified ) ) ;
GooglePlayCategory . AddProperty ( AppIDProperty )
. EditCondition ( SetupForGooglePlayAttribute , NULL ) ;
2014-04-28 12:19:40 -04:00
TSharedRef < IPropertyHandle > AdMobAdUnitIDProperty = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , AdMobAdUnitID ) ) ;
2015-08-03 05:25:13 -04:00
AdMobAdUnitIDProperty - > MarkHiddenByCustomization ( ) ;
2015-08-03 17:36:26 -04:00
TSharedRef < IPropertyHandle > AdMobAdUnitIDsProperty = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , AdMobAdUnitIDs ) ) ;
GooglePlayCategory . AddProperty ( AdMobAdUnitIDsProperty )
2014-04-28 12:19:40 -04:00
. EditCondition ( SetupForGooglePlayAttribute , NULL ) ;
2015-08-03 17:36:26 -04:00
2014-11-19 05:18:19 -05:00
TSharedRef < IPropertyHandle > GooglePlayLicenseKeyProperty = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , GooglePlayLicenseKey ) ) ;
GooglePlayCategory . AddProperty ( GooglePlayLicenseKeyProperty )
. EditCondition ( SetupForGooglePlayAttribute , NULL ) ;
2014-12-11 13:44:41 -05:00
2016-04-14 20:35:31 -04:00
# define SETUP_ANDROIDARCH_PROP(ArchFragment, PropName, Category, Tip) \
{ \
TSharedRef < IPropertyHandle > PropertyHandle = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , PropName ) ) ; \
Category . AddProperty ( PropertyHandle ) \
. IsEnabled ( FInstalledPlatformInfo : : Get ( ) . IsValidPlatformArchitecture ( TEXT ( " Android " ) , ArchFragment ) ) \
. ToolTip ( FInstalledPlatformInfo : : Get ( ) . IsValidPlatformArchitecture ( TEXT ( " Android " ) , ArchFragment ) ? Tip : FAndroidTargetSettingsCustomizationConstants : : DisabledTip ) ; \
}
2014-12-11 13:44:41 -05:00
2015-12-04 09:32:58 -05:00
# define SETUP_SOURCEONLY_PROP(PropName, Category, Tip) \
2014-12-11 13:44:41 -05:00
{ \
TSharedRef < IPropertyHandle > PropertyHandle = DetailLayout . GetProperty ( GET_MEMBER_NAME_CHECKED ( UAndroidRuntimeSettings , PropName ) ) ; \
Category . AddProperty ( PropertyHandle ) \
2015-12-04 09:32:58 -05:00
. IsEnabled ( FEngineBuildSettings : : IsSourceDistribution ( ) ) \
. ToolTip ( FEngineBuildSettings : : IsSourceDistribution ( ) ? Tip : FAndroidTargetSettingsCustomizationConstants : : DisabledTip ) ; \
2014-12-11 13:44:41 -05:00
}
2016-04-14 20:35:31 -04:00
SETUP_ANDROIDARCH_PROP ( TEXT ( " -armv7 " ) , bBuildForArmV7 , BuildCategory , LOCTEXT ( " BuildForArmV7ToolTip " , " Enable ArmV7 CPU architecture support? (this will be used if all CPU architecture types are unchecked) " ) ) ;
Copying //UE4/Dev-Mobile to //UE4/Main (Source: //UE4/Dev-Mobile @ 2945914)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2911743 on 2016/03/16 by Allan.Bentham
Fix broken tonemapper when using 32bpp encoded HDR. Fixes UE-28359
Cleaned up some ronin integration hacks from ronin.
Change 2912053 on 2016/03/16 by Peter.Sauerbrei
disable Vulkan in Win32 builds for now
#codereview rolando.caloca
#jira UE-28465
Change 2914512 on 2016/03/18 by Dmitriy.Dyomin
Fixed crash on Nexus5 with Android 4.4.2 when TonemapperFilm is enabled
Change 2914944 on 2016/03/18 by Allan.Bentham
Fix es2 tonemap flip. Fixes UE-25148
Change 2915248 on 2016/03/18 by Chris.Babcock
Updates to support NDK r11
#jira UE-28529
#ue4
#android
Change 2919192 on 2016/03/22 by Chris.Babcock
NDK level set above 19 forces minSdkVersion to 21 or above to prevent installing on unsupported devices
#jira UE-28408
#ue4
#android
#codereview Jack.Porter
Change 2919591 on 2016/03/23 by Allan.Bentham
Merge ronin's Gaussian DoF to 4.11's dof changes.
Gaussian DoF will use a single recombine pass with ES31 devices or if no separate translucency is used on SM4+.
Added permutation to exclude separate translucency from Gaussian recombine shader when not in use.
#codereview martin.mittring
Change 2920758 on 2016/03/24 by Dmitriy.Dyomin
Fixed: shifting lighting samples octree
https://udn.unrealengine.com/questions/276026/lighting-samples-visualization-not-working-with-le.html
Change 2920793 on 2016/03/24 by Dmitriy.Dyomin
Fixed: When sub-level set to be unloaded but with visbility state set to true, ULevelStreaming::IsStreamingStatePending returns wrong value
#jira UE-26426
Change 2920981 on 2016/03/24 by Dmitriy.Dyomin
GPU particles support for iOS Metal (A8+ only)
#jira UE-11067
#jira UE-28514
#codereview Jack.Porter
Change 2921383 on 2016/03/24 by Allan.Bentham
Fix inverted image on device when framebuffer fetch/bViewRectSource is not used.
#codereview jack.porter
Change 2925694 on 2016/03/29 by Dmitriy.Dyomin
Fixed: GPU particles and bloom on S7 Mali
Change 2927065 on 2016/03/29 by Chris.Babcock
Set the DT_SONAME field in linker (stops warning toast)
#ue4
#android
#codereview Jack.Porter
Change 2927375 on 2016/03/30 by Jack.Porter
Fixed localization for placement mode Cube, Sphere, Cylinder and Cone
Change 2928643 on 2016/03/30 by Jack.Porter
Fixed bug introdued by Ronin merge with DepthOfFieldScale setting being locked for BokehDOF
#code_review: allan.bentham
Change 2932773 on 2016/04/04 by Jack.Porter
Reapply android Vulkan version fixes
Change 2932853 on 2016/04/05 by Jack.Porter
Enable VULKAN_CLEAR_SURFACE_ON_CREATE on Android to prevent assertion
Change 2932998 on 2016/04/05 by Jack.Porter
Native web browser widget on iOS
#jira UEMOB-20
Change 2933420 on 2016/04/05 by Chris.Babcock
Removed hard-coded bUseUnityBuild in UBT for Android (contributed by kosz78)
#jira UE-29066
#pr #2236
#ue4
#android
Change 2934315 on 2016/04/05 by Chris.Babcock
Allow Android to act as server with OnlineSubsystemNull (contributed by psychogony)
#jira UE-23937
#PR #1820
#ue4
#android
#codereview Ryan.Gerleve
Change 2935038 on 2016/04/06 by Chris.Babcock
Fix OpenGLES31 compile error
#ue4
#android
#codereview Jack.Porter
Change 2936288 on 2016/04/07 by Allan.Bentham
Planar reflection captures for mobile. (UE-27426)
Added mobile planar reflection flag to material.
#codereview jack.porter, daniel.wright
Change 2936297 on 2016/04/07 by Allan.Bentham
Missed file. Planar reflection captures for mobile. (UE-27426)
#codereview jack.porter, daniel.wright
Change 2937763 on 2016/04/08 by Dmitriy.Dyomin
Fix InstancedStaticMesh batches for ES2 (contributed by Grimmick)
GitHub #2031
#jira UE-26576
#codereview Jack.Porter
Change 2937863 on 2016/04/08 by Jack.Porter
Merged Ronin CLs 2840392, 2860028
Allow vertex texture fetches on ES2 (requires absolute mip level)
Change 2938461 on 2016/04/08 by Chris.Babcock
Write Android uninstall batch files
#ue4
#android
Change 2939679 on 2016/04/11 by Allan.Bentham
Remove bStationaryLightUsesCSMForMovableShadows from light component's UI.
renamed proxy equivalent and infer its state from Inset Shadows For Movable Objects
#codereview jack.porter, daniel.wright
Change 2939887 on 2016/04/11 by Chris.Babcock
Android ARM64 libraries
#jira UEPLAT-1268
#ue4
#android
Change 2940125 on 2016/04/11 by Chris.Babcock
Added requirements to Arm64 and x86_64 tooltips
Change 2941051 on 2016/04/12 by Allan.Bentham
Fix for inverted RG channels when using filmic tonemapper with ES2.
#codereview jack.porter
Change 2942523 on 2016/04/13 by Chris.Babcock
Add cxa_demangle build.cs instead of hiding dependency in UEBuildAndroid.cs
#ue4
#android
#codereview Josh.Adams
Change 2942578 on 2016/04/13 by Chris.Babcock
Add cxademangle dependency to Core for Android
#ue4
#android
#codereview Josh.Adams
Change 2942997 on 2016/04/13 by Chris.Babcock
Run Ant with -quiet first and run again without if there is an error for the log
#ue4
#android
#codereview Josh.Adams
Change 2943320 on 2016/04/14 by Jack.Porter
Fixed planar reflection merge errors
Change 2943352 on 2016/04/14 by Jack.Porter
Fix NAME_VULKAN_ES3_1_ANDROID shader format name
#codereview: Rolando.Coloca
Change 2943367 on 2016/04/14 by Dmitriy.Dyomin
Added cvars to add or strip specific GL extensions from a driver reported extensions string
#jira UE-29467
Change 2943425 on 2016/04/14 by Dmitriy.Dyomin
Better logging of MobileHDR mode
Change 2943461 on 2016/04/14 by Dmitriy.Dyomin
Fixing HDR rendering and bloom on Galaxy S7
Change 2943493 on 2016/04/14 by Dmitriy.Dyomin
Better HDR fix for devices with ES3 support
Change 2943855 on 2016/04/14 by Allan.Bentham
Mobile planar reflections.
- currently only supports opaque materials
#codereview jack.porter
Change 2944721 on 2016/04/14 by Chris.Babcock
Allow Vulkan-only Android builds
#ue4
#android
#codereview Allan.Bentham,Jack.Porter
Change 2944771 on 2016/04/14 by Dmitriy.Dyomin
Fixed: mesh particles crash in ES2
Change 2944827 on 2016/04/15 by Dmitriy.Dyomin
Fixed: GPU particles not working on S6 with Android 6.0.1
Change 2944836 on 2016/04/15 by Jack.Porter
Disable FX system calls in forward renderer when particles showflag is off
Change 2944840 on 2016/04/15 by Jack.Porter
Re-enabled non-radial TDeferredLightVS on ES2 for planar and put #if FEATURE_LEVEL >= FEATURE_LEVEL_SM4 around the radial shader code which was tripping up ES2.
#codereview: Allan.Bentham, Chris.Babcock, Daniel.Wright
Change 2944914 on 2016/04/15 by Jack.Porter
Device profiles to detect Galaxy S7 Mali and Adreno variants in Vulkan mode
Change 2945020 on 2016/04/15 by Gareth.Martin
Cloning changes across from Dev-Landscape to Dev-Mobile due to feature deadline for 4.12.
Change 2943560 on 2016/04/14 by Gareth.Martin
Added ability to expand landscape bounds
#jira UE-28928
#jira UE-25230
Change 2943538 on 2016/04/14 by Gareth.Martin
Fix a crash with saving a level >2GB in size.
There may still be other crashes with >2GB levels.
Change 2943477 on 2016/04/14 by Gareth.Martin
Fixed LODFalloff setting on landscape getting reset when using the "Change Landscape Component Size" tool
Also moved all the LOD settings together in LandscapeProxy.h because it was messy
Change 2942113 on 2016/04/13 by Gareth.Martin
Updating comment to clarify behaviour of Foliage Align-To-Normal when Random-Yaw is disabled.
Change 2941030 on 2016/04/12 by Gareth.Martin
Cleanup and commenting
Change 2940994 on 2016/04/12 by Gareth.Martin
Implement random scale option for Landscape Grass.
#jira UE-25743
Change 2940993 on 2016/04/12 by Gareth.Martin
Remove unused BuildFlatTree function from HierarchicalInstancedStaticMeshComponent
Change 2940150 on 2016/04/11 by Gareth.Martin
Harden UHierarchicalInstancedStaticMeshComponent::UpdateInstanceTransform
Change 2940101 on 2016/04/11 by Gareth.Martin
Additional checks for bad static mesh when building the HISMC tree
Change 2945560 on 2016/04/15 by Rolando.Caloca
DM - Fix for newer Vulkan sdks
Change 2945638 on 2016/04/15 by Chris.Babcock
Fix permissions on uninstall script on Mac
#jira UE-29236
#ue4
#android
#lockdown Jack.Porter
Change 2945856 on 2016/04/15 by Rolando.Caloca
DM - vk - Fix mapped allocations on mobile
#lockdown nick.penwarden
[CL 2945995 by Chris Babcock in Main branch]
2016-04-15 18:19:26 -04:00
SETUP_ANDROIDARCH_PROP ( TEXT ( " -arm64 " ) , bBuildForArm64 , BuildCategory , LOCTEXT ( " BuildForArm64ToolTip " , " Enable Arm64 CPU architecture support? (use at least NDK r11c, requires Lollipop (android-21) minimum) " ) ) ;
2016-04-14 20:35:31 -04:00
SETUP_ANDROIDARCH_PROP ( TEXT ( " -x86 " ) , bBuildForX86 , BuildCategory , LOCTEXT ( " BuildForX86ToolTip " , " Enable X86 CPU architecture support? " ) ) ;
SETUP_ANDROIDARCH_PROP ( TEXT ( " -x64 " ) , bBuildForX8664 , BuildCategory , LOCTEXT ( " BuildForX8664ToolTip " , " Enable X86-64 CPU architecture support? " ) ) ;
SETUP_ANDROIDARCH_PROP ( TEXT ( " -es2 " ) , bBuildForES2 , BuildCategory , LOCTEXT ( " BuildForES2ToolTip " , " Enable OpenGL ES2 rendering support? (this will be used if rendering types are unchecked) " ) ) ;
SETUP_ANDROIDARCH_PROP ( TEXT ( " -es31 " ) , bBuildForES31 , BuildCategory , LOCTEXT ( " BuildForES31ToolTip " , " Enable OpenGL ES31 + AEP (Android Extension Pack) rendering support? " ) ) ;
2016-03-16 21:16:51 -04:00
SETUP_SOURCEONLY_PROP ( bSupportsVulkan , BuildCategory , LOCTEXT ( " SupportsVulkanToolTip " , " Enable Vulkan rendering support? " ) ) ;
2014-12-11 13:44:41 -05:00
// @todo android fat binary: Put back in when we expose those
Copying //UE4/Dev-Build to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2864843 on 2016/02/12 by Ben.Marsh
Add individual 'status', 'outcome', and 'error_code' fields to parsed jobsteps. Should fix grid view not being able to display 'pending' icons.
Change 2865161 on 2016/02/12 by Ben.Marsh
Stop storing a reference to UEBuildTarget from UEBuildModule. It creates an awkward cyclic data dependency, and makes it easy for people to write lazy code that just reaches into the internal state of the build.
Change 2865643 on 2016/02/12 by Ben.Marsh
Rename UEBuildModuleType to UHTModuleType, and move implementation into ExternalExecution.
Change 2874408 on 2016/02/19 by Ben.Marsh
Automatically sort nodes in the dashboard grid view by a weight derived from the node's order in the build graph, summed across all the jobs in which it was present.
Change 2879572 on 2016/02/24 by Ben.Marsh
Allow spoofing a Git merge from a given commit, using a changelist description containing the tag "git merge <branch> <changelist>", where <branch> is the name of a branch on Git (eg. master, 4.11, etc..), and <changelist> is the changelist being merged in.
Change 2883216 on 2016/02/26 by Ben.Marsh
Prevent Jira tickets being incorrectly updated with 'Main CL' fields which are after the 'Fix CL' fields.
Change 2883755 on 2016/02/26 by Ben.Marsh
Fix solution files having a Shipping configuration, even when -NoShippingConfigs is passed on the command line.
Change 2886223 on 2016/02/29 by Ben.Marsh
Ignore SignTool errors - we can recover from them.
Change 2887414 on 2016/03/01 by Ben.Marsh
Dump all the *.crash files produced while running commandlets, to make it easier to diagnose build system crashes cooking on Mac.
Change 2888235 on 2016/03/01 by Ben.Marsh
Add overloads for methods in FileFilter which take FileReference and DirectoryReference objects.
Change 2889602 on 2016/03/02 by Ben.Marsh
Treat shaders as code in UGS. Don't sync them as part of content-only syncs, and don't allow syncing past them without updated binaries.
Change 2889610 on 2016/03/02 by Ben.Marsh
Fix setting for using incremental builds not being saved. Also hide command to do incremental builds if the 'use incremental builds' option is not checked.
Change 2891866 on 2016/03/03 by Matthew.Griffin
Removed Rocket specific batch files and made sure installed build won't try to include them
Removed last use of RocketGenerateProjectFiles.sh by using UBT directly instead
Change 2893349 on 2016/03/03 by Ben.Marsh
Add derived ReplicatedBranch to support mirroring the VR editor branch to GitHub.
Change 2894703 on 2016/03/04 by Ben.Marsh
Include *.usf when looking for the last code changelist. Also update version to 1.68.
Change 2897991 on 2016/03/07 by Ben.Marsh
Copy the changelist number to the clipboard when the user presses Ctrl-C. Update version number to 1.69.
Change 2898005 on 2016/03/07 by Ben.Marsh
Minor changes to support BuildGraph:
* UE4Build now has a static function that can update version files.
* Adding FileReference/DirectoryReference methods to FileFilter and CommandUtils.
* FileFilter treats any pattern containing a slash as implictly starting from the root directory, unless it begins with "...".
Change 2898095 on 2016/03/07 by Ben.Marsh
UAT - Don't retry builds if we're using local executor; we don't encounter failures due to timeouts.
Change 2898248 on 2016/03/07 by Ben.Marsh
UBT - Add the standard game include paths back in to plugin modules. Existing game code relies on this.
Change 2898615 on 2016/03/08 by Matthew.Griffin
Removed last uses of RunningRocket function
All seemed to be overly cautious about people using an Installed build to do non standard things, don't see any ill effects in the most common circumstances.
Change 2898681 on 2016/03/08 by Matthew.Griffin
Removed Automation.RunningRocket function as there are no more uses
Changed the majority of comments referencing Rocket mode that are now either about the engine being installed or from the Launcher etc.
#lockdown Nick.Penwarden
[CL 2898813 by Matthew Griffin in Main branch]
2016-03-08 09:00:48 -05:00
// SETUP_SOURCEONLY_PROP(bSplitIntoSeparateApks, BuildCategory, LOCTEXT("SplitIntoSeparateAPKsToolTip", "If checked, CPU architectures and rendering types will be split into separate .apk files"));
2014-03-14 14:13:41 -04:00
}
void FAndroidTargetSettingsCustomization : : BuildIconSection ( IDetailLayoutBuilder & DetailLayout )
{
// Icon category
IDetailCategoryBuilder & IconCategory = DetailLayout . EditCategory ( TEXT ( " Icons " ) ) ;
2014-12-01 11:19:41 -05:00
IconCategory . AddCustomRow ( LOCTEXT ( " IconsHyperlink " , " Icons Hyperlink " ) , false )
2014-03-14 14:13:41 -04:00
. WholeRowWidget
[
SNew ( SBox )
. HAlign ( HAlign_Center )
[
SNew ( SHyperlinkLaunchURL , TEXT ( " http://developer.android.com/design/style/iconography.html " ) )
. Text ( LOCTEXT ( " AndroidDeveloperIconographyPage " , " Android Developer Page on Iconography " ) )
. ToolTipText ( LOCTEXT ( " AndroidDeveloperIconographyPageTooltip " , " Opens a page on Android Iconography " ) )
]
] ;
for ( const FPlatformIconInfo & Info : IconNames )
{
const FString AutomaticImagePath = EngineAndroidPath / Info . IconPath ;
const FString TargetImagePath = GameAndroidPath / Info . IconPath ;
2014-12-01 11:19:41 -05:00
IconCategory . AddCustomRow ( Info . IconName )
2014-03-14 14:13:41 -04:00
. NameContent ( )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. Padding ( FMargin ( 0 , 1 , 0 , 1 ) )
. FillWidth ( 1.0f )
[
SNew ( STextBlock )
. Text ( Info . IconName )
. Font ( DetailLayout . GetDetailFont ( ) )
]
]
. ValueContent ( )
. MaxDesiredWidth ( 400.0f )
. MinDesiredWidth ( 100.0f )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. FillWidth ( 1.0f )
. VAlign ( VAlign_Center )
[
SNew ( SExternalImageReference , AutomaticImagePath , TargetImagePath )
. FileDescription ( Info . IconDescription )
. RequiredSize ( Info . IconRequiredSize )
2015-04-24 10:31:00 -04:00
. MaxDisplaySize ( FVector2D ( FMath : : Min ( 96 , Info . IconRequiredSize . X ) , FMath : : Min ( 96 , Info . IconRequiredSize . Y ) ) )
2014-03-14 14:13:41 -04:00
]
] ;
}
}
2015-08-28 19:34:42 -04:00
void FAndroidTargetSettingsCustomization : : BuildLaunchImageSection ( IDetailLayoutBuilder & DetailLayout )
{
// Add the launch images
IDetailCategoryBuilder & LaunchImageCategory = DetailLayout . EditCategory ( TEXT ( " LaunchImages " ) ) ;
LaunchImageCategory . AddCustomRow ( LOCTEXT ( " LaunchImageInfo " , " Launch Image Info " ) , false )
. WholeRowWidget
[
SNew ( SBorder )
. Padding ( 1 )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. Padding ( FMargin ( 10 , 10 , 10 , 10 ) )
. FillWidth ( 1.0f )
[
SNew ( SRichTextBlock )
Merging //UE4/Release-4.11 to //UE4/Main (up to CL#2852902)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2835191 on 2016/01/19 by Nick.Whiting
Invert the y-axis on the SteamVR controllers to match the convention of the engine and the rest of the gamepads
#jira UE-22705
Change 2835686 on 2016/01/20 by Gareth.Martin
Fixed landscape material instances not being updated if holes are painted on a landscape that doesn't have the landscape visibility mask node in the material and then the visibility mask node is added to the material later.
#jira UE-18187
Change 2835767 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Added a cursor to TopDown template (C++ version) to match the BP version.
Change 2835772 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Adding the material asset for the C++ TopDown template's cursor.
Change 2835811 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25699 Added Validity Checks in BP logic, unchecked CDO for Pixel Ship, to Fix Log Warnings
#jira UE-25704 Adjusted Matinee to happen at Box Location
#jira UE-25688 Adjusted Player Starts
#jira UE-25693 Adjusted Player Starts
Change 2835863 on 2016/01/20 by Gareth.Martin
Fixed crash in the landscape ramp and mirror tools if the streaming level containing the landscape is hidden (or possibly if the landscape actor is deleted)
#jira UE-24883
Change 2835889 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25698 Enabled V-sync, also fixed up player Respawn Issue
Change 2835995 on 2016/01/20 by Jamie.Dale
The output log now hard-wraps lines to prevent long lines causing performance issues
#jira UE-24187
Change 2836052 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25675 Added Blocking Volume to prevent Player from Falling off map
#jira UE-25676 Added Blocking Volumes so that the Player doesn't get stucl at awkward corners under the Bridge
Change 2836137 on 2016/01/20 by Chad.Taylor
Vehicle and VehicleAdv template content fixes for new VR camera
#jira UE-25507
Change 2836166 on 2016/01/20 by Gareth.Martin
Fixed hiding a streaming level containing a landscape causing the landscape editor to switch to the "New Landscape" tool instead of exiting
#jira UE-25093
Change 2836174 on 2016/01/20 by Chad.Taylor
IHeadMountedDisplay crash fix associated with accessing a dangling pointer.
#jira UE-25272
Change 2836179 on 2016/01/20 by Jamie.Dale
Optimized FShapedGlyphSequence reverse look-up
There's now a reverse look-up map of cluster indices to their glyph data in order to avoid brute force looping
#jira UE-24187
Change 2836286 on 2016/01/20 by Chris.Babcock
Update Qualcomm TextureConverter for OSX
#jira UE-22092
#ue4
#android
Change 2836328 on 2016/01/20 by Nick.Darnell
Fixing a problem with widget components crashing on destruction with the render commands to pre/post render for window render commands needing access to the policy, but it potentially being deleted. Inserting a NoOp command that keeps the shared ptr alive through the RHI render process.
#jira UE-25752
Change 2836342 on 2016/01/20 by Nick.Darnell
Depending on shutdown order, the Slate Renderer may go away, and then render data handles may not be collected correctly because they are trying to reference a pointer that's no longer valid and cause a crash on exit. The correct approach would be to have render handles actually have a pointer back to who owns them, in this case the RHI Resource Manager, which is still alive and well at this point in the pipeline. Then if the resource manager is collected, it forces all handles to get cleaned up correctly, or if the handles are collected first, they can be sure they've got a valid pointer back to the resource manager.
#jira UE-25753
Change 2836358 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25710 Replaced Deprecated Nodes
Change 2836510 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25718 Adjsuted BP to make pointer decal rotate in the direction of surface
Change 2836564 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25716 Added bool to store last Moved Direction
Change 2836697 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25740 Removed unused VR Nodes to remove Log errors on Mac
Change 2836725 on 2016/01/20 by Peter.Sauerbrei
workaround for thread race when trying to release the TargetDeviceService endpoint after an unclaim message is sent
#jira UE-25123
Change 2836782 on 2016/01/20 by Jamie.Dale
Added FTextLayout::AddLines
This is similar to AddLine, however it allows you to add multiple lines in a single call, thus avoiding the re-justification cost associated with each call to AddLine.
AddLine has also been changed to take the same structure type as AddLines (which takes an array of these structures), and the existing version of AddLine has been deprecated.
#jira UE-24187
Change 2836801 on 2016/01/20 by Jeff.Campeau
[CL 2857187 by Matthew Griffin in Main branch]
2016-02-05 11:54:00 -05:00
. Text ( LOCTEXT ( " LaunchImageInfoMessage " , " The <RichTextBlock.TextHighlight>Download Background</> image is used as the background for OBB downloading. The <RichTextBlock.TextHighlight>Launch Portrait</> image is used as a splash screen for applications with Portrait, Reverse Portrait, Sensor Portrait, Sensor, or Full Sensor orientation. The <RichTextBlock.TextHighlight>Launch Landscape</> image is used as a splash screen for applications with Landscape, Sensor Landscape, Reverse Landscape, Sensor, or Full Sensor orientation. \n \n The launch images will be scaled to fit the device in the active orientation. Additional optional launch images may be provided as overrides for LDPI, MDPI, HDPI, and XHDPI by placing them in the project's corresponding Build/Android/res/drawable-* directory. " ) )
2015-08-28 19:34:42 -04:00
. TextStyle ( FEditorStyle : : Get ( ) , " MessageLog " )
. DecoratorStyleSet ( & FEditorStyle : : Get ( ) )
. AutoWrapText ( true )
+ SRichTextBlock : : HyperlinkDecorator ( TEXT ( " browser " ) , FSlateHyperlinkRun : : FOnClick : : CreateStatic ( & OnBrowserLinkClicked ) )
]
]
] ;
const FVector2D LaunchImageMaxSize ( 150.0f , 150.0f ) ;
for ( const FPlatformIconInfo & Info : LaunchImageNames )
{
const FString AutomaticImagePath = EngineAndroidPath / Info . IconPath ;
const FString TargetImagePath = GameAndroidPath / Info . IconPath ;
LaunchImageCategory . AddCustomRow ( Info . IconName )
. NameContent ( )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. Padding ( FMargin ( 0 , 1 , 0 , 1 ) )
. FillWidth ( 1.0f )
[
SNew ( STextBlock )
. Text ( Info . IconName )
. Font ( DetailLayout . GetDetailFont ( ) )
]
]
. ValueContent ( )
. MaxDesiredWidth ( 400.0f )
. MinDesiredWidth ( 100.0f )
[
SNew ( SHorizontalBox )
+ SHorizontalBox : : Slot ( )
. FillWidth ( 1.0f )
. VAlign ( VAlign_Center )
[
SNew ( SExternalImageReference , AutomaticImagePath , TargetImagePath )
. FileDescription ( Info . IconDescription )
// .RequiredSize(Info.IconRequiredSize)
. MaxDisplaySize ( LaunchImageMaxSize )
]
] ;
}
}
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
FReply FAndroidTargetSettingsCustomization : : OpenBuildFolder ( )
2014-03-14 14:13:41 -04:00
{
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
const FString BuildFolder = FPaths : : ConvertRelativePathToFull ( FPaths : : GetPath ( GameProjectPropertiesPath ) ) ;
FPlatformProcess : : ExploreFolder ( * BuildFolder ) ;
2014-03-14 14:13:41 -04:00
return FReply : : Handled ( ) ;
}
void FAndroidTargetSettingsCustomization : : CopySetupFilesIntoProject ( )
{
// First copy the manifest, it must get copied
FText ErrorMessage ;
- Generate AndroidManifest.xml from ProjectSettings
- Moved some Android settings to ProjectSettings, re-enabled SDK settings
- Removed SigningConfig.xml, and moved those settings into project settings
- Added concept of NotForLicensees and NoRedist engine and project config settings
- Removed BaseInternalGame.ini, replaced with NotForLicensees/BaseGame.ini
- Moved User*.ini to end of .ini hierarchy
- Added support for CLASS_GlobalUserConfig, so their settings will be saved to <AppData>/.../User*.ini (useful for SDK paths, etc)
- Enabled AndroidPlatformEditor module on Mac
- Changed Mac Build.sh to allow for Android on the commandline (just pass through if it's not an Xcode platform name)
- Iterative Android packaging now looks at just the important .ini sections, NOT entire .ini files
#codereview jamie.dale,james.moran,michael.trepka,robert.jones,chris.babcock
[CL 2413870 by Josh Adams in Main branch]
2015-01-21 11:17:55 -05:00
if ( ! SourceControlHelpers : : CopyFileUnderSourceControl ( GameProjectPropertiesPath , EngineProjectPropertiesPath , LOCTEXT ( " ProjectProperties " , " Project Properties " ) , /*out*/ ErrorMessage ) )
2014-03-14 14:13:41 -04:00
{
FNotificationInfo Info ( ErrorMessage ) ;
Info . ExpireDuration = 3.0f ;
FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
}
else
{
// Now try to copy all of the icons, etc... (these can be ignored if the file already exists)
for ( const FPlatformIconInfo & Info : IconNames )
{
const FString EngineImagePath = EngineAndroidPath / Info . IconPath ;
const FString ProjectImagePath = GameAndroidPath / Info . IconPath ;
if ( ! FPaths : : FileExists ( ProjectImagePath ) )
{
SourceControlHelpers : : CopyFileUnderSourceControl ( ProjectImagePath , EngineImagePath , Info . IconName , /*out*/ ErrorMessage ) ;
}
}
2015-08-28 19:34:42 -04:00
// Now try to copy all of the launch images... (these can be ignored if the file already exists)
for ( const FPlatformIconInfo & Info : LaunchImageNames )
{
const FString EngineImagePath = EngineAndroidPath / Info . IconPath ;
const FString ProjectImagePath = GameAndroidPath / Info . IconPath ;
if ( ! FPaths : : FileExists ( ProjectImagePath ) )
{
SourceControlHelpers : : CopyFileUnderSourceControl ( ProjectImagePath , EngineImagePath , Info . IconName , /*out*/ ErrorMessage ) ;
}
}
2014-03-14 14:13:41 -04:00
// and copy the other files (aren't required)
2015-09-30 18:10:41 -04:00
//SourceControlHelpers::CopyFileUnderSourceControl(GameProguardPath, EngineProguardPath, LOCTEXT("Proguard", "Proguard Settings"), /*out*/ ErrorMessage);
2014-03-14 14:13:41 -04:00
}
SavedLayoutBuilder - > ForceRefreshDetails ( ) ;
}
2014-04-23 19:40:10 -04:00
void FAndroidTargetSettingsCustomization : : CopyGooglePlayAppIDFileIntoProject ( )
{
FText ErrorMessage ;
if ( ! SourceControlHelpers : : CopyFileUnderSourceControl ( GameGooglePlayAppIDPath , EngineGooglePlayAppIDPath , LOCTEXT ( " GooglePlayAppID " , " GooglePlayAppID.xml " ) , /*out*/ ErrorMessage ) )
{
FNotificationInfo Info ( ErrorMessage ) ;
Info . ExpireDuration = 3.0f ;
FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
}
SavedLayoutBuilder - > ForceRefreshDetails ( ) ;
}
void FAndroidTargetSettingsCustomization : : OnAppIDModified ( )
{
check ( SetupForPlatformAttribute . Get ( ) = = true ) ;
FManifestUpdateHelper Updater ( GameGooglePlayAppIDPath ) ;
const FString AppIDTag ( TEXT ( " name= \" app_id \" > " ) ) ;
const FString ClosingTag ( TEXT ( " </string> " ) ) ;
const FString NewIDString = GetDefault < UAndroidRuntimeSettings > ( ) - > GamesAppID ;
Updater . ReplaceKey ( AppIDTag , ClosingTag , NewIDString ) ;
Updater . Finalize ( GameGooglePlayAppIDPath ) ;
}
2014-03-14 14:13:41 -04:00
//////////////////////////////////////////////////////////////////////////
Merging //UE4/Release-4.11 to //UE4/Main (up to CL#2852902)
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2835191 on 2016/01/19 by Nick.Whiting
Invert the y-axis on the SteamVR controllers to match the convention of the engine and the rest of the gamepads
#jira UE-22705
Change 2835686 on 2016/01/20 by Gareth.Martin
Fixed landscape material instances not being updated if holes are painted on a landscape that doesn't have the landscape visibility mask node in the material and then the visibility mask node is added to the material later.
#jira UE-18187
Change 2835767 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Added a cursor to TopDown template (C++ version) to match the BP version.
Change 2835772 on 2016/01/20 by Richard.Hinckley
#jira UE-25499 Adding the material asset for the C++ TopDown template's cursor.
Change 2835811 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25699 Added Validity Checks in BP logic, unchecked CDO for Pixel Ship, to Fix Log Warnings
#jira UE-25704 Adjusted Matinee to happen at Box Location
#jira UE-25688 Adjusted Player Starts
#jira UE-25693 Adjusted Player Starts
Change 2835863 on 2016/01/20 by Gareth.Martin
Fixed crash in the landscape ramp and mirror tools if the streaming level containing the landscape is hidden (or possibly if the landscape actor is deleted)
#jira UE-24883
Change 2835889 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25698 Enabled V-sync, also fixed up player Respawn Issue
Change 2835995 on 2016/01/20 by Jamie.Dale
The output log now hard-wraps lines to prevent long lines causing performance issues
#jira UE-24187
Change 2836052 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25675 Added Blocking Volume to prevent Player from Falling off map
#jira UE-25676 Added Blocking Volumes so that the Player doesn't get stucl at awkward corners under the Bridge
Change 2836137 on 2016/01/20 by Chad.Taylor
Vehicle and VehicleAdv template content fixes for new VR camera
#jira UE-25507
Change 2836166 on 2016/01/20 by Gareth.Martin
Fixed hiding a streaming level containing a landscape causing the landscape editor to switch to the "New Landscape" tool instead of exiting
#jira UE-25093
Change 2836174 on 2016/01/20 by Chad.Taylor
IHeadMountedDisplay crash fix associated with accessing a dangling pointer.
#jira UE-25272
Change 2836179 on 2016/01/20 by Jamie.Dale
Optimized FShapedGlyphSequence reverse look-up
There's now a reverse look-up map of cluster indices to their glyph data in order to avoid brute force looping
#jira UE-24187
Change 2836286 on 2016/01/20 by Chris.Babcock
Update Qualcomm TextureConverter for OSX
#jira UE-22092
#ue4
#android
Change 2836328 on 2016/01/20 by Nick.Darnell
Fixing a problem with widget components crashing on destruction with the render commands to pre/post render for window render commands needing access to the policy, but it potentially being deleted. Inserting a NoOp command that keeps the shared ptr alive through the RHI render process.
#jira UE-25752
Change 2836342 on 2016/01/20 by Nick.Darnell
Depending on shutdown order, the Slate Renderer may go away, and then render data handles may not be collected correctly because they are trying to reference a pointer that's no longer valid and cause a crash on exit. The correct approach would be to have render handles actually have a pointer back to who owns them, in this case the RHI Resource Manager, which is still alive and well at this point in the pipeline. Then if the resource manager is collected, it forces all handles to get cleaned up correctly, or if the handles are collected first, they can be sure they've got a valid pointer back to the resource manager.
#jira UE-25753
Change 2836358 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25710 Replaced Deprecated Nodes
Change 2836510 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25718 Adjsuted BP to make pointer decal rotate in the direction of surface
Change 2836564 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25716 Added bool to store last Moved Direction
Change 2836697 on 2016/01/20 by Taizyd.Korambayil
#jira UE-25740 Removed unused VR Nodes to remove Log errors on Mac
Change 2836725 on 2016/01/20 by Peter.Sauerbrei
workaround for thread race when trying to release the TargetDeviceService endpoint after an unclaim message is sent
#jira UE-25123
Change 2836782 on 2016/01/20 by Jamie.Dale
Added FTextLayout::AddLines
This is similar to AddLine, however it allows you to add multiple lines in a single call, thus avoiding the re-justification cost associated with each call to AddLine.
AddLine has also been changed to take the same structure type as AddLines (which takes an array of these structures), and the existing version of AddLine has been deprecated.
#jira UE-24187
Change 2836801 on 2016/01/20 by Jeff.Campeau
[CL 2857187 by Matthew Griffin in Main branch]
2016-02-05 11:54:00 -05:00
# undef LOCTEXT_NAMESPACE