2016-12-08 08:52:44 -05:00
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
# pragma once
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#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]
2016-11-23 15:48:37 -05:00
# include "CoreMinimal.h"
# include "SlateFwd.h"
# include "AddToProjectConfig.h"
# include "GameProjectGenerationModule.h"
# include "HardwareTargetingSettings.h"
2014-09-09 12:16:36 -04:00
2015-04-22 16:30:31 -04:00
class UTemplateProjectDefs ;
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#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]
2016-11-23 15:48:37 -05:00
struct FProjectDescriptor ;
2015-02-16 04:29:11 -05:00
enum class EClassDomain : uint8 ;
2014-10-13 11:47:21 -04:00
2014-09-09 12:16:36 -04:00
struct FProjectInformation
{
FProjectInformation ( FString InProjectFilename , bool bInGenerateCode , bool bInCopyStarterContent , FString InTemplateFile = FString ( ) )
: ProjectFilename ( MoveTemp ( InProjectFilename ) )
, TemplateFile ( MoveTemp ( InTemplateFile ) )
, bShouldGenerateCode ( bInGenerateCode )
, bCopyStarterContent ( bInCopyStarterContent )
, TargetedHardware ( EHardwareClass : : Desktop )
, DefaultGraphicsPerformance ( EGraphicsPreset : : Maximum )
{
}
2015-06-29 08:27:10 -04:00
2014-09-09 12:16:36 -04:00
FString ProjectFilename ;
FString TemplateFile ;
bool bShouldGenerateCode ;
bool bCopyStarterContent ;
EHardwareClass : : Type TargetedHardware ;
EGraphicsPreset : : Type DefaultGraphicsPerformance ;
} ;
2015-03-17 09:34:18 -04:00
DECLARE_DELEGATE_RetVal_OneParam ( bool , FProjectDescriptorModifier , FProjectDescriptor & ) ;
2015-04-22 16:30:31 -04:00
class GAMEPROJECTGENERATION_API GameProjectUtils
2014-03-14 14:13:41 -04:00
{
public :
2014-05-14 06:47:25 -04:00
/** Where is this class located within the Source folder? */
enum class EClassLocation : uint8
{
/** The class is going to a user defined location (outside of the Public, Private, or Classes) folder for this module */
UserDefined ,
/** The class is going to the Public folder for this module */
Public ,
/** The class is going to the Private folder for this module */
Private ,
/** The class is going to the Classes folder for this module */
Classes ,
} ;
2015-04-17 10:02:43 -04:00
/** Used as a function return result when adding new code to the project */
enum class EAddCodeToProjectResult : uint8
{
/** Function has successfully added the code and hot-reloaded the required module(s) */
Succeeded ,
/** There were errors with the input given to the function */
InvalidInput ,
/** There were errors when adding the new source files */
FailedToAddCode ,
/** There were errors when hot-reloading the new module */
FailedToHotReload ,
} ;
2014-09-26 11:29:33 -04:00
/** Used as a function return result when a project is duplicated when upgrading project's version in Convert project dialog - Open a copy */
enum class EProjectDuplicateResult : uint8
{
/** Function has successfully duplicated all project files */
Succeeded ,
/** There were errors while duplicating project files */
Failed ,
/** User has canceled project duplication process */
UserCanceled
} ;
2014-03-14 14:13:41 -04:00
/** Returns true if the project filename is properly formed and does not conflict with another project */
static bool IsValidProjectFileForCreation ( const FString & ProjectFile , FText & OutFailReason ) ;
/** Opens the specified project, if it exists. Returns true if the project file is valid. On failure, OutFailReason will be populated. */
static bool OpenProject ( const FString & ProjectFile , FText & OutFailReason ) ;
/** Opens the code editing IDE for the specified project, if it exists. Returns true if the IDE could be opened. On failure, OutFailReason will be populated. */
static bool OpenCodeIDE ( const FString & ProjectFile , FText & OutFailReason ) ;
/** Creates the specified project file and all required folders. If TemplateFile is non-empty, it will be used as the template for creation. On failure, OutFailReason will be populated. */
2015-06-29 08:27:10 -04:00
static bool CreateProject ( const FProjectInformation & InProjectInfo , FText & OutFailReason , FText & OutFailLog , TArray < FString > * OutCreatedFiles = nullptr ) ;
2014-03-14 14:13:41 -04:00
/** Prompts the user to update his project file, if necessary. */
static void CheckForOutOfDateGameProjectFile ( ) ;
2014-05-01 10:58:35 -04:00
/** Warn the user if the project filename is invalid in case they renamed it outside the editor */
static void CheckAndWarnProjectFilenameValid ( ) ;
2014-06-27 15:23:15 -04:00
/** Checks out the current project file (or prompts to make writable) */
2014-07-22 15:58:02 -04:00
static void TryMakeProjectFileWriteable ( const FString & ProjectFile ) ;
2014-06-27 15:23:15 -04:00
2014-07-22 15:58:02 -04:00
/** Updates the given project file to an engine identifier. Returns true if the project was updated successfully or if no update was needed */
static bool UpdateGameProject ( const FString & ProjectFile , const FString & EngineIdentifier , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
2015-01-16 15:39:47 -05:00
/**
2015-02-16 04:29:11 -05:00
* Opens a dialog to add code files or blueprints to the current project .
2015-01-16 15:39:47 -05:00
*
2015-02-16 04:29:11 -05:00
* @ param Config Configuration options for the dialog
* @ param InDomain The domain of the class we ' re creating ( native or blueprint )
2015-01-16 15:39:47 -05:00
*/
2015-02-16 04:29:11 -05:00
static void OpenAddToProjectDialog ( const FAddToProjectConfig & Config , EClassDomain InDomain ) ;
2014-03-14 14:13:41 -04:00
/** Returns true if the specified class name is properly formed and does not conflict with another class */
2015-02-16 04:29:11 -05:00
static bool IsValidClassNameForCreation ( const FString & NewClassName , FText & OutFailReason ) ;
/** Returns true if the specified class name is properly formed and does not conflict with another class, including source/header files */
2014-11-12 11:31:40 -05:00
static bool IsValidClassNameForCreation ( const FString & NewClassName , const FModuleContextInfo & ModuleInfo , const TSet < FString > & DisallowedHeaderNames , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
2015-01-16 15:39:47 -05:00
/** Returns true if the specified class is a valid base class for the given module */
static bool IsValidBaseClassForCreation ( const UClass * InClass , const FModuleContextInfo & InModuleInfo ) ;
/** Returns true if the specified class is a valid base class for any of the given modules */
static bool IsValidBaseClassForCreation ( const UClass * InClass , const TArray < FModuleContextInfo > & InModuleInfoArray ) ;
2015-04-17 10:02:43 -04:00
/** Adds new source code to the project. When returning Succeeded or FailedToHotReload, OutSyncFileAndLineNumber will be the the preferred target file to sync in the users code editing IDE, formatted for use with GenericApplication::GotoLineInSource */
static EAddCodeToProjectResult AddCodeToProject ( const FString & NewClassName , const FString & NewClassPath , const FModuleContextInfo & ModuleInfo , const FNewClassInfo ParentClassInfo , const TSet < FString > & DisallowedHeaderNames , FString & OutHeaderFilePath , FString & OutCppFilePath , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Loads a template project definitions object from the TemplateDefs.ini file in the specified project */
static UTemplateProjectDefs * LoadTemplateDefs ( const FString & ProjectDirectory ) ;
2014-08-22 11:35:01 -04:00
/** @return The number of code files in the currently loaded project */
2014-03-14 14:13:41 -04:00
static int32 GetProjectCodeFileCount ( ) ;
2014-08-22 11:35:01 -04:00
/**
* Retrieves file and size info about the project ' s source directory
* @ param OutNumFiles Contains the number of files within the source directory
* @ param OutDirectorySize Contains the combined size of all files in the directory
*/
static void GetProjectSourceDirectoryInfo ( int32 & OutNumFiles , int64 & OutDirectorySize ) ;
2014-03-14 14:13:41 -04:00
/** Returns the uproject template filename for the default project template. */
static FString GetDefaultProjectTemplateFilename ( ) ;
2014-12-11 16:39:39 -05:00
/** Compiles a project while showing a progress bar, and offers to open the IDE if it fails. */
static bool BuildCodeProject ( const FString & ProjectFilename ) ;
2015-04-09 11:11:48 -04:00
/** Creates code project files for a new game project. On failure, OutFailReason and OutFailLog will be populated. */
static bool GenerateCodeProjectFiles ( const FString & ProjectFilename , FText & OutFailReason , FText & OutFailLog ) ;
2014-03-14 14:13:41 -04:00
/** Returns true if there are starter content files available for instancing into new projects. */
static bool IsStarterContentAvailableForNewProjects ( ) ;
2014-05-16 10:47:37 -04:00
/**
2014-08-04 18:21:05 -04:00
* Get the information about any modules referenced in the . uproject file of the currently loaded project
2014-05-16 10:47:37 -04:00
*/
2014-08-04 18:21:05 -04:00
static TArray < FModuleContextInfo > GetCurrentProjectModules ( ) ;
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3050373)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2973846 on 2016/05/11 by Jamie.Dale
Exposed FConfigValue::ExpandValue and added FConfigValue::CollapseValue
These are both static and can be used to expand or collapse the macros used in our config files (mostly when dealing with paths), in code that has to deal with the config system, but isn't internal to the config system (mostly things that deal with default configs outside of UObjects).
The old non-static version of FConfigValue::ExpandValue is now FConfigValue::ExpandValueInternal, which just calls FConfigValue::ExpandValue on SavedValue and ExpandedValue.
This also changes some code that was using FString.Replace to use FString.ReplaceInline. This reduces allocations, and also allows us to avoid another string comparison to see whether the strings are identical (as ReplaceInline returns the number of replacements that were made).
Change 2973847 on 2016/05/11 by Jamie.Dale
Changing the loading phase in the localization dashboard now writes to the default config
#jira UE-30482
Change 2973866 on 2016/05/11 by Jamie.Dale
Deprecated some functions that were taking an unused position.
These unused parameters caused confusion and lead to UE-30276. The old versions have been deprecated, and new versions without those parameters have been added. Existing code has been updated to call the non-deprecated version.
- FViewportFrame::ResizeFrame
- FSceneViewport::ResizeFrame
- FSceneViewport::ResizeViewport
Change 2974505 on 2016/05/11 by Nick.Darnell
PR #2309: Added Combobox styling (Contributed by Chris528)
Change 2975241 on 2016/05/12 by Richard.TalbotWatkin
Made sRGB Preview the default in the Color Picker.
Change 2975390 on 2016/05/12 by Jamie.Dale
Made sure that en-US-POSIX is in our list of available cultures
Some people use machine tags as their native text, so they need an invariant machine like culture to use as their native culture. en-US-POSIX is perfect for this.
Change 2975411 on 2016/05/12 by Jamie.Dale
PR #2237: Fixed formatting of Error_TooManyMaterials message (Contributed by pfranz)
Change 2975559 on 2016/05/12 by Jamie.Dale
Dialogue Wave VO direction can now be localized
This is gathered as editor-only data.
#jira UE-28715
Change 2975710 on 2016/05/12 by Jamie.Dale
Implemented UObject::IsLocalizedResource to test whether the object belongs to a localized package
Change 2975728 on 2016/05/12 by Jamie.Dale
Exported dialogue scripts now include a column that says whether they have a localized recording of that line of dialogue
#jira UETOOL-794
Change 2975763 on 2016/05/12 by Jamie.Dale
We no longer warn if asked to check out a UNC path when running the GatherText commandlets
#jira UE-25833
Change 2975766 on 2016/05/12 by Jamie.Dale
Resolved some loc key conflicts
#jira UE-25833
Change 2975774 on 2016/05/12 by Jamie.Dale
PO files now only contain a single entry in the case of a native translation being exported
They used to contain the original entry, as well as an entry for the native translation, however the original entry would never be used.
This change also cleans up some directory walking code that was looking for archive files, and replaces it with code to load the specific archive file.
Change 2975776 on 2016/05/12 by Jamie.Dale
Downgraded a PO file import warning that isn't really an issue
#jira UE-25833
Change 2976675 on 2016/05/13 by Jamie.Dale
Fixed some more fallout from changes to use the window position when changing the game viewport mode
- FSceneViewport::ResizeFrame:
- Fixed the HMD monitor info setting the wrong variables.
- Fixed SetWindowMode and ResizeViewport potentially being passed two different modes.
- We now only move the window if we need to (this avoids issues with WindowedFullscreen window positioning).
- FWindowsWindow::MoveWindowTo:
- Now treats the screen space position it's given as relative to the top-left of the window, rather than the top-left of the windows' client area.
- FWindowsApplication:
- WM_MOVE was passing a screen space position relative to the top-left of the windows' client area, rather than its window area like Slate expected.
#jira UE-30276
#jira UE-30677
Change 2976804 on 2016/05/13 by Jamie.Dale
Slight optimization to FICUInternationalization::FindOrMakeCulture to avoid hitting the filesystem until we know we need to
Change 2976967 on 2016/05/13 by Alexis.Matte
#jira UE-30687 Cannot import a skeletal mesh scale to zero
Change 2977042 on 2016/05/13 by Alexis.Matte
#jira UE-29952 log a warning if fbx exceed the maximum number of LOD.
#2326 Github PR
#code review matt.kuhlenschmidt
Change 2977074 on 2016/05/13 by Jamie.Dale
Follow up to CL# 2976804 to avoid a potential change in behavior
Change 2977076 on 2016/05/13 by Jamie.Dale
Some tidy up and optimization to SCulturePicker
Change 2977327 on 2016/05/13 by Alex.Delesky
Now deleting the Redirector package on Redirector Fix Up rather than simply removing it from the Content Browser.
#jira UE-30423
Change 2977499 on 2016/05/13 by Alexis.Matte
#jira UE-29475
Enable UStruct child property to be favorite
Change 2978415 on 2016/05/16 by Jamie.Dale
We now pre-load all the culture data when starting the editor to avoid a UI hitch later
Change 2978517 on 2016/05/16 by Alex.Delesky
#jira UE-29406
Creating a static mesh from a geometry brush and then attempting to reimport the mesh will no longer crash the editor.
Change 2978518 on 2016/05/16 by Alex.Delesky
#jira UE-28210
The FBX Importer no longer runs cleanup upon failing to import an FBX file and won't crash the engine the next time an FBX is imported within the same editor session.
Change 2978556 on 2016/05/16 by Alexis.Matte
Fbx tests automation
#jira UE-29635
Change 2978797 on 2016/05/16 by Alexis.Matte
#jira UE-30774
- prevent baking the pivot if we transform the vertex with the absolute transform.
- Also make sure we set the identity for the Max puivot in case we dont bake the pivot and we dont transform the vertex with the absolute transform.
#code review matt.kuhlenschmidt
Change 2978965 on 2016/05/16 by Alexis.Matte
FBX importer, fix the socket rotation.
#jira UE-30094
Change 2980613 on 2016/05/17 by Jamie.Dale
Moved the XLOC UAT localization provider to be publicly accessible
Change 2980614 on 2016/05/17 by Jamie.Dale
Reference update for project move
Change 2980633 on 2016/05/17 by Jamie.Dale
Made the culture mapping used between XLOC and UE4 configurable on a per-project basis
You can now override GetEpicCultureToXLocLanguageId in your custom localization provider in order to change the default mappings.
Change 2980836 on 2016/05/17 by Jamie.Dale
Added -LocalizationSteps flag to allow you to only run a subset of the UAT "Localise" command
You can pass any of the following steps: Download, Gather, Import, Export, Compile, GenerateReports, Upload
Change 2982700 on 2016/05/18 by Jamie.Dale
Fixed the loc package gather potentially adding the same source location multiple times
Change 2983906 on 2016/05/19 by Jamie.Dale
Slight cleanup of the way we register localization gatherer callbacks
Change 2984356 on 2016/05/19 by Chris.Wood
Removed temporary analytics API change needed for earlier hot fix
[UE-31005] - Undo temp Hardware Survey API change from 4.10 - CL 2782817
Change 2986679 on 2016/05/23 by Alex.Delesky
#jira UE-24747 - Importing FBX files that contain meshes that do not have non-degenerate triangles will no longer crash the editor on import, and will warn the user that the meshes are bad.
Change 2986798 on 2016/05/23 by Alex.Delesky
#jira UE-31136 - Chord Input fields will no longer display the blinking edit cursor if they do not have focus.
Change 2987106 on 2016/05/23 by Alexis.Matte
Fbx importer, fail import must not create a package in the content browser
#jira UE-31154
Change 2987563 on 2016/05/23 by Alex.Delesky
#jira UE-30988 - Changed the default window mode when launching a game from the .uproject file to Windowed
Change 2987564 on 2016/05/23 by Alex.Delesky
#jira UE-28856 - Fixed a crash that could potentially occur when starting up PIE while dragging objects like widgets in the editor.
Change 2988321 on 2016/05/24 by Jamie.Dale
Added a way to backup and restore the selection state of a level (its actors and components) in a way that can be reapplied even if the level is reloaded
Change 2988708 on 2016/05/24 by Jamie.Dale
Fix for crash when missing the fallback/last resort font
Change 2988782 on 2016/05/24 by Jamie.Dale
Added the ability to version each localized string individually when loaded into the localization manager
The single 32-bit global history has now been replaced with two 16-bit histories. One is global, and is updated whenever the culture is changed (or a LocRes file is loaded), and the other is local to each string, and is updated if the display string is changed outside of a culture update (to handle cases where the display string is changed, but the key is preserved). Changing the global history will reset all local histories.
Because of the change from an int32 to a uint16, 0, rather than INDEX_NONE, is now considered the "unset" value for a history.
Change 2988856 on 2016/05/24 by Jamie.Dale
Added a way to get the package(s) of the object(s) being edited by a property panel
Typically the package is just the outermost of the object being edited, however there are some cases where this may not be the case:
- UMG widgets edit a transient copy of the real data, so we use the SetObjectPackageOverrides to override the package these objects should use to be the real asset package.
- Structs (UDS, Data Table, etc) don't have a way to get to their package, so you have to specify it on their FStructOnScope instance (see FStructOnScope::GetPackage and FStructOnScope::SetPackage). This has been hooked up for the UDS and Data Table editors.
Change 2988955 on 2016/05/24 by Alex.Delesky
#jira UE-30645 - Adding in support for splash images to support .png and .jpg files. In general, this adds multi-extension support for external image references and external image picker modules.
Git Request #2376
Change 2989418 on 2016/05/25 by Jamie.Dale
Added a way to count text references within a package that match the given search criteria
This can be used to detect whether a localization ID is unique within its package.
The following search modes are available:
- MatchId: Detect a reference if it matches the given ID (ignoring the source text)
- MatchSource: Detect a reference if it matches the given ID and source string
- MismatchSource: Detect a reference if it matches the given ID but has a different source string
Change 2989436 on 2016/05/25 by Jamie.Dale
Added "root-level" meta-data (meta-data associated with the package rather than an object within it)
Change 2989471 on 2016/05/25 by Alexis.Matte
Fbx scene importer, fix naming clash when creating package we now also look in memory to find existing package not just on disk
Change 2989639 on 2016/05/25 by Jamie.Dale
Added static version of FName::IsValidXName
This allows you to verify name-like strings without having to convert them to an FName (and thus add them to the name table)
Change 2989716 on 2016/05/25 by Alex.Delesky
#jira UE-30828 - The Standalone Session Frontend will now render the names of automation tests correctly instead of as solid white blocks.
Change 2990100 on 2016/05/25 by Alexis.Matte
Fix crash when reimporting a mesh that originaly exceed the maximum number of LOD
#jira UE-30907
Change 2991442 on 2016/05/26 by Bob.Tellez
#UE4 Fix components in world not rendering when saved without a physics scene.
Change 2991736 on 2016/05/26 by Bob.Tellez
#UE4 Fix duplicated worlds not being initialized when inactive. Re-enabled duplication of worlds in the content browser.
Change 2991942 on 2016/05/26 by Alex.Delesky
#jira UE-31012 - Setting a Decimal Grid Interval value to 0 and using it will no longer crash the editor or cause an editor crash on startup.
Change 2991994 on 2016/05/26 by Alex.Delesky
#jira UE-31177 - Attempting to export an entire level as an object file and choosing to export all materials as images will no longer crash the editor.
Change 2994037 on 2016/05/30 by Alexis.Matte
Add Fbx Automation Tests
- static mesh import reimport (sections and materials)
- skeletal mesh import and reimport (sections and materials also bone position)
- static/skeletal mesh LODs (import, add, reimport)
- rigid mesh (import, reimport)
Change 2994253 on 2016/05/31 by Alexis.Matte
Mikkt crash when computing the normals if there is more vertex then the number of wedge
#jira UE-29143
Change 2994260 on 2016/05/31 by Alexis.Matte
Make sure we cannot modify fbx test plan when json file is read only
Change 2994431 on 2016/05/31 by Alex.Delesky
#jira UE-21900 - The scale widget should now render all axes when using an orthographic camera.
Change 2994432 on 2016/05/31 by Alex.Delesky
#jira UE-31328 - New objects dragged into the scene will now comply with the Surface Snapping option in the viewport, and will not use the Surface Offset if snapping is disabled.
Change 2994537 on 2016/05/31 by Richard.TalbotWatkin
Fixed potential crash in the Mesh Paint tool when non-transactable actors are in the SelectedActors list following a Redo.
#jira UE-31172 - Crash related to Vertex Painting - MeshPaint!CastChecked<AActor,UObject>()
Change 2994983 on 2016/05/31 by Richard.TalbotWatkin
Added some guard code to protect against a crash when editing geometry. Repro currently unknown, ensure was added in order to try to get more information.
#jira UE-30820 - UT EDITOR: CRASH: Crash in Public Release CL#2973693
Change 2995022 on 2016/05/31 by Jamie.Dale
PR #2428: Added missing END_OPTIMIZATION macro to SOutputLog (Contributed by MatzeOGH)
Change 2995027 on 2016/05/31 by Jamie.Dale
PR #2409: fixed a small typo in GraphEditor.h (Contributed by MatzeOGH)
Change 2995963 on 2016/06/01 by Alex.Delesky
#jira UE-31317 - The transform gizmo will no longer block the placement of a material onto a mesh.
Change 2997002 on 2016/06/01 by Cody.Albert
Fix to ensure ActiveTopLevelWindow is properly set after a window is destroyed
#jira UE-31448
Change 2998013 on 2016/06/02 by Alexis.Matte
Prevent static mesh materials array to grow when using the reset button in the staticmesh editor.
#jira UE-12931
Change 2998370 on 2016/06/02 by Alexis.Matte
Fbx Automation, add some import LOD test in case the options are not ok
Change 2999709 on 2016/06/03 by Jamie.Dale
Fixed some issues with gathering text from BP bytecode
Bytecode in Blueprints is very volatile, and can only be safely gathered after it's been compiled (which is not guaranteed to have happened by the time we save the package). This change avoids caching any assets that contain scripts (non-data-only Blueprints), and instead will always load them to perform a gather (which will ensure the Blueprint bytecode is up-to-date due to compile-on-load).
Change 2999755 on 2016/06/03 by Richard.TalbotWatkin
Fixes to Spline Mesh collision generation.
- Fixed a serious issue with DDC ID generation, in that the static mesh wasn't forming a part of the key, hence any two spline meshes with identical properties but different meshes would yield the same cache entry.
- Fixed how different collision boxes are transformed when rebuilding physics meshes. Convex collision transforms are now correctly taken into account, and spherical and capsule collision now gets correctly translated when a scale is applied to the start or end of the spline mesh.
- Optimized physics rebuilding. A new BodySetup object is now only created when needed, otherwise it is reused.
#jira UE-31361 - Splines handle box collision and collision from other shapes differently
Change 2999973 on 2016/06/03 by Jamie.Dale
We now skip bulk data when detecting text references
#jira UE-31596
Change 3000159 on 2016/06/03 by Alex.Delesky
#jira UE-30244 - Added a safeguard against a potential crash when editing BSP brushes before placing another BSP brush into the level.
Change 3001814 on 2016/06/06 by Alexis.Matte
Make sure the staticmesh Materials list dont grow when we reimport or override a LOD other then the base mesh.
Add a fbx test to make sure the problem is flag by automation test
#jira UE-1394
Change 3001820 on 2016/06/06 by Alex.Delesky
#jira UE-19079 - Widget Blueprints should no longer crash when dragging widgets from one blueprint to a second and then compiling the second blueprint.
Change 3001915 on 2016/06/06 by Alexis.Matte
Make sure we check attribute type before checking attribute unique ID in case of unique id clash.
#jira UE-31214
Change 3002026 on 2016/06/06 by Alexis.Matte
Importing morph target should not import textures like materials since the base mesh already import thoses.
UDN Question:
https://udn.unrealengine.com/questions/293973/does-importing-an-fbx-with-morph-targets-cause-a-m.html
Change 3002623 on 2016/06/06 by Jamie.Dale
Fixing more loc conflicts
Change 3002883 on 2016/06/06 by Jamie.Dale
Adding retry when dealing with OneSky
This is attempting to compensate for some timeouts with OneSky, which were also noticed when testing UE-31413
Change 3003004 on 2016/06/06 by Trung.Le
#jira UE-13101 - Make "Description" field for a BluePrint Function multiline
Change 3003859 on 2016/06/07 by Alexis.Matte
#jira UE-30436 Refresh the property editor when a array element is added, remove, insert, delete and the property is favorite
Change 3004132 on 2016/06/07 by Jamie.Dale
Fixed a hash conflict that could occur when both the case-sensitive and case-insensitive FName hashes were identical
This resulted in the case-preserving FName being added to the head of the linked list for the bucket, which caused any subsequent name lookups to return that name index for the comparison index (since it matched an insensitive string comparison), rather than the name index of the first case-variant of that name that was added to the bucket.
This change has new entries be inserted at the tail of the list, which ensures that enumeration for a case-insensitive name will always find the same entry in the bucket (the first one that was ever added) and will continue to compare correctly.
Change 3004286 on 2016/06/07 by Jamie.Dale
Ensured that assignments that publish new names to the bucket are atomic
Change 3004310 on 2016/06/07 by Jamie.Dale
Ensured FName internal hashes are returned as uint16
Change 3004381 on 2016/06/07 by Jamie.Dale
FAsyncPackage now creates the meta-data before processing the remaining exports
This matches the behavior of FLinkerLoad::LoadAllObjects, as other objects may depend on the meta-data being loaded before them.
Change 3004765 on 2016/06/07 by Alex.Delesky
#jira UE-31498 - Material thumbnails will now render the full sphere rather than an extreme close-up of the material.
Change 3005754 on 2016/06/08 by Trung.Le
Allow whitespace for meta class names
#jira UE-31668
Change 3005755 on 2016/06/08 by Stephan.Jiang
UMGSequencePlayer implements GetPlaybackContext() and return UserWidget->GetWorld() if it's valid
#jira UE-31299
Change 3006512 on 2016/06/08 by Alex.Delesky
#jira UE-31572 - The "All Classes" tab in the Modes panel will now refresh when a placeable asset is created, renamed, or deleted without needed to navigate away from the tab first.
Change 3006760 on 2016/06/08 by Jamie.Dale
Added support for stable localization keys
This feature adds support for preserving the existing key of an FText property when editing the source string, providing that it is the only reference to that string within the package. A side effect of this is that you're now able to specify custom keys for FText properties since we can now verify that the custom key won't cause an identity conflict.
In order to limit the search domain for uniqueness to a single package, we've added the concept of a "localization namespace" to packages (stored in the meta-data). Each package is given a unique namespace, which is appended to the user-defined namespace of the text when it is modified, saved, or duplicated. This package namespace ensures that the same user-defined namespace and key may be used in different packages without causing an identity conflict.
In order to access the package namespace within the Core code that hosts FText (which doesn't know about UPackage), FArchive now provides a GetLocalizationNamespace function to access the package namespace within the Core code, and a SetLocalizationNamespace function for CoreUObject and Engine code to pass down the package namespace from their packages.
If you have an archive that handles duplicating objects into a different package, or duplicating packages themselves, then you'll want to make sure it's setting the package namespace correctly. FObjectReader and FObjectWriter have been updated to do this, and serve as a good example. FDuplicateDataReader (used by StaticDuplicateObject), and FCopyPropertiesArchiveObjectWriter (used when compiling Blueprints) have also been updated to set the package namespace, as they both handle copying objects between packages. TextNamespaceUtil provides a suite of functions for getting at (or setting) the namespace for a package.
Keys will start to stabilize naturally over time once this feature is enabled, however the StabilizeLocalizationKeys commandlet may also be used to stabilize all the keys for a game at once. Running it for a game under source control would look something like this:
MyGame -run=StabilizeLocalizationKeys -IncludeGame -NativeCulture=en -EnableSCC
This commandlet also updates your localization archives to use the new text identities, however you'll still need to run a localization gather and localization compile before the updated translations will be available for your game.
Note: This feature is currently disabled via the USE_STABLE_LOCALIZATION_KEYS define. It will be enabled at a later date.
#jira UETOOL-796
Change 3007501 on 2016/06/09 by Trung.Le
#jira UE-31722
Fix MaterialFunctions crash when editing text in Libraries Category Text field. Solution: Removed PredEdit and PostEdit from IEditableTextProperty, its derived types and other code that was calling them. The new SetText method already calls NotifyPreChange and NotifyPostChange to properly create/destroy ScopedTransaction.
Change 3007524 on 2016/06/09 by Jamie.Dale
Added some additional checks to avoid re-keying text when duplicating for PIE
Change 3007564 on 2016/06/09 by Jamie.Dale
PR #2401: DataTable import/export improvements (Contributed by bozaro)
Change 3007653 on 2016/06/09 by Jamie.Dale
PR #2459: Generate JSON for nested structs in DataTable rows (Contributed by jorgenpt)
Change 3008019 on 2016/06/09 by Jamie.Dale
Updated structs to export as JSON when displaying them in the Data Table editor
This produces much cleaner results than using the text export method (which will use the internal names for user defined structs).
This also cleans up the FDataTableExporterCSV and FDataTableExporterJSON APIs so that you don't need to pass in a UDataTable if you're not going to use it.
#jira UE-29958
Change 3008052 on 2016/06/09 by Jamie.Dale
Fixed bug importing an array inside a JSON Data Table
This was noticed when testing a GitHub PR, but the JSON importer for a Data Table was appending the new data to the array rather than replacing it. It now clears the array prior to importing.
Change 3008875 on 2016/06/10 by Jamie.Dale
PR #2406: Git plugin: Fix for Git diff not working in UE 4.12 (and master) (Contributed by SRombauts)
Change 3008879 on 2016/06/10 by Jamie.Dale
PR #2484: Git Plugin: fix the Submit To Source Control menu broken by new "migrate" support in 4.12 (and master) (Contributed by SRombauts)
Change 3008990 on 2016/06/10 by Alex.Delesky
#jira UE-15699 - Submitting to source control via the editor should now check for current asset status before prompting the user to submit their changes. This should prevent files that had been previously deleted from being readded to source.
Change 3008991 on 2016/06/10 by Alex.Delesky
#jira UE-31688 - The Output Log will now automatically anchor to the bottom of the scroll bar when the user scrolls all the way down using the mouse wheel or clicking and dragging the content window.
Change 3010856 on 2016/06/13 by Alexis.Matte
#jira UE-31713 Fix a serialize issue for skeletal mesh with apex cloth.
Change 3011736 on 2016/06/13 by Jamie.Dale
Adding missing plurals.res file
This is needed to get plural form information from ICU.
#jira UETOOL-875
Change 3012387 on 2016/06/14 by Richard.TalbotWatkin
Disabled the Paste context menu action if the property is marked as EditConst.
#jira UE-27469 - User is able to paste values into a read-only setting
Change 3012971 on 2016/06/14 by Stephan.Jiang
Editor Preferences->Widget Designer now have two options to toggle the visibilities of widgets created from Engine content folder and Developers folder.
By default, visibility for engine content is off and developers is on
#jira UE-31657
Change 3013111 on 2016/06/14 by Jamie.Dale
Unified the number, percentage, and currency formatting between the ICU and Legacy text implementations
Removed all the old legacy number formatting code, and removed the calls to the ICU specific number formatting. Everything is now using FastDecimalFormat as this will allow some optimizations later when formatting numbers in FText::Format.
Change 3015438 on 2016/06/15 by Cody.Albert
Fixing ScrollBy function to calculate new scroll offset based on the current scroll offset and not the current desired scroll offset (which may not be the same during an animation)
#jira UE-32082
Change 3016782 on 2016/06/16 by Richard.TalbotWatkin
Corrected ConvexHull2D so that it returns an empty set of indices when passed an empty points array.
Change 3016949 on 2016/06/16 by Jamie.Dale
Added FastDecimalFormat overloads to write into an existing string
This helps avoid an extra allocation if you already have a pre-sized string that you're writing the number to (as is the case in FText::Format).
Change 3016952 on 2016/06/16 by Jamie.Dale
Changed an Add for an Emplace to avoid moving a temporary
Change 3016954 on 2016/06/16 by Jamie.Dale
Updated some FText code to avoid creating temporary objects just to move data through a hierarchy
There was some code in FText and its internal types that were using pass-by-value as a marshaller to move data through a hierarchy. This resulted in temporary objects being created and destroyed to facilitate the movement of data.
This change has all the internal FText code (private FText constructors, internal text data, and internal text history) take its movable types as an r-value reference. This avoids the temporary objects, but also makes it impossible to accidentally copy a construction argument when you meant to move it (you can still copy, but the copy must be explicit).
In addition to this, FText::FromString and FText::AsCultureInvariant now have two overloads, const FString& and FString&&, to avoid them creating a temporary when you're invoking a move. FText::ChangeKey now takes its parameters by const& as their data wasn't being moved further down the chain, so the by-value copy was wasteful.
Change 3019021 on 2016/06/19 by Richard.TalbotWatkin
When deleting a brush, ensure geometry is rebuilt before updating the details panel according to the selection change, so that the old Surface Properties don't continue to appear.
#jira UE-8966 - Surface Properties of a BSP remain in the details panel after the BSP is deleted
Change 3019022 on 2016/06/19 by Richard.TalbotWatkin
Fixed issue where the Surface Properties category in the Details panel doesn't appear after selecting a surface on a Brush which has just been placed.
#jira UE-31916 - Selecting an edge of BSP geometry then a face does not show Surface Properties while in Place mode
#jira UE-31915 - Selecting BSP face does not show Surface Properties in Details
Change 3019025 on 2016/06/19 by Richard.TalbotWatkin
Fixed issue which was stopping 'Cancel' from correctly returning a 'Cancelled' result during P4 asynchronous ops.
#jira UE-28595 - Submit to Source Control: "Checking for assets to check in..." cancel button does not cancel operation, editor becomes unresponsive
Change 3020050 on 2016/06/20 by Cody.Albert
Changed window centering logic to correctly work when monitor 1 isn't set to primary monitor.
#jira UE-32173
Change 3021145 on 2016/06/21 by Jamie.Dale
Added support for text format argument modifiers
These can be used to mutate a format argument before appending it to the resultant formatted string, and are applied to the preceding argument via a pipe, eg) "{Arg}|plural(one=is,other=are)".
We provide a few of these by default:
- |plural(key=val,...)
- |ordinal(key=val,...)
Provides support for cardinal and ordinal plural forms, where key may be any of "one", "two", "few", "many", or "other", and val may be any optionally quoted string.
- |gender(masculine,feminine,[neuter])
Provides support for gender forms, where the 0th item is the masculine version, the 1st item is the feminine version, and the 2nd item is an optional neuter version. The values may be any optionally quoted string.
- |hpp(consonant,vowel)
Provides support for Hangul post-positions, where the 0th item is the consonant suffix, and the 1st item is the verb suffix. The values may be any optionally quoted string.
Major changes:
- Exposed the ICU plural form handling via FCulture::GetPluralForm.
- Updated the FText formatting code to use an expression evaluator (to support the more complex expressions needed for the argument modifiers).
- Added FTextFormat to store a pre-compiled format expression. Re-using one of these if you're performing a lot of formats with the same FText will increase your performance (as around half of the FText::Format cost can be compilation, via an implicit construction of FTextFormat).
- Updated the FText::Format(...) family of functions to take their format string as FTextFormat, and take their arguments as FFormatArgumentValue. This allows us access to the real numeric types within the format code, but doesn't break the existing API as these types are implicitly constructible from the old parameters (FText).
- Converted text history to store their format string as an FTextFormat in-case they need to perform a re-format (this is still saved as an FText).
Breaking changes:
- The rules for the escape token have been simplified, and there is an incredibly unlikely chance that this may affect some text:
- The ` character will now only escape a valid character (producing only the escaped character in the final string), or it will be ignored and inserted as a literal character, eg) "`{F" -> "{F", and "`F" -> "`F".
- Previously it would also remove the escape character when it followed { or }, eg) "{`" -> "{" and "}`" -> "}", rather than "{`" and "}`" like you might expect. It would also have previously removed a ` at the end of a string due to a parser bug.
Change 3021156 on 2016/06/21 by Jamie.Dale
Updated LinuxToolChain to use the same output delegate for all of its actions when cross-compiling
This avoids the compile and link actions being split into different batches.
Change 3021280 on 2016/06/21 by Richard.TalbotWatkin
Fixed bug in parsing LOD in UStaticMeshComponent::ImportCustomProperties (thanks to Aurelien Cordonnier).
#jira UE-31937 - UDN code submission for UStaticMeshComponent::ImportCustomProperties parsing bug
Change 3022949 on 2016/06/22 by Alex.Delesky
#jira UE-31944 - Upgrading Subversion binaries to version 1.9.4.
Change 3023092 on 2016/06/22 by Jamie.Dale
Downgraded some checks to ensures and added an early out
#jira UE-32009
Change 3023154 on 2016/06/22 by Jamie.Dale
Ported over CL# 3018771 to the UE automation
This fixes an issue where a downloaded PO file smaller than the one already on disk leaving a mix of both files on disk (rather than the existing file on disk being truncated).
Change 3023579 on 2016/06/22 by Jamie.Dale
Expanded the Blueprint FormatText node to support numeric and gender types
These are needed to correctly support the new plural and gender forms that can be used in format strings, as these require actual numeric/enum data to be passed into the format arguments, rather than pre-formatted text.
Major changes:
- The FormatText node for Blueprints now uses PC_Wildcard as its pin type for format arguments instead of PC_Text.
- Any existing literal text argument data in the pin is hoisted out into a "Make Literal Text" node which is then connected to the pin.
- FFormatArgumentData has been updated to be variant on the data needed by Blueprints. It's now a less comprehensive and non-unioned version of FFormatArgumentValue.
- The version of FText::Format taking FFormatArgumentData has been deprecated as its usage was internal to Blueprints and we have much better ways to format text in C++. Any existing C++ using that (of which we have none internally) should be updated to use FFormatArgumentValue instead.
Change 3023915 on 2016/06/22 by Jamie.Dale
Cleaned up some of the UK2Node_FormatText expansion code to avoid unchecked literals
Change 3024813 on 2016/06/23 by Jamie.Dale
Renamed FContext to FManifestContext to better reflect its purpose and avoid naming conflicts with other code
Change 3024852 on 2016/06/23 by Nick.Darnell
FBX - Updating automation tests with the changes to chunk and chunk index removal and them being merged with sections.
Change 3024994 on 2016/06/23 by Nick.Darnell
UMG - Removing the DesignerWidgetTree, instead going to directly inject the widget tree into the partially constructed UUserWidget during design time, when refreshing the preview. This avoids doing something a little dangerous and sketchy like updating the living class instance with a new designer tree that all new instances will begin biasing using. Also making the preview widget explictly non-transactional as there's no reason to track changes to the preview, all the changes that need to be tracked should be on the template widget. This should fix the crash in the widget designer when you Undo just after compiling the widget blueprint.
#jira UE-31155
Change 3025194 on 2016/06/23 by Alex.Delesky
#jira UE-31155 - Compilation error fix.
Change 3025255 on 2016/06/23 by Alex.Delesky
#jira UE-21900 - Redoing changes done in CL 2994431 since it got stomped. Reinstates the grabber handles and ensures consistent scaling on the scale widget in orthographic viewports.
Change 3025460 on 2016/06/23 by Cody.Albert
Fixed issue where widget components would misalign when aspect ratio was being constrained
#jira UE-29637
Change 3025508 on 2016/06/23 by Cody.Albert
Adding support for adjusting animation playback speed
#jira UE-32222
Change 3026444 on 2016/06/24 by Jamie.Dale
Fixed crash caused by bad access of shared this when closing an active IME context
This was only needed to get the owner window, which we now cache when the IME context is created.
#jira UE-32240
Change 3028358 on 2016/06/27 by Jamie.Dale
Fixed IMEs not working due to no window being cached
#jira UE-32240
Change 3028464 on 2016/06/27 by Alex.Delesky
#jira UE-31873 - A single "Files need check-out" notification will now be shown instead of multiple notifications if multiple files need to be checked out, and updated as more files need to be checked out.
Change 3028524 on 2016/06/27 by Chris.Wood
Switched off uploads to legacy Crash Report Receiver.
[UE-31252] - Switch off deprecated CRR upload in Crash Report Client
Also added CRC version string, added to crash context from CRC config
Change 3028840 on 2016/06/27 by Alexis.Matte
#jira UE-32306 replace material bad name character by an underscore when doing a scen import.
Change 3028924 on 2016/06/27 by Alexis.Matte
#jira UE-32125 Make sure we can add a plan when a fbx file is drop in the fbx automation test folder
Change 3029044 on 2016/06/27 by Alex.Delesky
#jira UE-31944 - Updating SVN binaries for Mac to 1.9.4
Change 3029276 on 2016/06/27 by Alex.Delesky
#jira UE-31531 - A user can now select the base class when creating a new physical material.
PR #2462: added dialog, which enables picking base class for asset (Contributed by iniside)
Change 3029459 on 2016/06/27 by Alexis.Matte
#jira UE-32354 Make sure we set all blueprint component to the correct mobility set in the scene import options.
Change 3030577 on 2016/06/28 by Nick.Darnell
PR #2531: Git plugin: fix wrong status icons (Contributed by SRombauts)
Change 3030587 on 2016/06/28 by Alexis.Matte
#jira UE-32251 add missing body setup variables when restoring the body setup value after a re-import of a staticmesh
Change 3030946 on 2016/06/28 by Alexis.Matte
#jira UE-32515 prevent crash when re-import staticmesh userdata
Change 3031115 on 2016/06/28 by Jamie.Dale
The DDC builder now gives the shader compile worker a chance to catch up when it pauses to run a GC pass
This prevents an issue where the shader backlog could cause massive amounts of memory to be consumed.
Change 3031146 on 2016/06/28 by Jamie.Dale
Fixed errors when building with USE_STABLE_LOCALIZATION_KEYS enabled caused by UEdGraphPin no longer being a UObject
Change 3031357 on 2016/06/28 by Nick.Darnell
PR #2431: Add plugin support to the editor class wizard. (Contributed by Koderz)
Change 3031515 on 2016/06/28 by Jamie.Dale
Fixed game targets not being able to depend on other game targets
Change 3031520 on 2016/06/28 by Jamie.Dale
Localization compilation now specifies an ArchiveName to use
Change 3031671 on 2016/06/28 by Nick.Darnell
Editor - Checking to see if a weak variable is valid before using it in the editor build window.
Change 3032013 on 2016/06/28 by Matt.Kuhlenschmidt
Added ability to invert the Y axis in editor viewports for mouse look and orbit
Change 3032495 on 2016/06/29 by Jamie.Dale
Fixed some measuring issues with bi-directional text within a right-flowed document
There were three main issues:
1) Measuring blocks was measuring visual glyphs rather than logical glyphs (this caused bad measures/wrapping and overlapped rendering).
2) The text layout would consider blocks visually contiguous without making sure the block flow direction matched the line flow direction (this caused bad highlights).
3) The text layout would fail to compensate for a non-contiguous block that had a flow direction different to the line flow direction (it was hard-coded for RTL in LTR, so broke for LTR in RTL - this caused bad highlights).
#jira UE-32526
Change 3032533 on 2016/06/29 by Nick.Darnell
UMG - The widget component now extends from UMeshComponent, it can have a custom material applied to it, in order to achieve cooler effects - like ignoring the depth buffer. Users who use this option are encouraged to start with the widget components default material and work from there. The widget component now offers the ability to automatically size the render target to be the desired size of the widget - note that this can go real bad if your widget wants to be really big.
Change 3032855 on 2016/06/29 by Alexis.Matte
#jira UE-32508 Remove the cachewindow from the FTextInputMethodContext constructor since it will be cache only when the IME is activated
#test please re-test also UE-32240
Change 3033145 on 2016/06/29 by Alex.Delesky
#jira UE-32239 - The PropertyEditorModule will no longer cause a crash on editor shutdown if a SDetailsView widget tries to force refresh itself when the Slate application is no longer initialized.
Change 3033147 on 2016/06/29 by Alex.Delesky
#jira UE-32326 - Clicking on the "Install {compiler}" button when trying to create a new code class or code project will now not crash the engine if it fails to open the installation file for write, nor will it create multiple notifications if the button is pressed repeatedly.
This also addresses a potential issue with static initialization order when it comes to adding TickableEditorObjects to its corresponding array, since it was wholly possible for a statically initialized TickableEditorObject to initialize itself and add itself to the tickable objects arra before the tickable objects array was initialized, causing that object to not get ticked at runtime and causing a crash when the editor was closed.
Change 3033162 on 2016/06/29 by Alex.Delesky
#jira UE-31827 - Undo/redo now works in the Material function editor.
Change 3033391 on 2016/06/29 by Matt.Kuhlenschmidt
Fix post process settings blendable picker not being readable in the details panel
Change 3033498 on 2016/06/29 by Matt.Kuhlenschmidt
Fixed huge number of redundant calls to CanEditChange and
DiffersFromDefault that were causing massive performance loss when
thousands of objects are selected. CanEditChange and DiffersFromDefault
are now cached each time a property value changes.
Fixed redundant calls for getting visualizers for each selected
object. This is now cached on selection
Change 3033504 on 2016/06/29 by Matt.Kuhlenschmidt
Fix Mass customization on the body instance not working with undo/redo or reset to default
Change 3034357 on 2016/06/30 by Alex.Delesky
#jira UE-31184 - Renamed the multiple collision components in the cascade particle system to more accurately reflect what they represent.
Change 3035915 on 2016/07/01 by Richard.TalbotWatkin
Fix to SListPanel so that those with horizontal arrangement (i.e. from STileView) use the number of desired items instead of the number of actual items in order to calculate the desired size of the geometry. This fixes the case where an STileView is contained within an SScrollBox.
#jira UE-32195 - STileView no longer works correctly when placed inside of a SScrollBox
Change 3035951 on 2016/07/01 by Richard.TalbotWatkin
Fixed issue when importing a brush, so that the brush is always validated (relinked), whether it be a static or dynamic brush. This is because the process of rebuilding a dynamic brush sets the link indices to signify FBspSurf indices from the UModel instead of FPoly indices (the FPoly::iLink member is overloaded in its meaning). Always forcing a relink correctly sets the linked list of coplanars.
#jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume
Change 3036991 on 2016/07/04 by Alexis.Matte
#jira UETOOL-901 Scene importer now support the rigid mesh animation
Change 3037037 on 2016/07/04 by Jamie.Dale
Fixed regression in editable text box alignment
Text was no longer vertically aligned center since SEditableText was converted to use a text layout. This vertical alignment is now handled by the outer SEditableTextBox instead.
Change 3037057 on 2016/07/04 by Richard.TalbotWatkin
Fixed screenshots when running automation tests so that they are saved locally when a FAutomationWorkerScreenMessage is received.
#jira UE-29815 - In-game screenshot isn't working under certain circumstances
Change 3037082 on 2016/07/04 by Chris.Wood
Added detection of asserts and passing assert flag and crash type string to crash reports.
[UE-30592] - Crash Reporter should determine crash type on client and pass string to server
Reviewe by Steve with reservations about the static variable for setting asserted state. While not thread-aware, this is probably accurate enough for the purpose of crash reporting, certainly for now. I'm submitting it like this because the work required to add fully thread-aware fix is not necessary at this point.
Change 3037095 on 2016/07/04 by Alexis.Matte
Fix the bone name when duplicating a socket.
Change 3037453 on 2016/07/05 by Stephan.Jiang
Adding ability to animate the root wigdet #2
FHierarchyRoot adds the preview widget instead of CDO to selectedobjects in widgetblueprint
the properties are then migrated back to the CDO
#UE 31810
Change 3037487 on 2016/07/05 by Jamie.Dale
Fixed crash caused by stale BP pointer
#jira UE-32325
Change 3037488 on 2016/07/05 by Jamie.Dale
Fixed a crash that could occur when a class and a folder had the same name
Change 3037526 on 2016/07/05 by Jamie.Dale
Speculative fix for a potential race condition when shutting down the editor while a "launch" was in progress
The launch-thread could potentially queue up a request after the game-thread had requested it cancel, and cleared out any queued tasks. This change has the game-thread wait for the launch-thread to acknowledge its cancellation before continuing with editor shutdown.
#jira UE-17688
Change 3037557 on 2016/07/05 by Alex.Delesky
#jira UE-32424 - Added a safeguard to ensure that renaming a world that was duplicated from another world would not crash the editor if both worlds' lightmaps and shadowmaps were still active in memory, due to the editor attempting to rename identical textures from different packages to the same location.
The actual fix to this issue was performed in an earlier CL, but this should prevent the editor from crashing if the issue returns.
Change 3037558 on 2016/07/05 by Alex.Delesky
#jira UE-32285 - Importing assets to the Content Browser via drag and drop operations are no longer permitted while the UI file picker dialog is opened.
Change 3037559 on 2016/07/05 by Alex.Delesky
#jira UE-32075 - The user can no longer attempt to import non-FBX and non-OBJ files when importing into a level.
Change 3037593 on 2016/07/05 by Stephan.Jiang
GitHub #2549: Add function for setting the playback rate of UMG animations
original code shelved in CL 3033449
#UE-32653
Change 3037605 on 2016/07/05 by Jamie.Dale
Fixed infinite recursion that could happen when gather loc from an object with a custom callback
#jira UE-32670
Change 3037649 on 2016/07/05 by Nick.Darnell
PR #2538: [WidgetBlueprintLibrary] GetAllWidgetsOfClass, Added META ~ DeterminesOutputType, DynamicOutputParam, removes the need for extra cast, Rama (Contributed by EverNewJoy)
Change 3037652 on 2016/07/05 by Nick.Darnell
Clean - Removing commented out code.
Change 3037658 on 2016/07/05 by Matt.Kuhlenschmidt
Fix initial hitch when dragging around in a color picker opened from a material expression node.
Change 3037679 on 2016/07/05 by Nick.Darnell
Engine - Texture2D no longer forces the MIP level to 0 for TextureGroup_UI textures.
Change 3037757 on 2016/07/05 by Nick.Darnell
PR #2447: WebBrowser widget: Added GetUrl method and OnUrlChanged property (Contributed by nelbok)
Change 3037840 on 2016/07/05 by Nick.Darnell
UMG - Now allowing for spirtes to be used just like textures and materials on UMG widgets anywhere that takes a brush, can now also take a Sprite. There is now a ISlateTextureAtlasInterface interface that any UObject may now implement if it wishes to integrate with UMG to provide its atlas data in a form Slate can understand.
Change 3037924 on 2016/07/05 by Jamie.Dale
Re-ordered variable initialization to appease a warning on Mac
Change 3037981 on 2016/07/05 by Jamie.Dale
Fixed crash where FColorStructCustomization could call SetPerObjectValues with an empty array
#jira UE-32639
Change 3038075 on 2016/07/05 by Cody.Albert
Removed misleading error message in HandleCECommand
#jira 28007
Change 3038231 on 2016/07/05 by Alexis.Matte
#jira UE-30694 We set the section collision only if there is an imported collision or a generated one. If there is no collision we do not set the collision flag.
Change 3038275 on 2016/07/05 by Alex.Delesky
#jira UE-32689 - "Game Gets Mouse Control" will now override the Capture Mouse on Launch setting when launching the game from within a Level Viewport (i.e., within the editor window itself).
Change 3039310 on 2016/07/06 by Trung.Le
#jira UE-25005 Change PIE Key Bindings
- Removed Shift+F1 and Esc from BaseInput.ini
- Created new customizable key binding for
+ Shift+F1: same functionality.
+ Esc: now will pause the play session and bring back the mouse cursor. Clicking the mouse on the viewport should resume play session.
+ Shift+Esc: now will stop the play session
Change 3039458 on 2016/07/06 by Trung.Le
Removed unused code in StaticMeshLight.cpp
Change 3039827 on 2016/07/06 by Frank.Fella
FString - Fix divide overload path concatenation for empty paths since there are several places in the engine that expect using that doing { path / "" } will append a / onto path.
#jira UE-31959
Change 3041094 on 2016/07/07 by Nick.Darnell
WebBrowser - Fixing an issue where the web browser widget plugin wasn't loading soon enough to be properly loaded in time if it was referenced by game nessesary content thatloads in the Default stage of the pipeline, so moving it to PreDefault.
#jira UE-32694
Change 3041110 on 2016/07/07 by Matt.Kuhlenschmidt
Fix visualizers on blueprint actors not working when the internal components are trashed and replaced
Change 3041302 on 2016/07/07 by Chris.Wood
Increased buffer size for crash uploads.
[UE-32151] - High number of crashes read from S3 by Crash Report Process are failing to unpack
Trivial change in dev branch - no code review
Change 3041969 on 2016/07/07 by Nick.Darnell
UMG - Input Key Selector now no longer adds a bogus Selected Key property to the details panel.
Change 3041971 on 2016/07/07 by Nick.Darnell
UMG - Not using separate settings for the Engine/Developer folders visible in the UMG palette, now just using the same setting that powers the content browser.
Change 3042612 on 2016/07/08 by Trung.Le
#jira UE-25005, set Shift+Esc defaults to toggle play/pause and Esc remains defaults to quit
Change 3042732 on 2016/07/08 by mitchell.wilson
Adding test content for UMG Paper 2d Atlas test
Change 3042780 on 2016/07/08 by mitchell.wilson
Updating UMG_Paper2d test content for UMG Paper 2d Atlas testing
Change 3042870 on 2016/07/08 by mitchell.wilson
Renaming UMG_Paper2d to UMG_Sprite
Change 3044104 on 2016/07/10 by Nick.Darnell
PR #2104: Improved widget input support (Contributed by projectgheist)
Change 3044107 on 2016/07/10 by Nick.Darnell
Slate - Fixing the slider handle rendering to no longer run off the edge and get cut off.
#jira UE-25750
Change 3044377 on 2016/07/11 by Chris.Wood
Add Slack messaging module - Epic Friday
Change 3044536 on 2016/07/11 by Alex.Delesky
#jira UE-7293 - Mouse locking to viewport is now determined off an enum instead of a boolean, to allow for more flexibility when upgrading with new features.
Change 3044922 on 2016/07/11 by Nick.Darnell
Slate/UMG - Working on better support for VR interactions with Slate widgets. This change fixes a lot of issues with the way interaction works with slate widgets rendered in the virtual world. Breakages, direct mouse interaction with widgets in the virtual world is no longer supported. Those kinds of interactions must all use the WidgetInteractionComponent now, which by default works similar to the lasers in VREditor for interaction. However - you can disable automatic hittesting, and instead provide a custom hitresult instead if you want to use screen tracing and act like you're just a mouse cursor that is supported. Menu anchors now properly function inside of widgets in the virtual world. Performance improvements - the viewport no longer arranges all 3d widgets every frame. Additionally, Widget Components now support a whole bunch of methods for reducing how often they redraw to help control performance, they also support manual refresh. This automatically works in tandem with the widget interaction component to request refresh whenever the widget interaction component is interacting with the widget, thus giving you a simple way to only redraw widgets that the user is hovering on top of. Unrelated - this change also fixes Stop navigation commands not working with Next/Prev navigation - Wrap is still unsupported.
Change 3045157 on 2016/07/11 by Nick.Darnell
Slate - Always consume the bottom face button of the analog cursor, even if it's a repeat.
Change 3045355 on 2016/07/11 by Matt.Kuhlenschmidt
Added logging for unreproducible top 10 crash in matinee when a track ends up not being able to add a keyframe
Change 3045358 on 2016/07/11 by Alex.Delesky
#jira UE-31179 - The editor should now log additional information and hit an assertion if the editor tries to construct FObjectOrAssetData using invalid data. This doesn't stop the crash, but should help get some extra info when it does break.
Change 3045371 on 2016/07/11 by Matt.Kuhlenschmidt
Enable the widget reflector from the editor console by typing "widgetreflector"
Change 3045387 on 2016/07/11 by Stephan.Jiang
Stripping off 'b' in the propertyname so that "Is Enabled" is animated properly.
#UE-31874
Change 3046093 on 2016/07/12 by Nick.Darnell
UMG - The Slider now exposes the IsFocusable option from Slate.
#jira UE-32960
Change 3046094 on 2016/07/12 by Alexis.Matte
#jira UE-32807 scene re-import blueprint hierarchy kept some part of old blueprint component value.
Change 3046104 on 2016/07/12 by Stephan.Jiang
typo "Syc" causing the "Sync" button doesn't show Slateicon
#UE-31409
Change 3046142 on 2016/07/12 by Nick.Darnell
Orion - Upgrading more code to use the new input mode functions and not the deprecated ones.
Change 3046165 on 2016/07/12 by Nick.Darnell
UMG - Fixing a crash on the widget component if the render target is null when reapplied through widget component data.
#jira UE-32844
Change 3046255 on 2016/07/12 by Nick.Darnell
UT - More build warning fixes for the new Input Mode methods.
Change 3046604 on 2016/07/12 by Richard.Hinckley
Adding a template file and code to support creating a UInterface directly from the New C++ Class wizard.
Change 3047071 on 2016/07/12 by Matt.Kuhlenschmidt
Better way of summoning the widget reflector from the console
Change 3047842 on 2016/07/13 by Matt.Kuhlenschmidt
Mark Subdivision surface setting as advanced since it is experimental and definitely for advanced users only
Change 3048754 on 2016/07/13 by Trung.Le
#jira UE-32159 Automatically regain focus after user gets mouse control during PIE session so we can continue process PIE keybinding commands
Change 3048756 on 2016/07/13 by Trung.Le
Removed default toggle pause/play keybinding from BaseInput.ini, instead we should use the action defined in DebuggerCommands that is customizable
Change 3048865 on 2016/07/13 by Trung.Le
#jira UE-32159 SGlobalPlayWorldActions widget shouldn't clear out active widget pointer when it's being handled properly
Change 3048892 on 2016/07/13 by Nick.Darnell
UMG - Fixing a problem with the interaction component, it now does some basic intelligent ignoring of anything it's attached to - excluding widget components. So it's easier to attach it to things that might be inside of a say a player collision capsule. Also removing the 'Max Interaction Distance' from the widget component as that is no longer the arbitor of interaction distance.
#jira UE-33250
Change 3049096 on 2016/07/13 by Trung.Le
Wrap SGlobalPlayActions around ViewportWidget instead of making it a child of ViewportWidget. This was causing PIE to stop working when there are other UMG in game.
#jira UE-33259
Change 3049177 on 2016/07/13 by Stephan.Jiang
Fixing the "No Animation Selected" tag shows up after switching back from Graph to Designer.
#UE-33016
Change 3049726 on 2016/07/14 by Stephan.Jiang
Adding icons for terrain mirror tool
#UE-20588
Change 3049957 on 2016/07/14 by Nick.Darnell
Slate - Fixing a small bug in the virtual user function - was preventing getting the same virtual user multiple times if it had already been created. Adding an option to the widget component to control the focusabilty of the underlying slate window that's created to host the widget content. Adding an option to the widget interaction component to control if it should be simulating mouse input at all - use this to effectively disable hit testing, and changing hover states and the like.
Change 3049994 on 2016/07/14 by Stephan.Jiang
Set viewed animtion to current animtion after switching from Graph to Designer
(This is for "No Animation Selected" showing up when switching)
#UE-33016
Change 3050194 on 2016/07/14 by Stephan.Jiang
Added ability to replace the widget the track is currently bound to
Also includes changes in WidgetBlueprintEditor to send delegate to AnimationtabSummoner when switching from Graph to Designer
#UE-31809
[CL 3050870 by Matt Kuhlenschmidt in Main branch]
2016-07-14 19:07:16 -04:00
/**
* Get the information about any modules in any of the plugins in the currently loaded project ( Ignores Engine Plugins )
*/
static TArray < FModuleContextInfo > GetCurrentProjectPluginModules ( ) ;
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
/**
* Check to see if the given path is a valid place to put source code for this project ( exists within the source root path )
*
* @ param InPath The path to check
2014-08-04 18:21:05 -04:00
* @ param ModuleInfo Information about the module being validated
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
* @ param OutFailReason Optional parameter to fill with failure information
*
* @ return true if the path is valid , false otherwise
*/
2014-08-04 18:21:05 -04:00
static bool IsValidSourcePath ( const FString & InPath , const FModuleContextInfo & ModuleInfo , FText * const OutFailReason = nullptr ) ;
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
/**
* Given the path provided , work out where generated . h and . cpp files would be placed
*
* @ param InPath The path to use a base
2014-08-04 18:21:05 -04:00
* @ param ModuleInfo Information about the module being validated
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
* @ param OutHeaderPath The path where the . h file should be placed
* @ param OutSourcePath The path where the . cpp file should be placed
* @ param OutFailReason Optional parameter to fill with failure information
*
* @ return false if the paths are invalid
*/
2014-08-04 18:21:05 -04:00
static bool CalculateSourcePaths ( const FString & InPath , const FModuleContextInfo & ModuleInfo , FString & OutHeaderPath , FString & OutSourcePath , FText * const OutFailReason = nullptr ) ;
#ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
2014-04-23 18:50:08 -04:00
2014-05-14 06:47:25 -04:00
/**
* Given the path provided , work out where it ' s located within the Source folder
*
* @ param InPath The path to use a base
2014-08-04 18:21:05 -04:00
* @ param ModuleInfo Information about the module being validated
2014-05-14 06:47:25 -04:00
* @ param OutClassLocation The location within the Source folder
* @ param OutFailReason Optional parameter to fill with failure information
*
* @ return false if the paths are invalid
*/
2014-08-04 18:21:05 -04:00
static bool GetClassLocation ( const FString & InPath , const FModuleContextInfo & ModuleInfo , EClassLocation & OutClassLocation , FText * const OutFailReason = nullptr ) ;
2014-05-14 06:47:25 -04:00
2014-05-13 18:23:53 -04:00
/** Creates a copy of a project directory in order to upgrade it. */
2014-09-26 11:29:33 -04:00
static EProjectDuplicateResult DuplicateProjectForUpgrade ( const FString & InProjectFile , FString & OutNewProjectFile ) ;
2014-05-13 18:23:53 -04:00
2014-05-29 17:37:19 -04:00
/**
* Update the list of supported target platforms based upon the parameters provided
* This will take care of checking out and saving the updated . uproject file automatically
*
* @ param InPlatformName Name of the platform to target ( eg , WindowsNoEditor )
* @ param bIsSupported true if the platform should be supported by this project , false if it should not
*/
static void UpdateSupportedTargetPlatforms ( const FName & InPlatformName , const bool bIsSupported ) ;
2014-06-05 12:13:44 -04:00
/** Clear the list of supported target platforms */
static void ClearSupportedTargetPlatforms ( ) ;
2014-10-13 11:47:21 -04:00
/** Returns the path to the module's include header */
static FString DetermineModuleIncludePath ( const FModuleContextInfo & ModuleInfo , const FString & FileRelativeTo ) ;
/** Creates the basic source code for a new project. On failure, OutFailReason will be populated. */
static bool GenerateBasicSourceCode ( TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
2015-09-22 14:06:00 -04:00
/** Generates a Build.cs file for a game module */
static bool GenerateGameModuleBuildFile ( const FString & NewBuildFileName , const FString & ModuleName , const TArray < FString > & PublicDependencyModuleNames , const TArray < FString > & PrivateDependencyModuleNames , FText & OutFailReason ) ;
Copying //UE4/Dev-Blueprints to Dev-Main (//UE4/Dev-Main) @ 2781164
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2716841 on 2015/10/05 by Mike.Beach
(WIP) Cleaning up how we setup script assets for replacement on cook (aligning more with the Blueprint conversion tool).
#codereview Maciej.Mroz
Change 2719089 on 2015/10/07 by Maciej.Mroz
ToValidCPPIdentifierChars handles propertly '?' char.
#codereview Dan.Oconnor
Change 2719361 on 2015/10/07 by Maciej.Mroz
Generated native code for AnimBPGC - some preliminary changes.
Refactor: UAnimBlueprintGeneratedClass is not accessed directly in runtime. It is accessed via UAnimClassInterface interface.
Properties USkeletalMeshComponent::AnimBlueprintGeneratedClass and UInterpTrackFloatAnimBPParam::AnimBlueprintClass were changed into "TSubclassOf<UAnimInstance> AnimClass"
The UDynamicClass also can deliver the IAnimClassInterface interface. See UAnimClassData, IAnimClassInterface::GetFromClass and UDynamicClass::AnimClassImplementation.
#codereview Lina.Halper, Thomas.Sarkanen
Change 2719383 on 2015/10/07 by Maciej.Mroz
Debug-only code removed
Change 2720528 on 2015/10/07 by Dan.Oconnor
Fix for determinsitc cooking of async tasks and load asset nodes
#codereview Mike.Beach, Maciej.Mroz
Change 2721273 on 2015/10/08 by Maciej.Mroz
Blueprint Compiler Cpp Backend
- Anim Blueprints can be converted
- Various fixes/improvements
Change 2721310 on 2015/10/08 by Maciej.Mroz
refactor (cl#2719361) - no "auto" keyword
Change 2721727 on 2015/10/08 by Mike.Beach
(WIP) Setup the cook commandlet so it handles converted assets, replacing them with generated classes.
- Refactored the conversion manifest (using a map over an array)
- Centralized destination paths into a helper struct (for the manifest)
- Generating an Editor module that automatically hooks into the cook process when enabled
- Loading and applying native replacments for the cook
Change 2723276 on 2015/10/09 by Michael.Schoell
Blueprints duplicated for PIE will no longer register as dependencies to other Blueprint.
#jira UE-16695 - Editor freezes then crashes while attempting to save during PIE
#jira UE-21614 - [CrashReport] Crash while saving during PIE - FKismetEditorUtilities::CompileBlueprint() kismet2.cpp:736
Change 2724345 on 2015/10/11 by Ben.Cosh
Blueprint profiler at first pass, this includes the ability to instrument specific blueprints with realtime editor stat display.
#UEBP-21 - Profiling data capture and storage
#UEBP-13 - Performance capture landing page
#Branch UE4
#Proj BlueprintProfiler, BlueprintGraph, EditorStyle, Kismet, UnrealEd, CoreUObject, Engine
Change 2724613 on 2015/10/12 by Ben.Cosh
Incremental update for blueprint profiler to fix the way some of the reported stats cascade through events and branches and additionally some missed bits of code are refactored/removed.
#Branch UE4
#Proj BlueprintProfiler
#info Whilst looking into this I spotted the reason why the stats seem so erratic, There appears to be an issue with FText's use of EXPERIMENTAL_TEXT_FAST_DECIMAL_FORMAT which I have reported, but ideally disable this locally until a fix is integrated.
Change 2724723 on 2015/10/12 by Maciej.Mroz
Constructor of a dynamic class creates CDO.
#codereview Robert.Manuszewski
Change 2725108 on 2015/10/12 by Mike.Beach
[UE-21891] Minor fix to the array shuffle() function; now processes the last entry like all the others.
Change 2726358 on 2015/10/13 by Maciej.Mroz
UDataTable is properly saved even if its RowStruct is null.
https://udn.unrealengine.com/questions/264064/crash-using-hotreload-in-custom-datatable-cdo-clas.html
Change 2727395 on 2015/10/13 by Mike.Beach
(WIP) Second pass on the Blueprint conversion pipeline; setting it up for more optimal (speedier) performance.
* Using stubs for replacements (rather than loading dynamic replacement).
* Giving the cook commandlet more control (so a conversion could be ran directly).
* Now logging replacements by old object path (to account for UPackage replacement queries).
* Fix for [UE-21947], unshelved from CL 2724944 (by Maciej.Mroz).
#codereview Maciej.Mroz
Change 2727484 on 2015/10/13 by Mike.Beach
[UE-22008] Fixing up comment/tooltip typo for UActorComponent::bAutoActivate.
Change 2727527 on 2015/10/13 by Mike.Beach
Downgrading an inactionable EdGraph warning, while adding more info so we could possibly determine what's happening.
Change 2727702 on 2015/10/13 by Dan.Oconnor
Fix for crash in UDelegateProperty::GetCPPType when called on a function with no OwnerClass (events)
Change 2727968 on 2015/10/14 by Maciej.Mroz
Since ConstructorHelpers::FClassFinder is usually static, the loaded class should be in root set, to prevent the pointer stored in ConstructorHelpers::FClassFinder from being obsolete.
FindOrLoadClass behaves now like FindOrLoadObject.
#codereview Robert.Manuszewski, Nick.Whiting
Change 2728139 on 2015/10/14 by Phillip.Kavan
2015-11-25 18:47:20 -05:00
/** Generates a module .cpp file, intended for plugin use */
static bool GeneratePluginModuleCPPFile ( const FString & CPPFileName , const FString & ModuleName , const FString & StartupSourceCode , FText & OutFailReason ) ;
/** Generates a module .h file, intended for plugin use */
static bool GeneratePluginModuleHeaderFile ( const FString & HeaderFileName , const TArray < FString > & PublicHeaderIncludes , FText & OutFailReason ) ;
2014-10-13 11:47:21 -04:00
/** Returns true if the currently loaded project has code files */
static bool ProjectHasCodeFiles ( ) ;
2014-10-10 04:34:56 -04:00
/** Returns the contents of the specified template file */
static bool ReadTemplateFile ( const FString & TemplateFileName , FString & OutFileContents , FText & OutFailReason ) ;
2015-04-22 16:30:31 -04:00
/** Writes an output file. OutputFilename includes a path */
static bool WriteOutputFile ( const FString & OutputFilename , const FString & OutputFileContents , FText & OutFailReason ) ;
/** Returns a comma delimited string comprised of all the elements in InList. If bPlaceQuotesAroundEveryElement, every element is within quotes. */
static FString MakeCommaDelimitedList ( const TArray < FString > & InList , bool bPlaceQuotesAroundEveryElement = true ) ;
/** Checks the name for illegal characters */
static bool NameContainsOnlyLegalCharacters ( const FString & TestName , FString & OutIllegalCharacters ) ;
/** Returns a list of #include lines formed from InList */
static FString MakeIncludeList ( const TArray < FString > & InList ) ;
2015-05-01 14:00:34 -04:00
/** Returns true if the currently loaded project requires a code build */
2015-06-29 08:27:10 -04:00
static bool ProjectRequiresBuild ( const FName InPlatformInfoName ) ;
/** Deletes the specified list of files that were created during file creation */
static void DeleteCreatedFiles ( const FString & RootFolder , const TArray < FString > & CreatedFiles ) ;
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3147796)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2948319 on 2016/04/19 by Nick.Shin
update zlib to v1.2.8
part 1 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
Change 2948322 on 2016/04/19 by Nick.Shin
update libwebsockets to v1.7.4
part 4 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948661 on 2016/04/19 by Nick.Shin
keep using old zlibs until they are recompiled with the newer version
Change 2948737 on 2016/04/19 by Nick.Shin
build warning fix
Change 2949334 on 2016/04/20 by Nick.Shin
fix library path
for some reason, NetworkFileSystem and HttpNetworkReplayStreaming on Mac platform needs full path - even though lib path was set...
Change 2951556 on 2016/04/21 by Nick.Shin
static libs double checked
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2951559 on 2016/04/21 by Nick.Shin
static libs double checked
forgot these files - they were in another changelist
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2952411 on 2016/04/22 by Nick.Shin
add win32 build targets for zlib openssl libcurl libwebsockets
part 1 of 2: these are the C# build scripts
Change 2970016 on 2016/05/07 by Nick.Shin
undo all of the following upgrades:
- zlib
- openssl
- libcurl
- libwebsockets
and reset webrtc
#jira UE-30298 - Fortnite and Orion crash on login
Change 3118163 on 2016/09/08 by Josh.Adams
perm test 2, not a useful file at all
Change 3121142 on 2016/09/12 by Daniel.Lamb
Attempt to fix deterministic cooking issue for particlelodlevel.
Ensure the spawn module has had postload called on it before using.
#test Paragon cook
Change 3121150 on 2016/09/12 by Daniel.Lamb
Added warning logs to help track down issue UE-33453.
Change 3121201 on 2016/09/12 by Keith.Judge
Xbox One - Replicate CL 3114357 from 4.13 branch. ESRAM clear on create fix.
Change 3121302 on 2016/09/12 by Joe.Graf
Fixed up the IMPLEMENT_MODULE macro usage to avoid the link errors
Change 3121379 on 2016/09/12 by Dmitry.Rekman
Linux: only link libraries that export needed symbols (UE-35720).
- Fixes very long startup times of modular builds.
- Includes PR #2778 by slonopotamus.
#jira UE-35720
Change 3121383 on 2016/09/12 by Dmitry.Rekman
Linux: added some missing _API declarations on symbols used externally.
- Compiling editor with -fvisibility=hidden works after this fix (although running still doesn't).
Change 3121456 on 2016/09/12 by Daniel.Lamb
Attempt to fix deterministic cooking issue for particlelodlevel.
Ensure the spawn module has had postload called on it before using.
#test Paragon cook
Change 3122939 on 2016/09/13 by Luke.Thatcher
[PLATFORM] [PS4] [!] Skip orbismemdmp files in the PS4 crash handler web service.
- Writing these files to disk causes orbis-tm.exe to take a file lock on them, which means we can't move the crash directory to the landing zone.
Change 3123040 on 2016/09/13 by Brent.Pease
+ Fix VS compile error by removing ENGINE_API from virtual method decls since ENGINE_API is defined for the entire class now.
Change 3123664 on 2016/09/13 by Nick.Shin
this was originally checked into: release 4.13.1
bringing here to dev-platform
-- original submit comments --
first, safari has a problem with firing off "window resized" events - causing an infinite loop of the window "resizing"
next, retina has "bigger" size calculations going off -- so y-delta checks greater than 2 are done to prevent resize event firing off in an infinite loop
jira UE-35363 - Huge game window when launching onto Safari 9.1.2
Change 3125282 on 2016/09/14 by Michael.Trepka
Fixed iOS and tvOS code indexing in Xcode project
Change 3126812 on 2016/09/15 by Josh.Adams
Merged Wolf support into Dev-Platform (hidden from almost all people still). Non-Wolf-specific changes:
- Added Parse function to JsonObject.cs to be able to parse a string
- Replaced some hacky post-reflection-capture functions with RHISubmitCommandsAndFlushGPU()
- Split PLATFORM_HAS_BSD_SOCKET_FEATURE_GETADDRINFO off from PLATFORM_HAS_BSD_SOCKET_FEATURE_GETHOSTNAME
- Converted the PS4MallocCrash class into a generic one (that Wolf is now also using)
- Added AddGenericToInQueueOnlineThread(), useful running a delegate on Online thread instead of game thread
- Refactored the GL shader compiler to allow Wolf to modify behavior without a lot of if WOLF checks everywhere
- Added ability in the cross compiler to convert the global uniform arrays into named uniform buffer objects
- Added ability for GL shader compiler to output original resources names ("VertColor" instead of "u_v[3]" or whatever)
- Added "FORCELODGROUP" console command that will apply a StaticMesh LODGroup to selected meshes in the editor. This can batch-Simplygonify all meshes in a level. Should maybe become an editor tool.
- Added ability for arrays of structs to specify a property to be the key. So, with LODGroups, the Name key inside the struct can be the unique key, so when you have multiple .ini files in the hierarchy overriding the same LODGroup by name, it will repalce the first with the second, instead of adding two entries with the same name. Set by @ArrayName=KeyPropertyName. Per Object Config sections need a little different handling, which uses * (see BaseDeviceProfiles.ini)
- Added ability to change DeviceProfiles at runtime. Use "dp.override <name>". If you do it again to another one, it will reset the settings to what they were originally, before applying the second new DP. This is because the second DP may not set all settings the first one did, but we want to undo the first settings that the second doesn't contain.
- Added FRHICommandListImmediate::IsStalled() - returns true while FRHICommandListImmediate::StallRHIThread is happening
- Changed runtime GetFeatureLevelMaxTextureSamplers() calls to the new GetMaxTextureSamplers() which can now be handled by the platform. Renamed GetFeatureLevelMaxTextureSamplers to GetExpectedFeatureLevelMaxTextureSamplers() (only used by the shader editor) to guess at what maybe the samplers count will be - but it's not guaranteed correct.
- Renamed a UT copy of a global function to not linker-conflict
- Changed the OOMBackupMemoryPool to allow each platform to set how much memory to allocate. See FPlatformMemory::GetBackMemoryPoolSize(). Defaults to 0, which was the previous behavior with the now removed FPlatformMemory::SupportBackupMemoryPool(), which was only true in Windows and PS4.
- Added an OOM delegate so other systems can get a callback after OOM occurs (after deleting the backup memory pool if it exists)
- Changed SetQualityLevels() (in Scalability.cpp) to no longer change the SetBy priority when setting CVars, and now keeps the SetBy the same as it was. Helps with conflicts between game settings and device profiles. See SetWithCurrentPriority()
- Added GetRenderingThreadPriority to FPlatformAffinity to allow a platform override priority. Not sure about this one, so may remove it, or maybe add more priorities for all the threads?
- Added a new file into the ini hierarchy to begin fixing the Engine/Base -> Project/Default -> Engine/Platform -> Project/Platform mess. We now have Engine/Base -> Engine/BasePlatform -> Project/Default -> Engine/Platform -> Project/Platform. However, Engine/Platform will soonm be deprecated as we move things over to Engine/BasePlatform, that are safe to move.
Change 3126842 on 2016/09/15 by Michael.Trepka
Make SAssertPicker's search box the default widget to focus on activate so that it doesn't get deactivated on Mac, where we get the window activation event in a tick after SAssertPicker creation.
Change 3126956 on 2016/09/15 by Michael.Trepka
Added support for compiling Vulkan shaders for Android on Mac
Change 3127206 on 2016/09/15 by Michael.Trepka
PR #2604: Remove some warnings. (Contributed by reapazor)
Change 3127324 on 2016/09/15 by Michael.Trepka
Allow third party dylibs on Mac to be loaded from plugin subfolders
Change 3127924 on 2016/09/16 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3128369 on 2016/09/16 by Nick.Shin
zlib 1.2.8
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128377 on 2016/09/16 by Nick.Shin
openssl 1_0_2h
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128383 on 2016/09/16 by Nick.Shin
libcurl 7_48_0
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128384 on 2016/09/16 by Nick.Shin
libwebsockets 1.7.4
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128464 on 2016/09/16 by Nick.Shin
webRTC rev.12643
NOTE: VS2015
- only Win64 is available
- Win32 versions is crashing (e.g. EpicGamesLauncher) at the moment
NOTE: VS2013
- not tested (i'm working on getting a VS2013 pro license) - so not checking in with this changelist
- also, VS2013 is no longer supported by webRTC build scripts, so it will be old anyways
FUTURE NOTE:
- will continue to try to get VS2015 Win32 functional
- and am working on trying to get VS2013 tested
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128500 on 2016/09/16 by Nick.Shin
zlib 1.2.8 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128504 on 2016/09/16 by Nick.Shin
openssl 1_0_2h - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128506 on 2016/09/16 by Nick.Shin
libcurl 7_48_0 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128508 on 2016/09/16 by Nick.Shin
libwebsockets 1.7.4 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128513 on 2016/09/16 by Nick.Shin
webRTC rev.12643 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128602 on 2016/09/16 by Nick.Shin
webRTC rev.9862 - Win64 VS2013
NOTE:
- not tested (i'm working on getting a VS2013 pro license)
- checking in for testing purposes
WARNING:
- VS2013 is no longer supported by webRTC latest
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128605 on 2016/09/16 by Nick.Shin
re-enabling updated ThirdParySoftware libs:
- zlib (v.1.2.8)
- openssl (1.0.2h)
- libcurl (7_48_0)
- libwebsocket (v.1.7.4)
- webRTC (rev.12643)
to the codereviewers, in my attempt to ensure the older libs are still used for console, mobile and linux -- please refer to this checkin if i broke the build...
Change 3128651 on 2016/09/16 by Nick.Shin
fix Win32 build error from CL: #3128605
Change 3128704 on 2016/09/16 by Nick.Shin
fix Win32 build error from CL: #3128605 - this time actually compiling it...
Change 3128825 on 2016/09/16 by Dmitry.Rekman
Linux: proper fix for too slow startup times (UE-35967).
- Pull request #2793 by slonopotamus.
- Now without stripping dependencies on libraries specified before.
- Contains a work around for ld bug <2.25.
Change 3128972 on 2016/09/16 by Nick.Shin
fix to local build error.
Change 3129283 on 2016/09/16 by Brent.Pease
+ Add Android local notification support based on existing system used for iOS
+ Initial API has been added for cancelling local notifications but the actual platform implementation will be done in the next release
Change 3129494 on 2016/09/17 by Nick.Shin
fix CIS build errors
Change 3129503 on 2016/09/17 by Dmitry.Rekman
Fix Linux build (case sensitivity issue).
Change 3129514 on 2016/09/17 by Nick.Shin
fix CIS build errors for consoles - missing zlib include path
special thanks to Dmitry.Rekman for pointing me in the right direction
Change 3129647 on 2016/09/17 by Dmitry.Rekman
Linux: fix non-unity build.
Change 3131043 on 2016/09/19 by Nick.Shin
archiving build instructions/steps when building:
- zlib (v.1.2.8)
win: #3128369
osx: #3128500
- openssl (1.0.2h)
win: #3128377
osx: #3128504
- libcurl (7_48_0)
win: #3128383
osx: #3128506
- libwebsocket (v.1.7.4)
win: #3128384
osx: #3128508
- webRTC
win: #3128464 (rev.12643 for vs2015) + 3128602 (rev:9862 for vs2013) -- NOTE: win32 is WiP
osx: #3128513
Change 3132801 on 2016/09/20 by Dmitry.Rekman
Linux: support specifying default OpenGL version via configs (UE-34777).
- The first targeted RHI is going to be used.
Change 3132905 on 2016/09/20 by Josh.Adams
- Fixed up some paths with the WolfPlat rename
Change 3133148 on 2016/09/20 by Josh.Adams
- Only show UT EULA if PLATFORM_DESKTOP
Change 3133152 on 2016/09/20 by Josh.Adams
- Beginning support for applets. Disabled unless you have a special SDK with applet support.
Change 3133169 on 2016/09/20 by Josh.Adams
- Fixed issue with Wolf access but no SDK installed
Change 3133344 on 2016/09/20 by Daniel.Lamb
Fixed issue with Iterative cooking not detecting changes to ini files which are loaded using LoadLocalFile.
Added new flag to limit number of concurrent shader compiles.
#test Cook QAGame, Cook Paragon
Change 3133345 on 2016/09/20 by Daniel.Lamb
FRedirectCollector collects string asset references all the time when running the editor.
#test Cook paragon cook QAGame.
Change 3133852 on 2016/09/21 by Luke.Thatcher
[PLATFORM] [PS4] [^] Performing merge between 3.508.201 LCUE files in CarefullyRedist and Dev-Platform to populate integration history. No files have actually changed in this CL, only Perforce metadata is updated.
Change 3133875 on 2016/09/21 by Luke.Thatcher
[PLATFORM] [PS4] [^] Performing merge between 3.508.201 LCUE files in CarefullyRedist and Dev-Platform to populate integration history. No files have actually changed in this CL, only Perforce metadata is updated. (Attempt 2)
Change 3134403 on 2016/09/21 by Jonathan.Fitzpatrick
Per PS4 documentation, app_type requires the alternate spelling of 'upgradeable', 'upgradable'.
Change 3134544 on 2016/09/21 by Josh.Adams
- Reduced UT textures for Wolf
Change 3134915 on 2016/09/21 by Jonathan.Fitzpatrick
FPS4Time::SystemTime now calculates the local machine time, instead of UTC.
#jira UE-35170
Change 3135036 on 2016/09/21 by Michael.Trepka
Quit the UE4EditorServices app when quitting the Launcher if it was the launcher that spawned the services process
Change 3135142 on 2016/09/21 by Jonathan.Fitzpatrick
GetBackMemoryPoolSize returned bool on PS4 by accident, should be uint32
Change 3135292 on 2016/09/21 by Jeff.Campeau
Change include order to favor the XDK edition specific headers where available.
Change 3136414 on 2016/09/22 by Josh.Adams
- Fixed a checkf() that had the case reversed
#jira ue-36311
Change 3137082 on 2016/09/22 by Dmitry.Rekman
Added support for Linux installed builds to 4.14
Change 3137220 on 2016/09/22 by Dmitry.Rekman
Linux: do not rebuild hlslcc on each setup.
- Now that hlslcc is set to use bundled libc++ there should be no STL binary compatibility conflicts between the engine and hlslcc binary.
Change 3137227 on 2016/09/22 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3137259 on 2016/09/22 by Dmitry.Rekman
Linux installed build: fix CIS (missed one .csproj)
Change 3137290 on 2016/09/22 by Dmitry.Rekman
Linux installed builds: fix for the resulting directory.
Change 3137291 on 2016/09/22 by Chris.Babcock
Restore texture filtering mode properly when movie played on Android
#jira UE-36342
#ue4
#android
Change 3137376 on 2016/09/22 by Dmitry.Rekman
Linux: re-enabled crash handler stack smash protection.
- Race condition in FRunnableThreadPThread has been previously fixed.
Change 3138498 on 2016/09/23 by Dmitry.Rekman
Linux: add missed package for installed builds.
- mono-devel package for resgen2.
Change 3138523 on 2016/09/23 by Dmitry.Rekman
Linux: Update hlslcc now that we're not rebuilding it each time.
Change 3138658 on 2016/09/23 by Josh.Adams
- Moved UT's Social Plugin into NotForLicensees
Change 3139042 on 2016/09/23 by Dmitry.Rekman
Linux: more robust check of installed packages.
- Also added mono-devel to the list of packages installed on 14.04.
Change 3139674 on 2016/09/26 by Dmitry.Rekman
Fix crash when editing widget blueprints (UE-35185).
- Caused by name collision due to copy/pasted code; aliased classes diverged and this resulted in all kinds of weird memory stomping.
- Renamed the class and also applied the same workaround (removing static) to prevent likely crashes on exit as happened with the original class (see UE-30795).
Change 3140203 on 2016/09/26 by Josh.Adams
- Wolf Fix for SHIPPING
Change 3140206 on 2016/09/26 by Josh.Adams
- NEX work, still in progress
Change 3140276 on 2016/09/26 by Josh.Adams
- Fixed Wolf compile error
Change 3140485 on 2016/09/26 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3140570 on 2016/09/26 by Dmitry.Rekman
SDL2: Delete obsolete files.
- We now have local changes to SDL2, so this tarball is no longer accurate and just takes unnecessary space.
Change 3140577 on 2016/09/26 by Dmitry.Rekman
Fix CudaTest monolithic build.
- Not the best fix, the better fix is to build against bundled libc++.
Change 3141184 on 2016/09/27 by Keith.Judge
Add FXboxOneApplication::GetXboxOneApplication to fix a save/load game assert.
#jira UE-35973
Change 3141623 on 2016/09/27 by Chris.Babcock
Support hiding virtual keyboard on Android
#jira UE-34201
#ue4
#android
Change 3141887 on 2016/09/27 by Joe.Graf
Added support for additional plugin directories that are specified by the .uproject file
New plugin wizard adds to the additional plugin directories if the user specifies a directory outside of Engine/Plugins or Game/Plugins
Change 3141916 on 2016/09/27 by Josh.Adams
- Worked around compile issues (at least with Wolf UT). This is well documented in a Jira (UE-29925)
Change 3141926 on 2016/09/27 by Josh.Adams
- Support for skipping Wolf user selector (-nologinui)
Change 3141938 on 2016/09/27 by Chris.Babcock
Allow Android media player to seek past 999ms (contributed by rcywongaa)
#jira UE-36453
#PR #2797
#ue4
#android
Change 3142207 on 2016/09/27 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3142219 on 2016/09/27 by Josh.Adams
- Wolf PhysX 3.4 libs and includes
Change 3142220 on 2016/09/27 by Josh.Adams
- File that had to be fixed up after main merge (missed adding it to the huge integrate CL)
Change 3142314 on 2016/09/27 by Chase.McAllister
#jira UE-35011 fixes to some assets to remove redundancies/output log spam
Change 3142510 on 2016/09/27 by Daniel.Lamb
Fixed up resave lightmaps commandlet so that world transforms don't get applied twice.
#jira UE-35942
Change 3142650 on 2016/09/27 by Chris.Babcock
Android support for Linux by yaakuro
- requires CodeWorks for Android Linux installed and OpenJDK 1.8
- need to set Android SDK paths manually in Project Settings
#jira UE-32752
#jira UE-32753
#PR #2564
#PR #2565
#ue4
#android
#linux
Change 3142802 on 2016/09/27 by Dmitry.Rekman
Upgrade to SDL 2.0.5-ish (still technically 2.0.4).
- Upstream revision 10374:dccf51aee79b.
- Merged all our changes hopefully.
Change 3143075 on 2016/09/28 by Luke.Thatcher
[RENDERING] [~] Add check to FBatchedElements::AddSprite to catch null textures. If the texture is null here, we will crash later in the RHI. At least now we'll get the callstack of the code adding the null textured sprite, since I don't have a repro.
#jira UE-33077
Change 3143219 on 2016/09/28 by Daniel.Lamb
Added new is compiling function which tells you if it's really compiling instead of lying.
If def out additional logging for debugging shader compilation issue for 4.14 release.
Change 3143428 on 2016/09/28 by Luke.Thatcher
[PLATFORM] [PS4] [+] Use PS4 SDK 4.008.061
Change 3143488 on 2016/09/28 by Daniel.Lamb
Changed defaults for skip cooking editor content to true.
Change 3143526 on 2016/09/28 by Daniel.Lamb
Increased the concurrent shader compile limit while in the cooker.
#test Cook paragon
Change 3143874 on 2016/09/28 by Chris.Babcock
Read Android environment variables from .bashrc on Linux
#jira UE-36565
#ue4
#android
#linux
Change 3143911 on 2016/09/28 by Dmitry.Rekman
Fix SDL EGL API binding (UE-18979).
- Contains PR #1398 by x414e54.
- Also fixes offscreen backend that needed to provide a global mouse state after the SDL upgrade.
Change 3143929 on 2016/09/28 by Daniel.Lamb
Removed some more temporary logging.
#test Cook paragon
Change 3143959 on 2016/09/28 by Jeff.Campeau
Media Player for Xbox One
Change 3143997 on 2016/09/28 by Dmitry.Rekman
Linux: faster linking in Debug.
- Do not apply --as-needed to Debug build since taking a hit of several tens of seconds on startup is better than linking for ~4 more minutes when iterating.
Change 3144004 on 2016/09/28 by Dmitry.Rekman
Linux: make SCW dump core on crash in debug builds.
- If the editor (not SCW itself) is built in Debug, make SCW dump cores if they ever crash. This makes it debug easier (at the risk of running of disk space).
Change 3144007 on 2016/09/28 by Dmitry.Rekman
Linux: Allow equals character in command line parameter value (UE-26406).
- PR #2019 by bozzaro.
- Allows passing parameters like -Switch=Key=Value.
Change 3144042 on 2016/09/28 by Jeff.Campeau
Add tag for DX12 support being experimental in target settings.
#jira UE-36150
Change 3144068 on 2016/09/28 by Dmitry.Rekman
Linux: enable using xgConsole in UAT (UE-28096).
- PR #2144 by bozzaro.
- Picks correct xgConsole binary.
- Allegedly fixes crash in CombineXGEItemFile on mono.
Change 3144120 on 2016/09/28 by Michael.Trepka
Copying //Tasks/UE4/Dev-HighDPI/... to //UE4/Dev-Platform/...
Change 3144172 on 2016/09/28 by Chris.Babcock
Add libpng 1.5.27 for Android
#jira UE-36573
#ue4
#android
Change 3144318 on 2016/09/28 by Chris.Babcock
Correct logic for checking .bashrc on Linux
#ue4
#android
Change 3144331 on 2016/09/28 by Dmitry.Rekman
Linux: repair ARM server builds.
- Also: print info about C++ library being used and allow the override via environment variable UE4_LINUX_USE_LIBCXX (either 0 or 1).
Change 3144354 on 2016/09/28 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
this is intermediate, not fully working
Change 3144368 on 2016/09/28 by Josh.Adams
- Moved the new Social files into NFL
Change 3144395 on 2016/09/28 by Chris.Babcock
Add missing functions for AndroidWebBrowserWindow
#ue4
#android
Change 3144417 on 2016/09/28 by Josh.Adams
- Probable fix for FWebBrowserWindow missing virtuals
Change 3144438 on 2016/09/28 by Jeff.Campeau
XDK updated to 160802
Change 3144569 on 2016/09/29 by Dmitry.Rekman
Linux: allow a selectable clock source (UE-36564).
- The engine will now select the best performing clock on start instead of hard-coding CLOCK_REALTIME. This will happen as part of global initialization before main() to prevent clock skew.
- Also fixes a problem of the engine not being able to start on Windows 10 since previously hard-coded clock id was not supported there.
#tests Compiled and ran a few targets (including non-monolithic). Tried bogus clock sources. Haven't actually tried on Win10 (don't have a machine atm).
Change 3145108 on 2016/09/29 by Joe.Graf
Fixed cases where path relative external plugin paths would generate the wrong path when running Unreal Header Tool (and probably other tools)
Change 3145245 on 2016/09/29 by Joe.Graf
#wolf
Checking in removal of plugin use on Win64 per Josh's request
Change 3145514 on 2016/09/29 by Will.Fissler
Updated Mac Info.plist files to disable high DPI on macOS 10.12
Change 3145538 on 2016/09/29 by Josh.Adams
- Worked around a physics task graph issue with using the new lock free stuff on Wolf, joining PS4 and XboxOne. Wolf was crashing on some boots.
Change 3145540 on 2016/09/29 by Josh.Adams
- Fix for checking some Wolf dev tool installation existence
- Fix for various Wolf build issues
- Fix for Wolf devices not showing up in Launch on
Change 3145542 on 2016/09/29 by Josh.Adams
- Pulled over Wolf changes from Wolf branch into Dev-Platform
Change 3145572 on 2016/09/29 by Josh.Adams
- Cleaned up Wolf SDK error logs which really messed up GenProjectFiles for some class of people.
#jira UE-36591
Change 3145769 on 2016/09/29 by Chris.Babcock
Remove duplicate platforms from deploy list in UFE
#jira UE-36636
#ue4
Change 3146061 on 2016/09/29 by Chris.Babcock
Linux: be less spammy in log when launching external procs
#jira UE-36638
#ue4
#linux
Change 3146208 on 2016/09/29 by Dmitry.Rekman
Linux: fix PhysX crash (UE-36613).
- PX_RESTRICT was unwarrantedly applied to memMove, allowing clang to replace the memmove() call to memcpy() at -O2 and above.
- This caused PxArray::remove() to duplicate the elements of its array (in POD case) and this opened doors to all kinds of fun.
#jira UE-36613
Change 3146476 on 2016/09/30 by Josh.Adams
- Moved a UBT log that could pollute QA logs with Wolf secrets to Verbose
Change 3146554 on 2016/09/30 by Josh.Adams
- Removed another wolf secret log
Change 3146626 on 2016/09/30 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3146712 on 2016/09/30 by Josh.Adams
- Fixed case for building Android on Linux
#jira #UE-36652
Change 3146844 on 2016/09/30 by Josh.Adams
- Removed ES2 shader compiling from TVOS, and force Metal compiling
#jira UE-36306
Change 3146865 on 2016/09/30 by Daniel.Lamb
Removed temp logging for materials
#test Launch on paragon
Change 3146874 on 2016/09/30 by Dmitry.Rekman
Linux: add rpath for libTextureConverter.so (UE-36620).
Change 3147030 on 2016/09/30 by Josh.Adams
- Version check workaround for IOS9.3/TVOS9.2 defining __IPHONE_10_0 which breaks our IOS10 code checks
#jira UE-36623
Change 3147151 on 2016/09/30 by Josh.Adams
- Fixed zlib.build.cs for XboxOne, which came in from another branch without an include path, yet somehow main is compiling?
Change 3147621 on 2016/09/30 by Michael.Trepka
Fix for setting up RPATHs for third party dylibs for packaged code-based games on Mac
Change 3147712 on 2016/09/30 by Josh.Adams
- Fixed metal crash StrategyGame crash. Recent code was checking IsES2Platform for HDR decoding in scene capture, and Metal hasn't been IsES2 since may. Changed to IsMobilePlatform.
#jira UE-36225
Change 3147725 on 2016/09/30 by Josh.Adams
- Fixed yet another Wolf log for people with Wolf access but no SDK
[CL 3147801 by Josh Adams in Main branch]
2016-09-30 21:21:09 -04:00
/**
* Update the list of plugin directories to scan
* This will take care of checking out and saving the updated . uproject file automatically
*
* @ param InDir directory to add / remove
* @ param bAddOrRemove true if the directory should be added to this project , false if it should not
*/
static void UpdateAdditionalPluginDirectory ( const FString & InDir , const bool bAddOrRemove ) ;
2015-05-01 14:00:34 -04:00
2014-03-14 14:13:41 -04:00
private :
2014-09-09 12:16:36 -04:00
static FString GetHardwareConfigString ( const FProjectInformation & InProjectInfo ) ;
2014-03-14 14:13:41 -04:00
/** Generates a new project without using a template project */
2015-04-09 11:11:48 -04:00
static bool GenerateProjectFromScratch ( const FProjectInformation & InProjectInfo , FText & OutFailReason , FText & OutFailLog ) ;
2014-03-14 14:13:41 -04:00
/** Generates a new project using a template project */
2015-06-29 08:27:10 -04:00
static bool CreateProjectFromTemplate ( const FProjectInformation & InProjectInfo , FText & OutFailReason , FText & OutFailLog , TArray < FString > * OutCreatedFiles = nullptr ) ;
2014-03-14 14:13:41 -04:00
2014-11-10 17:04:43 -05:00
/** Sets the engine association for a new project. Handles foreign and non-foreign projects. */
static bool SetEngineAssociationForForeignProject ( const FString & ProjectFileName , FText & OutFailReason ) ;
2015-02-09 10:40:24 -05:00
/** Insert any required feature packs into the DefaultGame.ini file */
static bool InsertFeaturePacksIntoINIFile ( const FProjectInformation & InProjectInfo , FText & OutFailReason ) ;
2014-12-01 19:04:12 -05:00
2015-06-17 03:25:33 -04:00
/*
* Insert the addition files from any feature packs specified in the temapalte defs file
* @ param InProjectInfo Project infor to add content for
* @ param CreatedFiles List of files we copied
* @ param OutFailReason Failure reason ( if any )
*
* @ returns true if no errors
*/
static bool AddSharedContentToProject ( const FProjectInformation & InProjectInfo , TArray < FString > & CreatedFiles , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Returns list of starter content files */
static void GetStarterContentFiles ( TArray < FString > & OutFilenames ) ;
/** Returns the template defs ini filename */
static FString GetTemplateDefsFilename ( ) ;
2014-05-08 15:03:34 -04:00
/** Checks the name for an underscore and the existence of XB1 XDK */
static bool NameContainsUnderscoreAndXB1Installed ( const FString & TestName ) ;
2014-03-14 14:13:41 -04:00
/** Returns true if the project file exists on disk */
static bool ProjectFileExists ( const FString & ProjectFile ) ;
/** Returns true if any project files exist in the given folder */
static bool AnyProjectFilesExistInFolder ( const FString & Path ) ;
/** Returns true if file cleanup on failure is enabled, false if not */
static bool CleanupIsEnabled ( ) ;
/** Creates ini files for a new project. On failure, OutFailReason will be populated. */
2014-09-09 12:16:36 -04:00
static bool GenerateConfigFiles ( const FProjectInformation & InProjectInfo , TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Creates the basic source code for a new project. On failure, OutFailReason will be populated. */
2014-09-23 13:55:06 -04:00
static bool GenerateBasicSourceCode ( const FString & NewProjectSourcePath , const FString & NewProjectName , const FString & NewProjectRoot , TArray < FString > & OutGeneratedStartupModuleNames , TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Creates the game framework source code for a new project (Pawn, GameMode, PlayerControlleR). On failure, OutFailReason will be populated. */
static bool GenerateGameFrameworkSourceCode ( const FString & NewProjectSourcePath , const FString & NewProjectName , TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
/** Creates the batch file to regenerate code projects. */
static bool GenerateCodeProjectGenerationBatchFile ( const FString & ProjectFolder , TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
/** Creates the batch file for launching the editor or game */
static bool GenerateLaunchBatchFile ( const FString & ProjectName , const FString & ProjectFolder , bool bLaunchEditor , TArray < FString > & OutCreatedFiles , FText & OutFailReason ) ;
/** Returns the copyright line used at the top of all files */
static FString MakeCopyrightLine ( ) ;
/** Generates a header file for a UObject class. OutSyncLocation is a string representing the preferred cursor sync location for this file after creation. */
2014-10-10 04:34:56 -04:00
static bool GenerateClassHeaderFile ( const FString & NewHeaderFileName , const FString UnPrefixedClassName , const FNewClassInfo ParentClassInfo , const TArray < FString > & ClassSpecifierList , const FString & ClassProperties , const FString & ClassFunctionDeclarations , FString & OutSyncLocation , const FModuleContextInfo & ModuleInfo , bool bDeclareConstructor , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
2015-01-26 20:13:06 -05:00
/** Finds the cursor sync location in the source file and reports it back as a string */
static void HarvestCursorSyncLocation ( FString & FinalOutput , FString & OutSyncLocation ) ;
2014-03-14 14:13:41 -04:00
/** Generates a cpp file for a UObject class */
2015-01-26 20:13:06 -05:00
static bool GenerateClassCPPFile ( const FString & NewCPPFileName , const FString UnPrefixedClassName , const FNewClassInfo ParentClassInfo , const TArray < FString > & AdditionalIncludes , const TArray < FString > & PropertyOverrides , const FString & AdditionalMemberDefinitions , FString & OutSyncLocation , const FModuleContextInfo & ModuleInfo , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Generates a Target.cs file for a game module */
static bool GenerateGameModuleTargetFile ( const FString & NewTargetFileName , const FString & ModuleName , const TArray < FString > & ExtraModuleNames , FText & OutFailReason ) ;
/** Generates a Build.cs file for a Editor module */
static bool GenerateEditorModuleBuildFile ( const FString & NewBuildFileName , const FString & ModuleName , const TArray < FString > & PublicDependencyModuleNames , const TArray < FString > & PrivateDependencyModuleNames , FText & OutFailReason ) ;
/** Generates a Target.cs file for a Editor module */
static bool GenerateEditorModuleTargetFile ( const FString & NewTargetFileName , const FString & ModuleName , const TArray < FString > & ExtraModuleNames , FText & OutFailReason ) ;
/** Generates a main game module cpp file */
static bool GenerateGameModuleCPPFile ( const FString & NewGameModuleCPPFileName , const FString & ModuleName , const FString & GameName , FText & OutFailReason ) ;
/** Generates a main game module header file */
static bool GenerateGameModuleHeaderFile ( const FString & NewGameModuleHeaderFileName , const TArray < FString > & PublicHeaderIncludes , FText & OutFailReason ) ;
/** Handler for when the user confirms a project update */
static void OnUpdateProjectConfirm ( ) ;
2014-08-22 11:35:01 -04:00
/** @param OutProjectCodeFilenames Contains the filenames of the project source code files */
static void GetProjectCodeFilenames ( TArray < FString > & OutProjectCodeFilenames ) ;
2015-03-17 09:34:18 -04:00
/**
* Updates the projects and modifies FProjectDescriptor accordingly to given modifier .
*
* @ param Modifier Callback delegate that will modify the project descriptor accordingly .
*/
static void UpdateProject ( const FProjectDescriptorModifier & Modifier ) ;
/**
* Updates the project file .
*/
static void UpdateProject ( ) ;
2014-03-14 14:13:41 -04:00
/**
* Updates the projects , and optionally the modules names
*
* @ param StartupModuleNames if specified , replaces the existing module names with this version
*/
static void UpdateProject ( const TArray < FString > * StartupModuleNames ) ;
/** Handler for when the user opts out of a project update */
static void OnUpdateProjectCancel ( ) ;
/**
2014-07-22 15:58:02 -04:00
* Updates the loaded game project file to the current version and to use the given modules
2014-03-14 14:13:41 -04:00
*
* @ param ProjectFilename The name of the project ( used to checkout from source control )
2014-07-22 15:58:02 -04:00
* @ param EngineIdentifier The identifier for the engine to open the project with
2014-03-14 14:13:41 -04:00
* @ param StartupModuleNames if specified , replaces the existing module names with this version
* @ param OutFailReason Out , if unsuccessful this is the reason why
* @ return true , if successful
*/
2014-07-22 15:58:02 -04:00
static bool UpdateGameProjectFile ( const FString & ProjectFilename , const FString & EngineIdentifier , const TArray < FString > * StartupModuleNames , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
2015-03-17 09:34:18 -04:00
/**
* Updates the loaded game project file to the current version and modifies FProjectDescriptor accordingly to given modifier .
*
* @ param ProjectFilename The name of the project ( used to checkout from source control )
* @ param EngineIdentifier The identifier for the engine to open the project with
* @ param Modifier Callback delegate that will modify the project descriptor accordingly .
* @ param OutFailReason Out , if unsuccessful this is the reason why
* @ return true , if successful
*/
static bool UpdateGameProjectFile ( const FString & ProjectFilename , const FString & EngineIdentifier , const FProjectDescriptorModifier & Modifier , FText & OutFailReason ) ;
/**
* Updates the loaded game project file to the current version .
*
* @ param ProjectFilename The name of the project ( used to checkout from source control )
* @ param EngineIdentifier The identifier for the engine to open the project with
* @ param OutFailReason Out , if unsuccessful this is the reason why
* @ return true , if successful
*/
static bool UpdateGameProjectFile ( const FString & ProjectFilename , const FString & EngineIdentifier , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
/** Checks the specified game project file out from source control */
static bool CheckoutGameProjectFile ( const FString & ProjectFilename , FText & OutFailReason ) ;
/** Internal handler for AddCodeToProject*/
2015-04-17 10:02:43 -04:00
static EAddCodeToProjectResult AddCodeToProject_Internal ( const FString & NewClassName , const FString & NewClassPath , const FModuleContextInfo & ModuleInfo , const FNewClassInfo ParentClassInfo , const TSet < FString > & DisallowedHeaderNames , FString & OutHeaderFilePath , FString & OutCppFilePath , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
2015-01-16 15:39:47 -05:00
/** Internal handler for IsValidBaseClassForCreation */
DECLARE_DELEGATE_RetVal_OneParam ( bool , FDoesClassNeedAPIExportCallback , const FString & /*ClassModuleName*/ ) ;
static bool IsValidBaseClassForCreation_Internal ( const UClass * InClass , const FDoesClassNeedAPIExportCallback & InDoesClassNeedAPIExport ) ;
2014-05-01 10:58:35 -04:00
/** Handler for the user confirming they've read the name legnth warning */
static void OnWarningReasonOk ( ) ;
2014-06-18 06:45:20 -04:00
/** Given a source file name, find its location within the project */
2014-08-04 18:21:05 -04:00
static bool FindSourceFileInProject ( const FString & InFilename , const FString & InSearchPath , FString & OutPath ) ;
2014-05-14 16:05:52 -04:00
2015-03-17 09:34:18 -04:00
/**
* Gets required additional dependencies for fresh project for given class info .
*
* @ param ClassInfo Given class info .
*
* @ returns Array of required dependencies .
*/
static TArray < FString > GetRequiredAdditionalDependencies ( const FNewClassInfo & ClassInfo ) ;
/**
* Updates startup module names in project descriptor .
*
* @ param Descriptor Descriptor to update .
* @ param StartupModuleNames Modules to fill .
*
* @ returns True if descriptor has been modified . False otherwise .
*/
static bool UpdateStartupModuleNames ( FProjectDescriptor & Descriptor , const TArray < FString > * StartupModuleNames ) ;
/**
* Updates additional dependencies in project descriptor .
*
* @ param Descriptor Descriptor to update .
* @ param RequiredDependencies Required dependencies .
* @ param ModuleName Module name for which those dependencies are required .
*
* @ returns True if descriptor has been modified . False otherwise .
*/
static bool UpdateRequiredAdditionalDependencies ( FProjectDescriptor & Descriptor , TArray < FString > & RequiredDependencies , const FString & ModuleName ) ;
2015-05-01 14:00:34 -04:00
/** checks the project ini file against the default ini file to determine whether or not the build settings have changed from default */
static bool HasDefaultBuildSettings ( const FName InPlatformInfoName ) ;
static bool DoProjectSettingsMatchDefault ( const FString & InPlatformnName , const FString & InSection , const TArray < FString > * InBoolKeys , const TArray < FString > * InIntKeys = NULL , const TArray < FString > * InStringKeys = NULL ) ;
2014-03-14 14:13:41 -04:00
private :
2015-03-17 09:34:18 -04:00
/**
* Updates the projects and modifies FProjectDescriptor accordingly to given modifier .
*
* @ param Modifier Callback delegate that will modify the project descriptor accordingly .
*/
static void UpdateProject_Impl ( const FProjectDescriptorModifier * Modifier ) ;
/**
* Updates the loaded game project file to the current version and modifies FProjectDescriptor accordingly to given modifier .
*
* @ param ProjectFilename The name of the project ( used to checkout from source control )
* @ param EngineIdentifier The identifier for the engine to open the project with
* @ param Modifier Callback delegate that will modify the project descriptor accordingly .
* @ param OutFailReason Out , if unsuccessful this is the reason why
* @ return true , if successful
*/
static bool UpdateGameProjectFile_Impl ( const FString & ProjectFilename , const FString & EngineIdentifier , const FProjectDescriptorModifier * Modifier , FText & OutFailReason ) ;
2014-03-14 14:13:41 -04:00
static TWeakPtr < SNotificationItem > UpdateGameProjectNotification ;
2014-05-01 10:58:35 -04:00
static TWeakPtr < SNotificationItem > WarningProjectNameNotification ;
2015-06-17 03:25:33 -04:00
static FString DefaultFeaturePackExtension ;
2014-03-14 14:13:41 -04:00
} ;