2019-12-26 15:33:43 -05:00
// Copyright Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
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 "ReferenceInfoUtils.h"
# include "HAL/FileManager.h"
# include "Misc/Paths.h"
# include "Misc/OutputDeviceFile.h"
# include "HAL/IConsoleManager.h"
# include "Modules/ModuleManager.h"
# include "Serialization/ArchiveUObject.h"
# include "UObject/Class.h"
# include "UObject/UObjectIterator.h"
# include "UObject/Package.h"
# include "Engine/Level.h"
# include "GameFramework/Actor.h"
# include "Materials/MaterialInterface.h"
2022-05-02 18:06:48 -04:00
# include "AssetRegistry/AssetData.h"
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 "Editor/UnrealEdEngine.h"
# include "ThumbnailRendering/ThumbnailManager.h"
# include "Editor.h"
# include "UnrealEdGlobals.h"
2022-05-02 18:06:48 -04:00
# include "AssetRegistry/ARFilter.h"
# include "AssetRegistry/AssetRegistryModule.h"
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 "Framework/Notifications/NotificationManager.h"
# include "Widgets/Notifications/SNotificationList.h"
2014-11-12 04:43:54 -05:00
# include "Engine/Selection.h"
2014-03-14 14:13:41 -04:00
void ExecuteReferenceInfo ( const TArray < FString > & Args , UWorld * InWorld )
{
bool bShowDefault = true ;
bool bShowScript = true ;
int32 Depth = 0 ;
for ( int32 ArgIdx = 0 ; ArgIdx < Args . Num ( ) ; + + ArgIdx )
{
if ( FCString : : Stristr ( * Args [ ArgIdx ] , TEXT ( " nodefault " ) ) )
{
bShowDefault = false ;
}
if ( FCString : : Stristr ( * Args [ ArgIdx ] , TEXT ( " noscript " ) ) )
{
bShowScript = false ;
}
FParse : : Value ( * Args [ ArgIdx ] , TEXT ( " DEPTH= " ) , Depth ) ;
}
ReferenceInfoUtils : : GenerateOutput ( InWorld , Depth , bShowDefault , bShowScript ) ;
}
2022-05-09 11:01:15 -04:00
static FAutoConsoleCommandWithWorldAndArgs ActorReferenceInfoCVar (
2014-03-14 14:13:41 -04:00
TEXT ( " ReferenceInfo " ) ,
TEXT ( " Outputs reference info for selected actors to a log file. Syntax is: ReferenceInfo [-depth=<depth value>] [-nodefault] [-noscript] " ) ,
FConsoleCommandWithWorldAndArgsDelegate : : CreateStatic ( ExecuteReferenceInfo )
) ;
namespace ReferenceInfoUtils
{
typedef TMap < UObject * , TArray < UObject * > > ObjectReferenceGraph ;
typedef TMap < UObject * , int32 > ReferenceTreeMap ;
typedef TMap < UObject * , FString > ObjectNameMap ;
/**
* Data container to hold information about what is referencing a given set of assets .
*/
struct FReferencedAssets
{
/** The object that holding a reference to the set of assets */
UObject * Referencer ;
/** The set of assets that are being referenced */
TArray < UObject * > AssetList ;
/** Default ctor */
FReferencedAssets ( )
: Referencer ( NULL )
{
}
/** Sets the name of the referencer */
FReferencedAssets ( UObject * InReferencer )
: Referencer ( InReferencer )
{
}
/** Serializer **/
friend FArchive & operator < < ( FArchive & Ar , FReferencedAssets & Asset )
{
return Ar < < Asset . Referencer < < Asset . AssetList ;
}
} ;
/**
* This archive searches objects for assets . It determines the set of assets by whether they support thumbnails or not . Possibly , not best but it displays everything as thumbnails
*/
class FFindAssetsArchive : public FArchiveUObject
{
/** The root object that was used to being serialization for this archive */
UObject * StartObject ;
/** The object currently being serialized */
UObject * CurrentObject ;
/** The array to add any found assets too */
TArray < UObject * > & AssetList ;
/** Set when the global asset list is updated. Used to prevent the reference graph from being polluted by calls to the public version of BuildAssetList */
ObjectReferenceGraph * CurrentReferenceGraph ;
/** If false, ignore all assets referenced only through script */
bool bIncludeScriptRefs ;
/** If false, ignore all assets referenced only through archetype/class default objects */
bool bIncludeDefaultRefs ;
/** Maximum depth to recursively serialize objects; 0 indicates no limit to recursion */
const int32 MaxRecursionDepth ;
/** Current recursion depth */
int32 CurrentDepth ;
/**
* Manually serializes the class and archetype for the specified object so that assets which are referenced through the object ' s class / archetype can be differentiated
*/
void HandleReferencedObject ( UObject * Obj )
{
if ( CurrentReferenceGraph ! = NULL )
{
// Here we allow recursion if the current depth is less-than-equal (as opposed to less-than) because the archetype and class are treated as transparent objects
// Serialization of the class and object are controlled by the "show class refs" and "show default refs" buttons
if ( MaxRecursionDepth = = 0 | | CurrentDepth < MaxRecursionDepth )
{
// Now change the current reference list to the one for this object
if ( bIncludeDefaultRefs = = true )
{
TArray < UObject * > * ReferencedAssets = GetAssetList ( Obj ) ;
// See the comment for the bIncludeScriptRefs block
UObject * ObjectArc = Obj - > GetArchetype ( ) ;
ReferencedAssets - > AddUnique ( ObjectArc ) ;
UObject * PreviousObject = CurrentObject ;
CurrentObject = ObjectArc ;
if ( ObjectArc - > HasAnyMarks ( OBJECTMARK_TagExp ) )
{
// Temporarily disable serialization of the class, as we need to specially handle that as well
bool bSkipClassSerialization = ArIgnoreClassRef ;
ArIgnoreClassRef = true ;
ObjectArc - > UnMark ( OBJECTMARK_TagExp ) ;
ObjectArc - > Serialize ( * this ) ;
ArIgnoreClassRef = bSkipClassSerialization ;
}
CurrentObject = PreviousObject ;
}
if ( bIncludeScriptRefs = = true )
{
TArray < UObject * > * ReferencedAssets = GetAssetList ( Obj ) ;
// We want to see assets referenced by this object's class, but classes don't have associated thumbnail rendering info
// So we'll need to serialize the class manually in order to get the object references encountered through the class to fall
// under the appropriate tree item
// Serializing the class will result in serializing the class default object; but we need to do this manually (for the same reason
// that we do it for the class), so temporarily prevent the CDO from being serialized by this archive
UClass * ObjectClass = Obj - > GetClass ( ) ;
ReferencedAssets - > AddUnique ( ObjectClass ) ;
UObject * PreviousObject = CurrentObject ;
CurrentObject = ObjectClass ;
if ( ObjectClass - > HasAnyMarks ( OBJECTMARK_TagExp ) )
{
ObjectClass - > UnMark ( OBJECTMARK_TagExp ) ;
ObjectClass - > Serialize ( * this ) ;
}
CurrentObject = PreviousObject ;
}
}
}
}
/**
* Retrieves the referenced assets list for the specified object
*/
TArray < UObject * > * GetAssetList ( UObject * Referencer )
{
check ( Referencer ) ;
TArray < UObject * > * ReferencedAssetList = CurrentReferenceGraph - > Find ( Referencer ) ;
if ( ReferencedAssetList = = NULL )
{
// add a new entry for the specified object
ReferencedAssetList = & CurrentReferenceGraph - > Add ( Referencer , TArray < UObject * > ( ) ) ;
}
return ReferencedAssetList ;
}
public :
/**
* Functor that starts the serialization process
*/
FFindAssetsArchive ( UObject * Search , TArray < UObject * > & OutAssetList , ObjectReferenceGraph * ReferenceGraph = NULL , int32 MaxRecursion = 0 , bool bIncludeClasses = true , bool bIncludeDefaults = false )
: StartObject ( Search )
, AssetList ( OutAssetList )
, CurrentReferenceGraph ( ReferenceGraph )
, bIncludeScriptRefs ( bIncludeClasses )
, bIncludeDefaultRefs ( bIncludeDefaults )
, MaxRecursionDepth ( MaxRecursion )
, CurrentDepth ( 0 )
{
ArIsObjectReferenceCollector = true ;
ArIgnoreClassRef = ! bIncludeScriptRefs ;
CurrentObject = StartObject ;
* this < < StartObject ;
}
/**
* Adds the object reference to the asset list if it supports thumbnails
* Recursively searches through its references for more assets
*/
FArchive & operator < < ( UObject * & Obj )
{
// Don't check null references or objects already visited
if ( Obj ! = NULL & & Obj - > HasAnyMarks ( OBJECTMARK_TagExp ) & &
// Ff we wish to filter out assets referenced through script, we need to ignore all class objects, not just the UObject::Class reference
( ! ArIgnoreClassRef | | ( Cast < UClass > ( Obj ) = = NULL ) ) )
{
// Clear the search flag so we don't revisit objects
Obj - > UnMark ( OBJECTMARK_TagExp ) ;
if ( Obj - > IsA ( UField : : StaticClass ( ) ) )
{
// Skip all of the other stuff because the serialization of UFields will quickly overflow our stack given the number of temporary variables we create in the below code
Obj - > Serialize ( * this ) ;
}
else
{
// Only report this object reference if it supports thumbnail display this eliminates all of the random objects like functions, properties, etc.
const bool bCDO = Obj - > HasAnyFlags ( RF_ClassDefaultObject ) ;
const bool bIsContent = GUnrealEd - > GetThumbnailManager ( ) - > GetRenderingInfo ( Obj ) ! = NULL ;
const bool bIncludeAnyway = ( Obj - > GetOuter ( ) = = CurrentObject ) & & ( Cast < UClass > ( CurrentObject ) = = NULL ) ;
const bool bShouldReportAsset = ! bCDO & & ( bIsContent | | bIncludeAnyway ) ;
// Remember which object we were serializing
UObject * PreviousObject = CurrentObject ;
if ( bShouldReportAsset )
{
CurrentObject = Obj ;
// Add this object to the list to display
AssetList . Add ( CurrentObject ) ;
if ( CurrentReferenceGraph ! = NULL )
{
TArray < UObject * > * CurrentObjectAssets = GetAssetList ( PreviousObject ) ;
check ( CurrentObjectAssets ) ;
// Add this object to the list of objects referenced by the object currently being serialized
CurrentObjectAssets - > Add ( CurrentObject ) ;
HandleReferencedObject ( CurrentObject ) ;
}
}
else if ( Obj = = StartObject )
{
HandleReferencedObject ( Obj ) ;
}
if ( MaxRecursionDepth = = 0 | | CurrentDepth < MaxRecursionDepth )
{
CurrentDepth + + ;
// Now recursively search this object for more references
Obj - > Serialize ( * this ) ;
CurrentDepth - - ;
}
// Restore the previous object that was being serialized
CurrentObject = PreviousObject ;
}
}
return * this ;
}
} ;
/** This is a list of classes that should be ignored when building the asset list as they are always loaded and therefore not pertinent */
TArray < UClass * > IgnoreClasses ;
/** This is a list of packages that should be ignored when building the asset list as they are always loaded and therefore not pertinent */
TArray < UObject * > IgnorePackages ;
/** Holds the list of assets that are being referenced by the current selection */
TArray < FReferencedAssets > Referencers ;
/** The object graph for the assets referenced by the currently selected actors */
ObjectReferenceGraph ReferenceGraph ;
/** Caches the names of the objects referenced by the currently selected actors */
ObjectNameMap ObjectNameCache ;
/**
* Checks an object to see if it should be included for asset searching
*/
bool ShouldSearchForAssets ( const UObject * Object , const TArray < UClass * > & ClassesToIgnore , const TArray < UObject * > & PackagesToIgnore , bool bIncludeDefaults = false )
{
bool bShouldSearch = true ;
// Package name transition
if ( Object - > HasAnyFlags ( RF_ClassDefaultObject ) & & ( Object - > GetOutermost ( ) - > GetFName ( ) = = NAME_CoreUObject | | Object - > GetOutermost ( ) - > GetFName ( ) = = GLongCoreUObjectPackageName ) )
{
// Ignore all class default objects for classes which are declared in Core
bShouldSearch = false ;
}
// Check to see if we should ignore a class
for ( int32 Index = 0 ; Index < ClassesToIgnore . Num ( ) ; Index + + )
{
// Bail if we are on the ignore list
if ( Object - > IsA ( ClassesToIgnore [ Index ] ) )
{
bShouldSearch = false ;
break ;
}
}
if ( bShouldSearch )
{
// Check to see if we should ignore it due to package
for ( int32 Index = 0 ; Index < PackagesToIgnore . Num ( ) ; Index + + )
{
// If this object belongs to this package, bail
if ( Object - > IsIn ( PackagesToIgnore [ Index ] ) )
{
bShouldSearch = false ;
break ;
}
}
}
if ( bShouldSearch & & ! bIncludeDefaults & & Object - > IsTemplate ( ) )
{
// If this object is an archetype and we don't want to see assets referenced by defaults, don't include this object
bShouldSearch = false ;
}
return bShouldSearch ;
}
/**
* Builds a list of assets to display from the currently selected actors .
* NOTE : It ignores assets that are there because they are always loaded
* such as default materials , textures , etc .
*/
void BuildAssetList ( UWorld * InWorld , int32 Depth , bool bShowDefault , bool bShowScript )
{
// Clear the old list
Referencers . Empty ( ) ;
ReferenceGraph . Empty ( ) ;
ObjectNameCache . Empty ( ) ;
TArray < UObject * > BspMats ;
// Search all BSP surfaces for ones that are selected and add their
// Materials to a temp list
for ( int32 Index = 0 ; Index < InWorld - > GetModel ( ) - > Surfs . Num ( ) ; Index + + )
{
// Only add materials that are selected
if ( InWorld - > GetModel ( ) - > Surfs [ Index ] . PolyFlags & PF_Selected )
{
// No point showing the default material
if ( InWorld - > GetModel ( ) - > Surfs [ Index ] . Material ! = NULL )
{
BspMats . AddUnique ( InWorld - > GetModel ( ) - > Surfs [ Index ] . Material ) ;
}
}
}
// If any BSP surfaces are selected
if ( BspMats . Num ( ) > 0 )
{
FReferencedAssets * Referencer = new ( Referencers ) FReferencedAssets ( InWorld - > GetModel ( ) ) ;
// Now copy the array
Referencer - > AssetList = BspMats ;
ReferenceGraph . Add ( InWorld - > GetModel ( ) , BspMats ) ;
}
// This is the maximum depth to use when searching for references
const int32 MaxRecursionDepth = Depth ;
USelection * ActorSelection = GEditor - > GetSelectedActors ( ) ;
// Mark all objects so we don't get into an endless recursion
2021-01-21 16:22:06 -04:00
for ( FThreadSafeObjectIterator It ; It ; + + It )
2014-03-14 14:13:41 -04:00
{
// Skip the level, world, and any packages that should be ignored
if ( ShouldSearchForAssets ( * It , IgnoreClasses , IgnorePackages , bShowDefault ) )
{
It - > Mark ( OBJECTMARK_TagExp ) ;
}
else
{
It - > UnMark ( OBJECTMARK_TagExp ) ;
}
}
TArray < AActor * > SelectedActors ;
// Get the list of currently selected actors
ActorSelection - > GetSelectedObjects < AActor > ( SelectedActors ) ;
// Build the list of assets from the set of selected actors
for ( int32 Index = 0 ; Index < SelectedActors . Num ( ) ; Index + + )
{
// Set the flag for the selected item, as it could have actually been cleared by an
// earlier selected object, which would result in a crash later
SelectedActors [ Index ] - > Mark ( OBJECTMARK_TagExp ) ;
// Create a new entry for this actor
FReferencedAssets * Referencer = new ( Referencers ) FReferencedAssets ( SelectedActors [ Index ] ) ;
// Add to the list of referenced assets
FFindAssetsArchive ( SelectedActors [ Index ] , Referencer - > AssetList , & ReferenceGraph , MaxRecursionDepth , bShowScript , bShowDefault ) ;
}
// Rebuild the name cache
for ( int32 RefIndex = 0 ; RefIndex < Referencers . Num ( ) ; RefIndex + + )
{
FReferencedAssets & Referencer = Referencers [ RefIndex ] ;
if ( ! ObjectNameCache . Contains ( Referencer . Referencer ) )
{
ObjectNameCache . Add ( Referencer . Referencer , * Referencer . Referencer - > GetName ( ) ) ;
}
for ( int32 AssetIndex = 0 ; AssetIndex < Referencer . AssetList . Num ( ) ; AssetIndex + + )
{
if ( ! ObjectNameCache . Contains ( Referencer . AssetList [ AssetIndex ] ) )
{
ObjectNameCache . Add ( Referencer . AssetList [ AssetIndex ] , * Referencer . AssetList [ AssetIndex ] - > GetName ( ) ) ;
}
}
}
}
/**
* Helper method . . . returns the name of a referenced object
*/
const TCHAR * GetObjectNameFromCache ( UObject * Obj )
{
FString * CachedObjectName = ObjectNameCache . Find ( Obj ) ;
if ( CachedObjectName = = NULL )
{
CachedObjectName = & ObjectNameCache . Add ( Obj , * Obj - > GetName ( ) ) ;
}
return * * CachedObjectName ;
}
/**
* Outputs a single item for the details list
*/
void OutputDetailsItem ( FOutputDeviceFile & FileAr , FString AssetId , UObject * ReferencedObject , FString & ItemString )
{
FString ObjName = FString : : Printf ( TEXT ( " %s (%s) " ) , * ItemString , * AssetId ) ;
FString Underline ;
int32 ObjNameLen = ObjName . Len ( ) ;
for ( int32 i = 0 ; i < ObjNameLen ; + + i )
{
Underline + = TEXT ( " - " ) ;
}
// Create a string for the resource size.
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 3779049)
#rb none
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3626305 by Phillip.Kavan
#jira UE-49269 - Workaround fix for crash after packaging a nativized QAGame build with all AnimBP assets disabled for nativization by default.
Change 3627162 by Phillip.Kavan
#jira UE-49239 - Fix an invalid cast emitted to nativized codegen for converted AnimBP types.
- Regression introduced in CL# 3613358.
Change 3756887 by Ben.Zeigler
#jira UE-52380 Fix inconsistency with how FSoftObjectPtr case is managed between FLinkerSave and FArchiveSaveTagImports, which would cause a cook ensure under some circumstances
Copy of CL #3756788
Change 3756888 by Ben.Zeigler
#jira UE-45505 Fix issue where FCoreUObjectDelegates::OnAssetLoaded was being called from an inner loop inside EndLoad. Maps would register components from that callback, and if those registers started their own loads, those objects would be returned in a partially loaded state. We now defer the asset loaded callback to the very end of the loop so recursive loads work properly
Copy of CL #3753986
#thomas.sarkanen
Change 3759254 by Ben.Zeigler
Disable the duplicate PrimaryAssetId for editor only types like Maps. This can happen if content folk copy maps using the content browser, and does not actually cause a runtime problem. It still ensures for cooked types
Change 3759278 by Ben.Zeigler
Add IsTempPackage to FPackageName
Fix issue where temp/memory packages shown in a content browser/asset audit window would spam the log when it failed to find source control info for them
Change 3759613 by Phillip.Kavan
Add support for casting between mismatched soft pointer types in nativized Blueprint C++ assignment statements and function calls.
Change summary:
- Extended FEmitHelper::GenerateAutomaticCast() to consider soft pointer terms and inject C++ code to explicitly cast the RHS when needed.
#jira UE-52205
Change 3760040 by Dan.Oconnor
Add Call Stack control for viewing Blueprint call stacks when paused at a breakpoint, available from the Developer Tools menu
#jira UE-2296
Change 3760955 by Phillip.Kavan
Fix conditional (SA/CIS issue).
Change 3761356 by Ben.Zeigler
Fix DLC staging rules to handle metadata correctly and remove debug log I accidentally added. The DLC staging now iterates in a similar way to the normal staging, it just may also excluded Engine
Change 3761859 by Zak.Middleton
#ue4 - Fix crash in UStaticMesh::GetAssetRegistryTags() when FindObject is used during saving. Added Lex::ToString for physics enums ECollisionTraceFlag, EPhysicsType, and EBodyCollisionResponse.
#jira UE-52478
#tests QA game, content browser
Change 3761860 by mason.seay
Submitting test content for Async Load issue
Change 3762559 by Ben.Zeigler
#jira UE-52407 Fix it so FText can be specified in blueprint functions as default parameters. The UI showed up before but the data was lost
Change GetDefaultsAsString on Pin to always return an internal string so it can correctly be import texted, add GetDefaultsAsText for display purposes
Change 3764459 by Marc.Audy
PR #4224: Fix LoadLevelInstanceBySoftObjectPtr (Contributed by phlknght)
#jira UE-52415
Change 3764580 by Ben.Zeigler
Clean up delegates in UObjectGlobals.h, fixing several incorrect comments and moving some editor delegates into WITH_EDITOR
Change 3764602 by Ben.Zeigler
#jira UE-52487 Fix it so OnAssetLoaded gets correctly called for Assets that were async loaded while in the editor/standalone editor game.
This is necessary because they would not get registered with various editor systems for the rest of the editor session, even if opened manually
Change 3764603 by Ben.Zeigler
Related to UE-52487, now that async loading blueprints in the editor properly registers them with the blueprint actions, we need to unregister them when automated tests want them to unload. Add a ClearEditorReferences function to UBlueprint that calls the OnUnloaded editor delegate, so EngineTest doesn't need to include the editor module
Change 3764768 by Ben.Zeigler
#jira UE-52524 Fix null access crash when pasting an invalid macro instance node
Change 3766415 by Fred.Kimberley
Removing invalid assets. Most of these are out of date.
Change 3766417 by Fred.Kimberley
Add warnings when we try to export a package without a type.
Change 3766514 by Fred.Kimberley
Added a #include to fix the build.
Change 3766542 by Fred.Kimberley
Added a #include to fix the build.
Change 3766558 by Fred.Kimberley
Rename variables to avoid warnings about hiding previous variable declarations.
Change 3767619 by Marc.Audy
bActorIsBeingDestroyed must be part of transaction history
#jira UE-51796
Change 3767993 by Dan.Oconnor
Preserve graph editor controls when clicking on a hyper link, this speeds up navigation via the debugger 'step' command and Find in Blueprints control
#jira UE-52596
Change 3768146 by Marc.Audy
Fix material instance dynamic not correctly finding object in details panel customization as a result soft path changes
#jira UE-52488
Change 3769586 by Marc.Audy
Fix expose on spawn related error messages
Change 3769863 by Dan.Oconnor
Blueprint call stack now has access to frame offsets and can highlight nodes that are active on previous stack frames
#jira UE-52452
Change 3771200 by Dan.Oconnor
CIS fix - add missing DO_BLUEPRINT_GUARD
Change 3771555 by Ben.Zeigler
Add transactions for several pin class changing actions which were missing them
Change 3771589 by Ben.Zeigler
#jira UE-52665 Fix it so changing the type of a create widget or spawn actor node will correctly propagate the type change to reroute/wildcard nodes instead of disconnecting
Change 3771683 by Dan.Oconnor
Call Stack polish: background color no longer changes when undocked, prettify-ing "ExecuteUbergraph_blahblah" in to "Event Graph", resizing works correctly, added overlay message when no call stack is available
#jira UE-52567
Change 3771734 by Dan.Oconnor
Add entries for native code in the blueprint call stack view, clarifying re-entrancy
Change 3774293 by Ben.Zeigler
#jira UE-52665 Minimal fix for making sure type changes propagate through multiple rerout nodes, going to make a larger refactor in a second checkin
Change 3774328 by Ben.Zeigler
#jira UE-52665 Refactor knot nodes so there is one type propagation function that takes a direction, this fixes an issue where the second knot node in a chain would not have it's type changed when input type changed
Change 3774342 by Ben.Zeigler
#jira UE-52661 Fix crash when using blueprinted components created by a specialized subclass of UBlueprint, from PR #4249
Change 3774476 by Fred.Kimberley
Add class and function info to pin names for async nodes. This fixes a problem where redirectors for async node pins did not work.
https://udn.unrealengine.com/questions/402882/propertyredirect-fails-with-uk2node-latentgameplay.html?childToView=403808
Change 3774645 by Ben.Zeigler
#jira UE-41743 Fix it so struct split pins handle renames correctly, both for user structs and native structs
Refactor the variable rename checking in make/break struct to use the generic one I just added
Change 3775412 by Phillip.Kavan
UX improvements for Blueprint single-step debugging and breakpoints. Also added Step Out and Step Over debugging commands.
Change summary:
- Remapped the existing Step In command from F10 to F11 hotkey.
- Mapped existing Step Over command to F10 and existing Step Out command to ALT-SHIFT-F11 hotkeys.
- Added new (repurposed) icon assets for single-step debugging toolbar commands.
- Modified FPlayWorldCommands::BuildToolbar() to add new Step Over and Step Out commands to the toolbar.
- Modified FCompilerResultsLog::CalculateStableIdentifierForLatentActionManager() to remove special-case code for intermediate Tunnel Instance nodes, as these are now reverse-mapped through FullSourceBacktrackMap.
- Modified FKismetDebugUtilities::CheckBreakConditions() to more generally manage the current graph stack (i.e. not just for Blueprint Function graphs). Also fixed a bug where we had failed to reset the target graph stack depth after completing a Step Out/Over iteration.
- Modified FBlueprintDebugData::FindAllCodeLocationsFromSourceNode() to remove the additional iteration for the special Macro source node table (no longer required).
- Modified FBlueprintDebugData::RegisterNodeToCodeAssociation() to remove the Macro-specific parameters and the additional insertions into the special Macro tables (no longer required).
- Modified UK2Node_MathExpression::ValidateNodeDuringCompilation() to remove the special-case for Macro Instance source nodes, as Macro source nodes are now being mapped through the same table.
- Added FindMatchingTunnelInstanceNode() as a utility method for now in BlueprintConnectionDrawingPolicy.cpp in order to match up Macro/Composite graph source nodes with nested Tunnel Instance nodes at the current graph level. *** TODO: For 4.19 we probably should revert back to using a secondary table in the debug data to map Tunnel Instance node hierarchies to code offsets in order to result in a faster lookup time here. ***
- Modified FKismetConnectionDrawingPolicy::BuilldExecutionRoadmap() to replace the special-case for Macro Instance source nodes with a more general check for Tunnel Instance nodes that also handles Composite source nodes.
- Revised UK2Node_TunnelBoundary to strip out most of what was being used to support the profiler, while keeping its basic compiled goto behavior in order to still function as a NOP node.
- Added FKismetCompilerContext::SpawnIntermediateTunnelBoundaryNodes().
- Modified FKismetCompilerContext::ExpandTunnelsAndMacros() to no longer overwrite intermediate Macro source node mappings in the lookup table with the Macro Instance source node that triggered the Macro graph expansion. Also revised the TunnelNode case to spawn intermediate TunnelBoundary (NOP) nodes around Macro and Composite gateways; this allows breakpoints to hit on the Tunnel nodes around a source graph expansion.
- Modified FScriptBuilderBase::EmitInstrumentation() to remove special-case handling for Macro and Tunnel source nodes. These are now being mapped directly through the SourceBacktrackMap instead.
- Removed alternate breakpoint icon assets for Macro Instance and Composite nodes (no longer needed).
- Removed UK2Node::GetActiveBreakpointToolTipText() and its UK2Node_MacroInstance override (no longer required).
- Removed special case in SGraphNodeK2Base::GetOverlayBrushes() for Macro Instance and Composite nodes (no longer needed).
- Removed special-case mappings and interface methods for Tunnel nodes in FCompilerResultsLog (no longer required).
- Removed the LineNumberToMacroSourceNodeMap and LineNumberToMacroInstanceNodeMap members from the FDebuggingInfoForSingleFunction struct (no longer in use).
- Removed FBlueprintDebugData::FindMacroSourceNodeFromCodeLocation() and FindMacroInstanceNodesFromCodeLocation().
- Removed FKismetDebugUtilities::FindMacroSourceNodeForCodeLocation() (no longer in use).
- Removed special-case handling for Macro Instance nodes in FKismetDebugUtilities::OnScriptException() (no longer required). Macro source nodes are no longer being mapped to code offsets through a separate table, and we don't need to worry about saving/restoring the Active Object when debugging with a Macro Graph in the active tab.
#jira UE-2880
#jira UE-16817
Change 3776606 by mason.seay
Updated content to prevent warning from appearing
Change 3777051 by Dan.Oconnor
ComponentTemplate references in UBlueprint can no be cleared after compiling the (blueprint defined) component
#jira UE-52484
Change 3777108 by Dan.Oconnor
Look up call stack frame source name when caching a script call stack for display. This relies on debug data being generated for event stubs
#jira UE-52717, UE-52719
Change 3778277 by Marc.Audy
Fixed potential null material reference causing crash.
#jira UE-52803
Change 3778288 by Marc.Audy
PR #3957: Making FAlphaBlend BlueprintType in order to fix a bunch of broken UPROPERTY's as of 4.17 (Contributed by ill)
#jira UE-49082
Change 3778321 by Phillip.Kavan
Fix for a regression in BP script execution behavior related to misidentified latent node expansions from a macro source graph.
Change summary:
- Removed FCompilerResultsLog::FullSourceBacktrackMap (no longer in use).
- Restored FCompilerResultsLog::IntermediateTunnelNodeToTunnelInstanceMap (which was in place prior to CL# 37754112); this table was being used to map intermediate nodes resulting from a tunnel instance node expansion back to the outer tunnel instance node that triggered the expansion. Its once again being used for that reason, but I reduced the scope a bit to only include the execution path within the expansion, as that's the only mapping that we need.
- Restored FCompilerResultsLog::RegisterIntermediateTunnelNode(), but renamed it to NotifyIntermediateTunnelNode() to be consistent with the other parts of the MessageLog interface, and also removed the part of the implementation that was adding to a secondary macro expansion-to-source backtrack map (since macro expansion node lookup is now done through the main source backtrack map).
- Restored FCompilerResultsLog::GetIntermediateTunnelInstance().
- Modified FCompilerResultsLog::NotifyIntermediateObjectCreation() to remove the part of the implementation that was adding to the secondary node-only-to-source backtrack map (it was previously just a redundant copy of the main one except in the case of macro expansions).
- Modified FCompilerResultsLog::CalculateStableIdentifierForLatentActionManager() to restore the calculation of a stable UUID for nodes sourced from a macro expansion, where we had incorporated the outer intermediate tunnel instance node chain.
#jira UE-52872
Change 3778329 by Marc.Audy
PR #4241: Enforce calling superclass on ActorComponent::BeginPlay (Contributed by rlefebvre)
#jira UE-52574
Change 3778349 by Marc.Audy
Minor cleanup
Change 3759702 by Ben.Zeigler
#jira UE-52287 Prevent cook metadata like DevelopmentAssetRegistry.bin from being packed into a shipping game, by moving it into a Metadata subdirectory and updating deployment scripts to avoid that directory.
Right now it doesn't package them at all, we could change it to package them as Debug Non-UFS if desired
Change it so the asset audit UI will only load DevelopmentAssetRegistry.bin files, the cooked registry files don't have enough information any more to be useful
Remove ability for runtime game to load DevelopmentAssetRegistry.bin, this ended up not being useful
#jira UE-52158 Fix it to refresh the list of possible asset audit platforms when the refresh button is pushed
Change 3766414 by Fred.Kimberley
Data validation plugin
Change 3769923 by Ben.Zeigler
#jira UE-30347 Change ResourceSize mode enum from Inclusive to EstimatedTotal, which includes UObject serialization data as well as data for any subobjects. It now does NOT include externally referenced assets, which it did for some assets but not others
Fix Texture EstimatedTotal memory to handle LOD bias, it now reports the largest possible size in a cooked game of any platform
Fix many GetResourceSizeEx calls to match the new definition and improve accuracy
Switched several editor tools to use EstimatedTotal now that it is more useful, and removed some unused memory stats
Remove ResourceSize from UObject asset registry tags as it was misleading and inaccurate, for now it is only possible to get this for loaded objects
Remove MapFileSize from Worlds as it redundant with the generic file size. Fixed the generic file size to display using the Size format
Several UI fixes for Asset Audit and Size Map to deal with this change. Asset Audit no longer has the memory size columns, and the memory size drop down in Size Map is disabled for cooked builds
Change 3771365 by Ben.Zeigler
#jira UE-52670 Add project setting bValidateUnloadedSoftActorReferences that is true by default to match current behavior. If you set it to false it will no longer load packages to look for soft actor references when deleting/renaming actors.
[CL 3779057 by Marc Audy in Main branch]
2017-11-29 16:03:05 -05:00
const SIZE_T ReferencedObjectResourceSize = ReferencedObject - > GetResourceSizeBytes ( EResourceSizeMode : : EstimatedTotal ) ;
2014-03-14 14:13:41 -04:00
FString ResourceSizeString ;
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3152045)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3106449 on 2016/08/30 by Michael.Dupuis
#jira UETOOL-229 Added generic command icons used in Edit Menu (including contextual menu)
Change 3133997 on 2016/09/21 by Alex.Delesky
#jira UE-34079 - FSceneView parameter for FBatchedElements::Draw is no longer an optional parameter.
Change 3134132 on 2016/09/21 by Jamie.Dale
Added the "unattended" flag when running the localzation commandlets via UAT
Change 3134147 on 2016/09/21 by Frank.Fella
Core - Add multitouch support to windows.
Change 3134349 on 2016/09/21 by Michael.Dupuis
#jira UE-36151 Update the title bar to display the branch also
Change 3134355 on 2016/09/21 by Michael.Dupuis
#jira UE-36041 When initially creating a projet and trying to add everything to source control, also add the uproject file
Change 3134447 on 2016/09/21 by Alexis.Matte
#jira UE-36064
The SpriteComponent is now properly reused when duplicating a light.
Change 3134451 on 2016/09/21 by Alexis.Matte
#jira UE-22782
Make sure when we re-import we dont try to match the mesh name if the option bCombineToSingle is true
Change 3134457 on 2016/09/21 by Jamie.Dale
FInternationalization::Leetify now deals with escape sequences correctly.
This also changes it to mark all leetified text with the start and end marker, and the unit tests have been updated accordingly.
Change 3134685 on 2016/09/21 by Matt.Kuhlenschmidt
Cleaned up some of the UI for the new material slot workflow (part 1)
Change 3134743 on 2016/09/21 by Matt.Kuhlenschmidt
Fix crash clicking OK to the import mesh dialog in persona when a path is not selected. The OK button is now disabled until a valid path is selected
Change 3134760 on 2016/09/21 by Matt.Kuhlenschmidt
Guard against cascade crash if cascade was shutdown but there is an old cascade particle system component in the undo buffer that attempts to refresh cascade
Change 3134837 on 2016/09/21 by Matt.Kuhlenschmidt
Fix static analysis warnings in this file
Change 3134939 on 2016/09/21 by Nick.Darnell
Automation - Moving the functional testing hooks for the editor into a plugin, the goal is to make it so you don't have to see all the extra stuff automation adds to the editor until the game project needs it. Refactoring the way automation messages are serialized, no longer relying on a comma delimited string to serialize automation data. Improving the filter for automation window so it lets you put in a path, and find it that way. Fixing RunTests from the commandline so that it properly finds the tests, instead of jumping out of the loop as soon as it finds any one match.
Change 3134941 on 2016/09/21 by Nick.Darnell
Automation - Functional tests now support warnings as errors on a per test basis. Continued itteration on screenshot comparison.
Change 3135051 on 2016/09/21 by Matt.Kuhlenschmidt
Fixed size of material slots in persona details panel
Change 3135076 on 2016/09/21 by Nick.Darnell
Automation - Adding a missing file.
Change 3135584 on 2016/09/22 by Gareth.Martin
Removed unused ULandscapeInfo::BeginDestroy
Slight cleanup to FLandscapeEditDataInterface::DeleteLayer
Change 3135585 on 2016/09/22 by Gareth.Martin
New Count algo
Const'd Copy/Accumulate/Transform
Change 3135599 on 2016/09/22 by Gareth.Martin
Resolve crash if a Landscape Layer Info object is force deleted while it is in use :(
#jira UE-35709
Change 3135724 on 2016/09/22 by Michael.Dupuis
#jira UE-32662 Remove old migration code that was causing this side effect
Change 3135726 on 2016/09/22 by Nick.Darnell
Slate - Removing the SLATE_PRE_MULTIPLY macro.
Change 3135730 on 2016/09/22 by Nick.Darnell
UMG - Exposing the 2D hit location that the WidgetInteractionComponent hit on the WidgetComponent.
Change 3135738 on 2016/09/22 by Matt.Kuhlenschmidt
Ensure any handles to the backbuffer are released before the backbuffer is resized
https://jira.it.epicgames.net/browse/UE-30488
Change 3135810 on 2016/09/22 by Ben.Marsh
Build: Compile tools before running automated tests.
Change 3135993 on 2016/09/22 by Matt.Kuhlenschmidt
Ensure you can unpause after toggling play/pause with a keyboard shortcut. We were processing the keybinding on key down AND up which caused the unpause to instantly pause again
https://jira.it.epicgames.net/browse/UE-36276
Change 3136257 on 2016/09/22 by Matt.Kuhlenschmidt
Fixed assign of materials to components not working if you multi-select multiple components of a blueprint and assign the material. The construction script was running before all the material had been set on all components.
Change 3136318 on 2016/09/22 by Alex.Delesky
#jira UE-7405 - Forcing the mouse cursor to show and then clicking inside the viewport will no longer cause the mouse to lose focus
Change 3136494 on 2016/09/22 by Matt.Kuhlenschmidt
Fix crash restarting a mission in Odin
Change 3136741 on 2016/09/22 by Cody.Albert
Fixed SButton and SWidget to not multiply color and opacity, since that's already being done by SCompoundWidget
#jira UE-36322
Change 3137711 on 2016/09/23 by Matt.Kuhlenschmidt
Added guard against slate rendering with deleted materials. In this will now be caught with a looged with the deleted material name.
Change 3137713 on 2016/09/23 by Matt.Kuhlenschmidt
Removed the pooled draw elements stuff which is not used
Change 3137791 on 2016/09/23 by Nick.Darnell
MediaPlayer - Removing .png from one of the style files, as that's not required. Was causing warnings to be logged on load.
Change 3137793 on 2016/09/23 by Nick.Darnell
Localization - Adjusting some log statements to say with instead of w/
Change 3137796 on 2016/09/23 by Nick.Darnell
Slate - Adding missing and replacing corrupted style files in the editor.
Change 3137864 on 2016/09/23 by Matt.Kuhlenschmidt
Fixed "actors are referenced are you sure you want to delete" dialog appearing when you are copying a lot of actors to another level
Change 3137876 on 2016/09/23 by Jamie.Dale
Added allocation tagging to MProf2
This hooks into the existing FScopeCycleCounterUObject used by the stats system to track object tags (object, package, and class) when an allocation is made. Tags should be in the format "Category:Tag", and the "Tag" part may include "/" to create levels in the tag hierarchy (as shown in the MProf2 tool).
#jira UETOOL-950
Change 3137982 on 2016/09/23 by Gareth.Martin
Added Invoke() support to CopyIf
Change 3137983 on 2016/09/23 by Gareth.Martin
Added ULandscapeInfo::ForAllLandscapeProxies to clean up a lot of horrible code
- Removed some dependencies on ALandscape and ALandscapeStreamingProxy in the process :)
Also made FLandscapeEditorLayerSettings's constructor explicit to clean up some other horrible code
Change 3138053 on 2016/09/23 by Matt.Kuhlenschmidt
Fixed Child Actor Template properties not visible after changing Child Actor Class
Change 3138079 on 2016/09/23 by Jamie.Dale
Fixing some Clang warnings
Change 3138087 on 2016/09/23 by Jamie.Dale
Added GetResourceSizeEx and GetResourceSizeBytes, and deprecated GetResourceSize
GetResourceSizeEx populates a struct which reports not only how much memory is allocated, but also which arenas the memory was allocated from. GetResourceSizeBytes just wraps a call to GetResourceSizeEx and returns the total size from all arenas (this has the same behavior as the now deprecated GetResourceSize).
Classes that used to override GetResourceSize should instead override GetResourceSizeEx and report their allocations as appropriate.
#jira UETOOL-952
Change 3138127 on 2016/09/23 by Gareth.Martin
Fixed crash when merging levels containing landscape
#jira UE-36267
Change 3138821 on 2016/09/23 by Stephan.Jiang
Fixes "Select all input node" doesn't work properly on output node.
#jira UE-36335
Change 3138915 on 2016/09/23 by Stephan.Jiang
Disable "select all linked nodes" for output nodes in material editor
Change 3139341 on 2016/09/25 by Nick.Darnell
Automation - Moving the Blueprint Compiler Tests into the RuntimeTests plugin, and making the context client only since that's the only valid place to runt these tests.
Change 3139342 on 2016/09/25 by Nick.Darnell
Landscape - Fixing some compiler errors on mac.
Change 3139345 on 2016/09/25 by Nick.Darnell
Automation - Spelling and cleanup.
Change 3139346 on 2016/09/25 by Nick.Darnell
Engine - Changing a check to an ensure, there's no reason to crash if this happens.
Change 3139347 on 2016/09/25 by Nick.Darnell
Automation - Making EFunctionalTestResult a BlueprintType
Change 3139348 on 2016/09/25 by Nick.Darnell
Automation - Adding another test map.
Change 3139676 on 2016/09/26 by Michael.Dupuis
#jira UE-32335 If we are a config object simply permit the transaction for undo/redo
Change 3139702 on 2016/09/26 by Nick.Darnell
UMG - Making GetLocalHitLocation on UWidgetComponent virtual.
Change 3139760 on 2016/09/26 by Alexis.Matte
Make sure we remove override materials from the list when the mesh point by the component has less materials.
#jira UE-28845
Change 3139761 on 2016/09/26 by Alex.Delesky
Added additional validation code to FPropertyNode to now properly validate TMap value and key nodes.
#jira none
Change 3139843 on 2016/09/26 by Alex.Delesky
#jira UE-36066 - Clearing all options from a ComboBox String when selecting an option will now also clear out the selected text correctly.
Change 3139880 on 2016/09/26 by Frank.Fella
QAGame - Update multitouch test with less crashy assets?
Change 3139908 on 2016/09/26 by Matt.Kuhlenschmidt
Fix selections having the potential to be out of sync after undo/redo
Change 3139928 on 2016/09/26 by Nick.Darnell
Automation - tweaking the test maps some more.
Change 3140646 on 2016/09/26 by Matt.Kuhlenschmidt
Fix false positive with the test for vaild materials being rendered by slate.
Change 3140912 on 2016/09/26 by Frank.Fella
Core - Fix multitouch ifdef which was preventing it from actually being enabled.Also update test level blueprint so that it's actually testable.
Change 3141218 on 2016/09/27 by Matt.Kuhlenschmidt
PR #2798: BP open anim interferes with mouse movement (Contributed by projectgheist)
Change 3141223 on 2016/09/27 by Jamie.Dale
Updated UTextProperty::Identical to no longer compare display strings all the time
It was supposed to compare the identity at runtime as the display string can change at runtime. This was preventing FText properties from being used in TSet/TMap as the hash needs to be consistent.
#jira UE-36456
Change 3141242 on 2016/09/27 by Richard.TalbotWatkin
Fixed various issues where making changes to components in the Blueprint Editor could cause a crash if there is an active component in the component visualizer.
#jira UE-36402 - Editor crash when adding a spline component after having deleted another spline component
Duplicated CL 3139370 from //UE4/Release-4.13
Duplicated CL 3139878 from //UE4/Release-4.13
Change 3141323 on 2016/09/27 by Michael.Dupuis
#jira UE-35081 Enable bDisplayEngineVersionInBadge by default
Change 3141798 on 2016/09/27 by tim.gautier
Added UMG_DisplayWidget
Change 3143038 on 2016/09/28 by Jamie.Dale
Added extra context to FTableRowBase::OnPostDataImport
It now takes the owning data table and the row name as parameters. This allows is to do more useful fix-up that depends on the context of where it's used (such as stabilized text keys).
Change 3143039 on 2016/09/28 by Jamie.Dale
Optimized UTextProperty::Identical to use a pointer comparison rather than read out the identity
Only texts which have the same display string pointer can have the same identity, so this is a much faster check.
Change 3143098 on 2016/09/28 by Gareth.Martin
Fixed crash when loading duplicated landscape levels
#jira UE-34890
Change 3143300 on 2016/09/28 by Gareth.Martin
Fixed crash when duplicating a level containing a landscape through the content browser
#jira UE-34890
Change 3143389 on 2016/09/28 by Jamie.Dale
LastResort is no longer staged in shipping builds
You can now use the Content/SlateDebug folder to store any Slate resources that shouldn't be used in a shipping build (either for the Engine or for a game).
This also removes the old bUsesSlateEditorStyle hack as everything should have migrated away from that now.
Change 3143565 on 2016/09/28 by Matt.Kuhlenschmidt
Fixed this file
Change 3143717 on 2016/09/28 by Michael.Dupuis
Fixed lowercase
Change 3143798 on 2016/09/28 by Matt.Kuhlenschmidt
Fixed StreamingPauseRendering code to not attempt to tick the scene viewport on the slate loading thread while where are blocked on level streaming. The viewport is rendered once and the render target is passed to slate instead of the entire viewport
Change 3143820 on 2016/09/28 by Alexis.Matte
Use the PersonaToolikit to get the mesh
Change 3143833 on 2016/09/28 by Matt.Kuhlenschmidt
Added guard for UE-36499
Change 3144144 on 2016/09/28 by Matt.Kuhlenschmidt
Fix constructor init order
Change 3144821 on 2016/09/29 by Jamie.Dale
Fixed feedback loop in FSlateEditableTextLayout::ComputeDesiredSize
If the wrapping width is less than the scrollbar width, the scrollbar could constantly re-appear and then disappear.
Change 3144867 on 2016/09/29 by Matt.Kuhlenschmidt
Added a commandlet to allow command line importing of any asset type the engine supports.
- Intermediate checkin
Change 3144875 on 2016/09/29 by Nick.Darnell
Automation - Adding CornellBox example map, fixing some additional tests, removing the Movement Test.
Change 3144975 on 2016/09/29 by Matt.Kuhlenschmidt
Disable auto-applying of scalability settings
The user will still be asked if the settings should be applied but if they do nothing the notification will just go away without setting stuff.
Change 3145274 on 2016/09/29 by Jamie.Dale
New asset menu no longer has a scrollbar on most displays
Change 3146004 on 2016/09/29 by Matt.Barnes
Adding two FBX test files to help facilitate QA coverage on the new material/section workflow.
Change 3146377 on 2016/09/30 by Gareth.Martin
Fixed landscape rendering errors after using the "change component size" tool
- also affected initial import of a landscape+weightmaps
#jira UE-34518
Change 3146455 on 2016/09/30 by Jamie.Dale
Fixing more menus that had scrollbars due to only being able to use half the vertical resolution
Change 3146466 on 2016/09/30 by Gareth.Martin
Fixed not being able to erase foliage attached to BSP
#jira UE-36297
Change 3146471 on 2016/09/30 by Jamie.Dale
Can no longer localize sequences via the Content Browser
Change 3146569 on 2016/09/30 by Jamie.Dale
Fixed UGatherTextFromSourceCommandlet::ParseSourceText being able to underflow while parsing
Change 3147116 on 2016/09/30 by Michael.Dupuis
#jira UE-33068 Update selection once after the bulk operation so the AssetContextMenu will have a proper selection, but only perform this if we're not in UserSearchingMode (which mean AssetPicker)
Change 3148091 on 2016/10/01 by Matt.Barnes
Adding a map and relevant assets to facilitate testing around the new material blueprint nodes - GetMaterialSlotNames, GetMaterialIndex, and SetMaterialByName, respectively
Change 3148714 on 2016/10/03 by Nick.Darnell
PR #2770: [Git plugin] Fix bug where history and merging do not work if the user has format.pretty settings in their gitconfig (Contributed by SRombauts)
#jira UE-35568
Change 3148793 on 2016/10/03 by Nick.Darnell
Automation - TPS for SM_Cornellbox
Change 3148801 on 2016/10/03 by Nick.Darnell
PR #2820: [WidgetBlueprintLibrary] Throwing Essential-Functionality-Understanding PIE Errors when Player Controller ptr not supplied (Contributed by EverNewJoy)
#jira UE-36711
Change 3148805 on 2016/10/03 by Nick.Darnell
PR #2822: Add missing base includes and forward declarations for UProgressBar and UTextBlock (Contributed by error454)
#jira UE-36715
Change 3148813 on 2016/10/03 by Nick.Darnell
UMG - The retainer now contains the SVirtualWindow directly in the hierarchy. This should now make it possible to reliably focus elements inside the retainer widget.
Change 3148855 on 2016/10/03 by Gareth.Martin
Fixed performance regression when importing landscape heightmaps
#jira UE-36659
Change 3149482 on 2016/10/03 by Cody.Albert
Added link to Support landing page to Help menu
#jira UE-36603
Change 3149520 on 2016/10/03 by tim.gautier
Edited UMG_Behavior - Collapsed now has a toggleable state to demonstrate functionality.
Change 3149945 on 2016/10/04 by Gareth.Martin
Fixed invisible landscape components when using tessellation on landscape material
#jira UE-35494
Change 3149951 on 2016/10/04 by Gareth.Martin
Reduced material update log spam when creating and editing landscapes
- Some will remain, landscape fundementally manipulates a lot of material instances
#jira UE-34440
Change 3150143 on 2016/10/04 by Matt.Kuhlenschmidt
Fix not crashing when trying to clear objects which have a specific class filter in the property settings
https://jira.it.epicgames.net/browse/UE-36692
Change 3150614 on 2016/10/04 by Nick.Darnell
Git - Disabling some logging in non-debug builds of the git source control plugin.
Change 3151647 on 2016/10/05 by Matt.Kuhlenschmidt
Fix loc warnings in these files (duplicate loc keys)
Change 3151679 on 2016/10/05 by Nick.Darnell
Editor - Fixing the build, removing the VREditor module from the dynamically loaded list.
Change 3151722 on 2016/10/05 by Gareth.Martin
Fix breakage to LandscapeEdModeSplineTools.cpp caused by Dev-VREditor from main integration
Change 3151816 on 2016/10/05 by Gareth.Martin
Fixed more breakage to Landscape caused by Dev-VREditor from main integration
[CL 3152072 by Matt Kuhlenschmidt in Main branch]
2016-10-05 13:23:01 -04:00
if ( ReferencedObjectResourceSize > 0 )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3152045)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3106449 on 2016/08/30 by Michael.Dupuis
#jira UETOOL-229 Added generic command icons used in Edit Menu (including contextual menu)
Change 3133997 on 2016/09/21 by Alex.Delesky
#jira UE-34079 - FSceneView parameter for FBatchedElements::Draw is no longer an optional parameter.
Change 3134132 on 2016/09/21 by Jamie.Dale
Added the "unattended" flag when running the localzation commandlets via UAT
Change 3134147 on 2016/09/21 by Frank.Fella
Core - Add multitouch support to windows.
Change 3134349 on 2016/09/21 by Michael.Dupuis
#jira UE-36151 Update the title bar to display the branch also
Change 3134355 on 2016/09/21 by Michael.Dupuis
#jira UE-36041 When initially creating a projet and trying to add everything to source control, also add the uproject file
Change 3134447 on 2016/09/21 by Alexis.Matte
#jira UE-36064
The SpriteComponent is now properly reused when duplicating a light.
Change 3134451 on 2016/09/21 by Alexis.Matte
#jira UE-22782
Make sure when we re-import we dont try to match the mesh name if the option bCombineToSingle is true
Change 3134457 on 2016/09/21 by Jamie.Dale
FInternationalization::Leetify now deals with escape sequences correctly.
This also changes it to mark all leetified text with the start and end marker, and the unit tests have been updated accordingly.
Change 3134685 on 2016/09/21 by Matt.Kuhlenschmidt
Cleaned up some of the UI for the new material slot workflow (part 1)
Change 3134743 on 2016/09/21 by Matt.Kuhlenschmidt
Fix crash clicking OK to the import mesh dialog in persona when a path is not selected. The OK button is now disabled until a valid path is selected
Change 3134760 on 2016/09/21 by Matt.Kuhlenschmidt
Guard against cascade crash if cascade was shutdown but there is an old cascade particle system component in the undo buffer that attempts to refresh cascade
Change 3134837 on 2016/09/21 by Matt.Kuhlenschmidt
Fix static analysis warnings in this file
Change 3134939 on 2016/09/21 by Nick.Darnell
Automation - Moving the functional testing hooks for the editor into a plugin, the goal is to make it so you don't have to see all the extra stuff automation adds to the editor until the game project needs it. Refactoring the way automation messages are serialized, no longer relying on a comma delimited string to serialize automation data. Improving the filter for automation window so it lets you put in a path, and find it that way. Fixing RunTests from the commandline so that it properly finds the tests, instead of jumping out of the loop as soon as it finds any one match.
Change 3134941 on 2016/09/21 by Nick.Darnell
Automation - Functional tests now support warnings as errors on a per test basis. Continued itteration on screenshot comparison.
Change 3135051 on 2016/09/21 by Matt.Kuhlenschmidt
Fixed size of material slots in persona details panel
Change 3135076 on 2016/09/21 by Nick.Darnell
Automation - Adding a missing file.
Change 3135584 on 2016/09/22 by Gareth.Martin
Removed unused ULandscapeInfo::BeginDestroy
Slight cleanup to FLandscapeEditDataInterface::DeleteLayer
Change 3135585 on 2016/09/22 by Gareth.Martin
New Count algo
Const'd Copy/Accumulate/Transform
Change 3135599 on 2016/09/22 by Gareth.Martin
Resolve crash if a Landscape Layer Info object is force deleted while it is in use :(
#jira UE-35709
Change 3135724 on 2016/09/22 by Michael.Dupuis
#jira UE-32662 Remove old migration code that was causing this side effect
Change 3135726 on 2016/09/22 by Nick.Darnell
Slate - Removing the SLATE_PRE_MULTIPLY macro.
Change 3135730 on 2016/09/22 by Nick.Darnell
UMG - Exposing the 2D hit location that the WidgetInteractionComponent hit on the WidgetComponent.
Change 3135738 on 2016/09/22 by Matt.Kuhlenschmidt
Ensure any handles to the backbuffer are released before the backbuffer is resized
https://jira.it.epicgames.net/browse/UE-30488
Change 3135810 on 2016/09/22 by Ben.Marsh
Build: Compile tools before running automated tests.
Change 3135993 on 2016/09/22 by Matt.Kuhlenschmidt
Ensure you can unpause after toggling play/pause with a keyboard shortcut. We were processing the keybinding on key down AND up which caused the unpause to instantly pause again
https://jira.it.epicgames.net/browse/UE-36276
Change 3136257 on 2016/09/22 by Matt.Kuhlenschmidt
Fixed assign of materials to components not working if you multi-select multiple components of a blueprint and assign the material. The construction script was running before all the material had been set on all components.
Change 3136318 on 2016/09/22 by Alex.Delesky
#jira UE-7405 - Forcing the mouse cursor to show and then clicking inside the viewport will no longer cause the mouse to lose focus
Change 3136494 on 2016/09/22 by Matt.Kuhlenschmidt
Fix crash restarting a mission in Odin
Change 3136741 on 2016/09/22 by Cody.Albert
Fixed SButton and SWidget to not multiply color and opacity, since that's already being done by SCompoundWidget
#jira UE-36322
Change 3137711 on 2016/09/23 by Matt.Kuhlenschmidt
Added guard against slate rendering with deleted materials. In this will now be caught with a looged with the deleted material name.
Change 3137713 on 2016/09/23 by Matt.Kuhlenschmidt
Removed the pooled draw elements stuff which is not used
Change 3137791 on 2016/09/23 by Nick.Darnell
MediaPlayer - Removing .png from one of the style files, as that's not required. Was causing warnings to be logged on load.
Change 3137793 on 2016/09/23 by Nick.Darnell
Localization - Adjusting some log statements to say with instead of w/
Change 3137796 on 2016/09/23 by Nick.Darnell
Slate - Adding missing and replacing corrupted style files in the editor.
Change 3137864 on 2016/09/23 by Matt.Kuhlenschmidt
Fixed "actors are referenced are you sure you want to delete" dialog appearing when you are copying a lot of actors to another level
Change 3137876 on 2016/09/23 by Jamie.Dale
Added allocation tagging to MProf2
This hooks into the existing FScopeCycleCounterUObject used by the stats system to track object tags (object, package, and class) when an allocation is made. Tags should be in the format "Category:Tag", and the "Tag" part may include "/" to create levels in the tag hierarchy (as shown in the MProf2 tool).
#jira UETOOL-950
Change 3137982 on 2016/09/23 by Gareth.Martin
Added Invoke() support to CopyIf
Change 3137983 on 2016/09/23 by Gareth.Martin
Added ULandscapeInfo::ForAllLandscapeProxies to clean up a lot of horrible code
- Removed some dependencies on ALandscape and ALandscapeStreamingProxy in the process :)
Also made FLandscapeEditorLayerSettings's constructor explicit to clean up some other horrible code
Change 3138053 on 2016/09/23 by Matt.Kuhlenschmidt
Fixed Child Actor Template properties not visible after changing Child Actor Class
Change 3138079 on 2016/09/23 by Jamie.Dale
Fixing some Clang warnings
Change 3138087 on 2016/09/23 by Jamie.Dale
Added GetResourceSizeEx and GetResourceSizeBytes, and deprecated GetResourceSize
GetResourceSizeEx populates a struct which reports not only how much memory is allocated, but also which arenas the memory was allocated from. GetResourceSizeBytes just wraps a call to GetResourceSizeEx and returns the total size from all arenas (this has the same behavior as the now deprecated GetResourceSize).
Classes that used to override GetResourceSize should instead override GetResourceSizeEx and report their allocations as appropriate.
#jira UETOOL-952
Change 3138127 on 2016/09/23 by Gareth.Martin
Fixed crash when merging levels containing landscape
#jira UE-36267
Change 3138821 on 2016/09/23 by Stephan.Jiang
Fixes "Select all input node" doesn't work properly on output node.
#jira UE-36335
Change 3138915 on 2016/09/23 by Stephan.Jiang
Disable "select all linked nodes" for output nodes in material editor
Change 3139341 on 2016/09/25 by Nick.Darnell
Automation - Moving the Blueprint Compiler Tests into the RuntimeTests plugin, and making the context client only since that's the only valid place to runt these tests.
Change 3139342 on 2016/09/25 by Nick.Darnell
Landscape - Fixing some compiler errors on mac.
Change 3139345 on 2016/09/25 by Nick.Darnell
Automation - Spelling and cleanup.
Change 3139346 on 2016/09/25 by Nick.Darnell
Engine - Changing a check to an ensure, there's no reason to crash if this happens.
Change 3139347 on 2016/09/25 by Nick.Darnell
Automation - Making EFunctionalTestResult a BlueprintType
Change 3139348 on 2016/09/25 by Nick.Darnell
Automation - Adding another test map.
Change 3139676 on 2016/09/26 by Michael.Dupuis
#jira UE-32335 If we are a config object simply permit the transaction for undo/redo
Change 3139702 on 2016/09/26 by Nick.Darnell
UMG - Making GetLocalHitLocation on UWidgetComponent virtual.
Change 3139760 on 2016/09/26 by Alexis.Matte
Make sure we remove override materials from the list when the mesh point by the component has less materials.
#jira UE-28845
Change 3139761 on 2016/09/26 by Alex.Delesky
Added additional validation code to FPropertyNode to now properly validate TMap value and key nodes.
#jira none
Change 3139843 on 2016/09/26 by Alex.Delesky
#jira UE-36066 - Clearing all options from a ComboBox String when selecting an option will now also clear out the selected text correctly.
Change 3139880 on 2016/09/26 by Frank.Fella
QAGame - Update multitouch test with less crashy assets?
Change 3139908 on 2016/09/26 by Matt.Kuhlenschmidt
Fix selections having the potential to be out of sync after undo/redo
Change 3139928 on 2016/09/26 by Nick.Darnell
Automation - tweaking the test maps some more.
Change 3140646 on 2016/09/26 by Matt.Kuhlenschmidt
Fix false positive with the test for vaild materials being rendered by slate.
Change 3140912 on 2016/09/26 by Frank.Fella
Core - Fix multitouch ifdef which was preventing it from actually being enabled.Also update test level blueprint so that it's actually testable.
Change 3141218 on 2016/09/27 by Matt.Kuhlenschmidt
PR #2798: BP open anim interferes with mouse movement (Contributed by projectgheist)
Change 3141223 on 2016/09/27 by Jamie.Dale
Updated UTextProperty::Identical to no longer compare display strings all the time
It was supposed to compare the identity at runtime as the display string can change at runtime. This was preventing FText properties from being used in TSet/TMap as the hash needs to be consistent.
#jira UE-36456
Change 3141242 on 2016/09/27 by Richard.TalbotWatkin
Fixed various issues where making changes to components in the Blueprint Editor could cause a crash if there is an active component in the component visualizer.
#jira UE-36402 - Editor crash when adding a spline component after having deleted another spline component
Duplicated CL 3139370 from //UE4/Release-4.13
Duplicated CL 3139878 from //UE4/Release-4.13
Change 3141323 on 2016/09/27 by Michael.Dupuis
#jira UE-35081 Enable bDisplayEngineVersionInBadge by default
Change 3141798 on 2016/09/27 by tim.gautier
Added UMG_DisplayWidget
Change 3143038 on 2016/09/28 by Jamie.Dale
Added extra context to FTableRowBase::OnPostDataImport
It now takes the owning data table and the row name as parameters. This allows is to do more useful fix-up that depends on the context of where it's used (such as stabilized text keys).
Change 3143039 on 2016/09/28 by Jamie.Dale
Optimized UTextProperty::Identical to use a pointer comparison rather than read out the identity
Only texts which have the same display string pointer can have the same identity, so this is a much faster check.
Change 3143098 on 2016/09/28 by Gareth.Martin
Fixed crash when loading duplicated landscape levels
#jira UE-34890
Change 3143300 on 2016/09/28 by Gareth.Martin
Fixed crash when duplicating a level containing a landscape through the content browser
#jira UE-34890
Change 3143389 on 2016/09/28 by Jamie.Dale
LastResort is no longer staged in shipping builds
You can now use the Content/SlateDebug folder to store any Slate resources that shouldn't be used in a shipping build (either for the Engine or for a game).
This also removes the old bUsesSlateEditorStyle hack as everything should have migrated away from that now.
Change 3143565 on 2016/09/28 by Matt.Kuhlenschmidt
Fixed this file
Change 3143717 on 2016/09/28 by Michael.Dupuis
Fixed lowercase
Change 3143798 on 2016/09/28 by Matt.Kuhlenschmidt
Fixed StreamingPauseRendering code to not attempt to tick the scene viewport on the slate loading thread while where are blocked on level streaming. The viewport is rendered once and the render target is passed to slate instead of the entire viewport
Change 3143820 on 2016/09/28 by Alexis.Matte
Use the PersonaToolikit to get the mesh
Change 3143833 on 2016/09/28 by Matt.Kuhlenschmidt
Added guard for UE-36499
Change 3144144 on 2016/09/28 by Matt.Kuhlenschmidt
Fix constructor init order
Change 3144821 on 2016/09/29 by Jamie.Dale
Fixed feedback loop in FSlateEditableTextLayout::ComputeDesiredSize
If the wrapping width is less than the scrollbar width, the scrollbar could constantly re-appear and then disappear.
Change 3144867 on 2016/09/29 by Matt.Kuhlenschmidt
Added a commandlet to allow command line importing of any asset type the engine supports.
- Intermediate checkin
Change 3144875 on 2016/09/29 by Nick.Darnell
Automation - Adding CornellBox example map, fixing some additional tests, removing the Movement Test.
Change 3144975 on 2016/09/29 by Matt.Kuhlenschmidt
Disable auto-applying of scalability settings
The user will still be asked if the settings should be applied but if they do nothing the notification will just go away without setting stuff.
Change 3145274 on 2016/09/29 by Jamie.Dale
New asset menu no longer has a scrollbar on most displays
Change 3146004 on 2016/09/29 by Matt.Barnes
Adding two FBX test files to help facilitate QA coverage on the new material/section workflow.
Change 3146377 on 2016/09/30 by Gareth.Martin
Fixed landscape rendering errors after using the "change component size" tool
- also affected initial import of a landscape+weightmaps
#jira UE-34518
Change 3146455 on 2016/09/30 by Jamie.Dale
Fixing more menus that had scrollbars due to only being able to use half the vertical resolution
Change 3146466 on 2016/09/30 by Gareth.Martin
Fixed not being able to erase foliage attached to BSP
#jira UE-36297
Change 3146471 on 2016/09/30 by Jamie.Dale
Can no longer localize sequences via the Content Browser
Change 3146569 on 2016/09/30 by Jamie.Dale
Fixed UGatherTextFromSourceCommandlet::ParseSourceText being able to underflow while parsing
Change 3147116 on 2016/09/30 by Michael.Dupuis
#jira UE-33068 Update selection once after the bulk operation so the AssetContextMenu will have a proper selection, but only perform this if we're not in UserSearchingMode (which mean AssetPicker)
Change 3148091 on 2016/10/01 by Matt.Barnes
Adding a map and relevant assets to facilitate testing around the new material blueprint nodes - GetMaterialSlotNames, GetMaterialIndex, and SetMaterialByName, respectively
Change 3148714 on 2016/10/03 by Nick.Darnell
PR #2770: [Git plugin] Fix bug where history and merging do not work if the user has format.pretty settings in their gitconfig (Contributed by SRombauts)
#jira UE-35568
Change 3148793 on 2016/10/03 by Nick.Darnell
Automation - TPS for SM_Cornellbox
Change 3148801 on 2016/10/03 by Nick.Darnell
PR #2820: [WidgetBlueprintLibrary] Throwing Essential-Functionality-Understanding PIE Errors when Player Controller ptr not supplied (Contributed by EverNewJoy)
#jira UE-36711
Change 3148805 on 2016/10/03 by Nick.Darnell
PR #2822: Add missing base includes and forward declarations for UProgressBar and UTextBlock (Contributed by error454)
#jira UE-36715
Change 3148813 on 2016/10/03 by Nick.Darnell
UMG - The retainer now contains the SVirtualWindow directly in the hierarchy. This should now make it possible to reliably focus elements inside the retainer widget.
Change 3148855 on 2016/10/03 by Gareth.Martin
Fixed performance regression when importing landscape heightmaps
#jira UE-36659
Change 3149482 on 2016/10/03 by Cody.Albert
Added link to Support landing page to Help menu
#jira UE-36603
Change 3149520 on 2016/10/03 by tim.gautier
Edited UMG_Behavior - Collapsed now has a toggleable state to demonstrate functionality.
Change 3149945 on 2016/10/04 by Gareth.Martin
Fixed invisible landscape components when using tessellation on landscape material
#jira UE-35494
Change 3149951 on 2016/10/04 by Gareth.Martin
Reduced material update log spam when creating and editing landscapes
- Some will remain, landscape fundementally manipulates a lot of material instances
#jira UE-34440
Change 3150143 on 2016/10/04 by Matt.Kuhlenschmidt
Fix not crashing when trying to clear objects which have a specific class filter in the property settings
https://jira.it.epicgames.net/browse/UE-36692
Change 3150614 on 2016/10/04 by Nick.Darnell
Git - Disabling some logging in non-debug builds of the git source control plugin.
Change 3151647 on 2016/10/05 by Matt.Kuhlenschmidt
Fix loc warnings in these files (duplicate loc keys)
Change 3151679 on 2016/10/05 by Nick.Darnell
Editor - Fixing the build, removing the VREditor module from the dynamically loaded list.
Change 3151722 on 2016/10/05 by Gareth.Martin
Fix breakage to LandscapeEdModeSplineTools.cpp caused by Dev-VREditor from main integration
Change 3151816 on 2016/10/05 by Gareth.Martin
Fixed more breakage to Landscape caused by Dev-VREditor from main integration
[CL 3152072 by Matt Kuhlenschmidt in Main branch]
2016-10-05 13:23:01 -04:00
ResourceSizeString = FString : : Printf ( TEXT ( " %.2f " ) , ( ( float ) ReferencedObjectResourceSize ) / 1024.f ) ;
2014-03-14 14:13:41 -04:00
}
FString ObjectPathName ;
if ( ReferencedObject - > GetOuter ( ) ! = NULL )
{
ObjectPathName = ReferencedObject - > GetOuter ( ) - > GetPathName ( ) ;
}
// Add this referenced asset's information to the list.
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3847469)
#lockdown Nick.Penwarden
#rb none
============================
MAJOR FEATURES & CHANGES
============================
Change 3805828 by Gil.Gribb
UE4 - Fixed a bug in the lock free stalling task queue and adjusted a comment. The code is not current used, so this is not actually change the way the code works.
Change 3806784 by Ben.Marsh
UAT: Remove code to compile UBT when using UE4Build. It should already be compiled as a dependency of UAT.
Change 3807549 by Graeme.Thornton
Add a cook timer around VerifyCanCookPackage. A licensee reports this taking a lot of time so it'll be good to account for it.
Change 3807727 by Graeme.Thornton
Unhide the text asset format experimental editor option
Change 3807746 by Josh.Engebretson
Remove WER from iOS platform
Change 3807928 by Robert.Manuszewski
When async loading, GC Clusters will be created after packages have been processed to avoid situations where some of the objects that are being added to a cluster haven't been fully loaded yet
Change 3808221 by Steve.Robb
GitHub #4307 - Made GetModulePtr() thread safe by not using GetModule()
^ I'm not convinced by how much thread-safer this is really, but it's tidier anyway.
Change 3809233 by Graeme.Thornton
TBA: Misc changes to text asset commandlet
- Rename mode to "loadsave"
- Add -outputFormat option which can be assigned "text" or "binary"
- When saving binary, use a differentiated filename so that source assets aren't overwritten
Change 3809518 by Ben.Marsh
Remove the outdated UnrealSync automation script.
Change 3809643 by Steve.Robb
GitHub #4277 : fix bug; FMath::FormatIntToHumanReadable 3rd comma and negative value
#jira UE-53037
Change 3809862 by Steve.Robb
GitHub #3342 : [FRotator.h] Fix to DecompressAxisFromByte to be more efficient and reflect its intent accurately
#jira UE-42593
Change 3811190 by Graeme.Thornton
Add support for writing specific log channels to their own files
Change 3811197 by Graeme.Thornton
Minor updates to output formatting and timing for the text asset commandlet
Change 3811257 by Robert.Manuszewski
Cluster creation will now be time-sliced
Change 3811565 by Steve.Robb
Define out non-monolithic module functions.
Change 3812561 by Steve.Robb
GitHub #3886 : Enable Brace-Initialization for Declaring Variables
Incorrect semi-colon search removed after discussion with author.
Test added.
#jira UE-48242
Change 3812864 by Steve.Robb
Removal of some unproven code which was supposed to fix hot reloading BP class functions in plugins.
See: https://udn.unrealengine.com/questions/376978/aitask-blueprint-nodes-disappear-when-their-module.html
#jira UE-53089
Change 3820358 by Ben.Marsh
PR #4358: Incredibuild use ShowAgent by default (Contributed by projectgheist)
Change 3822594 by Ben.Marsh
UAT: Improvements to log file handling.
- Always create log files in the final location, rather than writing to a temp directory and copying in later.
- Now supports -Verbose and -VeryVerbose for increasing log verbosity, rather than -Verbose=XXX.
- Keep a backlog of log output before the log system is initialized, and flush it to the log file once it is.
- Allow buildmachines to specify the uebp_FinalLogFolder environment variable, which is used to form paths for display. When build machines copy log files elsewhere after UAT finishes (eg. a network share), this allows error messages to display the right location.
Change 3823695 by Ben.Marsh
UGS: Fix issue where precompiled binaries would not be shown as available for a change until scrolling the last submitted code change into the buffer (other symptoms, like de-focussing the main window would cause it to go back to an unavailable state, since the changes buffer was shrunk).
Now always queries changes up to the last change for which zipped binaries are available.
Change 3823845 by Ben.Marsh
UBT: Exclude C# projects for unsupported platforms when generating project files.
Change 3824180 by Ben.Marsh
UGS: Add an option to show changes by build machines, and move the "only show reviewed" option in there too (Options > Show Changes).
#jira
Change 3825777 by Steve.Robb
Fix to return value of StringToBytes.
Change 3825810 by Ben.Marsh
UBT: Reduce length of include paths for MSVC toolchain.
Change 3825822 by Robert.Manuszewski
Optimized PIE lazy pointer fixup. Should be up to 8x faster now.
Change 3826734 by Ben.Marsh
Remove code to disable TextureFormatAndroid on Linux. It seems to be an editor dependency.
Change 3827730 by Steve.Robb
Try to avoid decltype(auto) if it's not supported.
See: https://udn.unrealengine.com/questions/395644/build-417-with-c11-on-linux-ttuple-errors.html
Change 3827745 by Steve.Robb
Initializer list support for TMap.
Change 3827770 by Steve.Robb
GitHub #4399 : Added a CONSTEXPR qualifiers to FVariant::GetType()
#jira UE-53813
Change 3829189 by Ben.Marsh
UBT: Now always writes a minimal log file. By default, just contains the regular console output and any reasons why actions are outdated and needed to be executed. UAT directs child UBT instances to output logs into its own log folder, so that build machines can save them off.
Change 3830444 by Steve.Robb
BuildVersion and ModuleManifest moved to Core, and parsing of these files reimplemented to avoid a JSON library.
This should be revisited when Core has its own JSON library.
Change 3830718 by Ben.Marsh
Fix incorrect group name being returned by FStatNameAndInfo::GetGroupName() for stat groups.
The editor populates the viewport stats list by calling this for every registered stat and stat group (via FLevelViewportCommands::HandleNewStatGroup). The menu entry attempts to show the stat name with STAT_XXX stripped from the start as the menu item label, with the free-form text description as a tooltip.
For stat groups, the it would previously just return the stat group name as "Groups" (due to the raw naming convention of "//Groups//STATGROUP_Foo//..."). Since this didn't match the expected naming convention in FLevelViewportCommands::HandleNewStat (ie. STAT_XXX or STATGROUP_XXX), it would fail to add it.
When the first actual stat belonging to that group is added, it would add a menu entry for the group based on that, but the stat description no longer makes sense as a tooltip for the group. As a result, all the editor tooltips were junk.
#jira UE-53845
Change 3831064 by Ben.Marsh
Fix log file contention when spawning UBT recursively.
Change 3832654 by Ben.Marsh
UGS: Fix error panel not being selected when opened, and weird alignment/color issues on it.
Change 3832680 by Ben.Marsh
UGS: Fix failing to detect workspace if synced to a different stream. Seems to be a regression caused by recent P4D upgrade.
Change 3832695 by Ben.Marsh
UGS: Invert the options in the 'Show Changes' submenu for simplicity.
Change 3833528 by Ben.Marsh
UAT: Script to rewrite source files with public include paths relative to the 'Public' folder. Usage is: RebasePublicIncludePaths -UpdateDir=<Dir> [-Project=<Dir>] [-Write].
Change 3833543 by Ben.Marsh
UBT: Allow targets to opt-out of having public include paths added for every dependent module. This reduces the command line length when building a target, which has recently become a problem with larger games (due to Microsoft's compiler embedding the command line into each object file, with a maximum length of 64kb). All engine modules are compiled with this enabled; games may opt into it by setting bLegacyPublicIncludePaths = false; from their .target.cs, as may individual modules.
Change 3834354 by Robert.Manuszewski
Archetype pointer will now be cached to avoid locking the object tables when acquiring its info. It should also be faster this way regardless of any locks.
#jira UE-52035
Change 3834400 by Robert.Manuszewski
Fixing crash on exit caused by cached archetypes not being cleaned up before static exit cleanup.
#jira UE-52035
Change 3834947 by Steve.Robb
USE_FORMAT_STRING_TYPE_CHECKING removed from FMsg::Logf and FMsg::Logf_Internal.
Change 3835004 by Ben.Marsh
Fix code that relies on dubious behavior of requiring referenced "include path only" modules having their _API macros set to be empty, even if the module is actually implemented in a separate DLL.
Change 3835340 by Ben.Marsh
Fix errors making installed build from directories with spaces in the name.
Change 3835972 by Ben.Marsh
UBT: Improved diagnostic message for targets which don't need a version file.
Change 3836019 by Ben.Marsh
UBT: Fix warnings caused by defining linkage macros for third party libraries.
Change 3836269 by Ben.Marsh
Fix message box larger than the screen height being created when a large number of modules are incompatible on startup.
Change 3836543 by Ben.Marsh
Enable SoundMod plugin on Linux, since it's already supported through the editor.
Change 3836546 by Ben.Marsh
PR #4412: fix type mismatch (Contributed by nakapon)
Change 3836805 by Ben.Marsh
Fix commandlet to compile marketplace plugins.
Change 3836829 by Ben.Marsh
UBT: Fix ability to precompile plugins from installed engine builds.
Change 3837036 by Ben.Marsh
UBT: Write the previous and new contents of intermediate files to the log if they change. Makes it easier to debug unexpected rebuilds.
Change 3837037 by Ben.Marsh
UBT: Fix engine modules having inconsistent definitions depending on whether modules are only referenced for their include paths vs being linked into a binary (due to different _API macro).
Change 3837040 by Ben.Marsh
UBT: Remove code that initializes members in ModuleRules and TargetRules objects before the constructor is run. This is no longer necessary, now that the backwards-compatible default constructors have been removed.
Change 3837247 by Ben.Marsh
UBT: Remove UELinkerFixups module, now that plugins and precompiled modules do not require hacks to force initialization (since they're linked in as object files).
Encryption and signing keys are now set via macros expanded from the IMPLEMENT_PRIMARY_GAME_MODULE macro, via project-specific macros added in the TargetRules constructor.
Change 3837262 by Ben.Marsh
UBT: Set whether a module is an engine module or not via a default value for the rules assembly. All non-program engine and enterprise modules are created with this flag set to true; program targets and modules are now created from a different assembly that sets it to false. This removes hacks from UEBuildModule needed to adjust behavior for different module types based on the directory containing the module.
Also add a bUseBackwardsCompatibleDefaults flag to the TargetRules class, also initialized to a default value from a setting passed to the RulesAssembly constructor. This controls whether modules created for the target should be configured to allow breaking changes to default settings, and is set to false for all engine targets, and true for all project targets.
Change 3837343 by Ben.Marsh
UBT: Remove the OverrideExecutableFileExtension target property. Change the only current use for this (the MayaLiveLinkPlugin target) to use a post build step to copy the file instead.
Change 3837356 by Ben.Marsh
Fix invalid character encodings.
Change 3837727 by Graeme.Thornton
UnrealPak: KeyGenerator: Only generate prime table when required, not all the time
Change 3837823 by Ben.Marsh
UBT: Output warnings and errors when compiling module rules assembly in a way that allows them to be double-clicked in the Visual Studio output window.
Change 3837831 by Graeme.Thornton
UBT: When parsing crypto settings, always load legacy data first, then allow the new system to override it. Provides the same key backwards compatibility that the editor settings class gives
Change 3837857 by Robert.Manuszewski
PR #4404: Make FGCArrayPool singleton global instead of per-CU (Contributed by mhutch)
Change 3837943 by Robert.Manuszewski
PR #4405: Fix FGarbageCollectionTracer (Contributed by mhutch)
Change 3838451 by Ben.Marsh
UBT: Fix exceptions thrown on a background thread while caching C++ includes not being caught and logged correctly. Now captures exceptions and re-throws on the main thread.
#jira UE-53996
Change 3839519 by Ben.Marsh
UBT: Simplify configuring bPrecompile and bUsePrecompile settings for modules. Each rules assembly can now be configured as installed, which defaults the module rules it creates to use precompiled data.
Change 3843790 by Graeme.Thornton
UnrealPak: Log the size of all encrypted data
Change 3844258 by Ben.Marsh
Fix plugin compile failure when created via new plugin wizard. Passing -plugin on the command line is unnecessary, and is now reserved for packaging external plugins for the marketplace.
Also extend the length of time that the error toast stays visible, and don't delete the plugin on failure.
#jira UE-54157
Change 3845796 by Ben.Marsh
Workaround for slow performance of String.EndsWith() on Mono.
Change 3845823 by Ben.Marsh
Fix case sensitive matching of platform names in -TargetPlatform=X argument to BuildCookRun.
#jira UE-54123
Change 3845901 by Arciel.Rekman
Linux: fix crash due to lambda lifetime issues (UE-54040).
- The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+).
(Edigrating 3819174 to Dev-Core)
Change 3846439 by Ben.Marsh
Revert CL 3822742 to always call Process.WaitForExit(). The Android target platform module in the editor spawns ADB.EXE, which inherits the editor's stdout/stderr handles and forks itself. Process.WaitForExit() waits for EOF on those pipes, which never occurs because the forked process never terminates.
Proper fix is probably to have the engine explicitly duplicate stdout/stderr handles for new pipes to output process, but too risky before copying up to Main.
Change 3816608 by Ben.Marsh
UBT: Use DirectoryReference objects for all include paths.
Change 3816954 by Ben.Marsh
UBT: Remove bIncludeDependentLibrariesInLibrary option. This is not widely supported by platform toolchains, and is not used anywhere.
Change 3816986 by Ben.Marsh
UBT: Remove UEBuildBinaryConfig; UEBuildBinary objects are now just created directly.
Change 3816991 by Ben.Marsh
UBT: Deprecate PlatformSpecificDynamicallyLoadedModules. We no longer have any special behavior for these modules.
Change 3823090 by Ben.Marsh
UAT: Improve logging for child UAT instances.
- Calling RunUAT now requires an identifier for prefixing into the parent log, which is also used to determine the name of the log folder.
- Stdout is no longer written to its own output file, since it's written to the parent stdout, the parent log file, and the child log file anyway.
- Log folders for child UAT instances are left intact, rather than being copied to the parent folder. The derived names for the copied names were confusing and hard to read.
- Output from UAT is no longer returned as a string. It should not be parsed anyway (but may be huge!). ProcessResult now supports running without capturing output.
Change 3826082 by Ben.Marsh
UBT: Add a check to make sure that all modules that are precompiled are correctly marked to enable it, even if they are part of the build target.
Change 3827025 by Ben.Marsh
UBT: Move the compile output directory into a property on the module, and explicitly pass it to the toolchain when compiling.
Change 3829927 by James.Hopkin
Made HTTP interface const correct
Change 3833533 by Ben.Marsh
Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules.
Change 3835826 by Ben.Marsh
UBT: Precompiled targets now generate a separate manifest for each precompiled module, rather than adding object files to a library. This fixes issues where object files from static libraries would not be linked into a target if a symbol in them was not referenced.
Change 3835969 by Ben.Marsh
UBT: Fix cases where text is being written directly to the console rather than via logging functions.
Change 3837777 by Steve.Robb
Format string type checking added to FOutputDevice::Logf.
Fixes for those.
Change 3838569 by Steve.Robb
Algo moved up a folder.
[CL 3847482 by Ben Marsh in Main branch]
2018-01-20 11:19:29 -05:00
FileAr . Log ( TEXT ( " " ) ) ;
FileAr . Log ( * ObjName ) ;
FileAr . Log ( * Underline ) ;
2014-03-14 14:13:41 -04:00
FileAr . Logf ( TEXT ( " Grouping: %s " ) , * ObjectPathName ) ;
FileAr . Logf ( TEXT ( " Class: %s " ) , GetObjectNameFromCache ( ReferencedObject - > GetClass ( ) ) ) ;
FileAr . Logf ( TEXT ( " Size: %s " ) , * ResourceSizeString ) ;
FileAr . Logf ( TEXT ( " Info: %s " ) , * ReferencedObject - > GetDesc ( ) ) ;
}
/**
* Recursively transverses the reference tree
*/
void OutputReferencedAssets ( FOutputDeviceFile & FileAr , int32 CurrentDepth , FString ParentId , UObject * BaseObject , TArray < UObject * > * AssetList )
{
check ( AssetList ) ;
const FString ScriptItemString = NSLOCTEXT ( " UnrealEd " , " Script " , " Script " ) . ToString ( ) ;
const FString DefaultsItemString = NSLOCTEXT ( " UnrealEd " , " Defaults " , " Defaults " ) . ToString ( ) ;
for ( int32 AssetIndex = 0 ; AssetIndex < AssetList - > Num ( ) ; AssetIndex + + )
{
UObject * ReferencedObject = ( * AssetList ) [ AssetIndex ] ;
check ( ReferencedObject ) ;
// get the list of assets this object is referencing
TArray < UObject * > * ReferencedAssets = ReferenceGraph . Find ( ReferencedObject ) ;
// add a new tree item for this referenced asset
FString ItemString ;
if ( ReferencedObject = = BaseObject - > GetClass ( ) )
{
ItemString = * ScriptItemString ;
if ( ReferencedAssets = = NULL | | ReferencedAssets - > Num ( ) = = 0 )
{
// special case for the "Script" node - don't add it if it doesn't have any children
continue ;
}
}
else if ( ReferencedObject = = BaseObject - > GetArchetype ( ) )
{
ItemString = * DefaultsItemString ;
if ( ReferencedAssets = = NULL | | ReferencedAssets - > Num ( ) = = 0 )
{
// special case for the "Defaults" node - don't add it if it doesn't have any children
continue ;
}
}
else
{
if ( CurrentDepth > 0 )
{
ItemString = ReferencedObject - > GetPathName ( ) ;
}
else
{
ItemString = GetObjectNameFromCache ( ReferencedObject ) ;
}
}
FString AssetId = FString : : Printf ( TEXT ( " %s.%d " ) , * ParentId , AssetIndex ) ;
if ( CurrentDepth > 0 )
{
FString TabStr ;
for ( int32 i = 0 ; i < CurrentDepth ; + + i )
{
TabStr + = TEXT ( " \t " ) ;
}
FileAr . Logf ( TEXT ( " %s(%s) %s " ) , * TabStr , * AssetId , * ItemString ) ;
}
else
{
OutputDetailsItem ( FileAr , AssetId , ReferencedObject , ItemString ) ;
}
if ( ReferencedAssets ! = NULL )
{
// If this object is referencing other objects, output those objects
OutputReferencedAssets ( FileAr , ( CurrentDepth = = 0 ) ? 0 : CurrentDepth + 1 , AssetId , ReferencedObject , ReferencedAssets ) ;
}
}
}
/**
* Outputs the tree view
*/
void OutputTree ( FOutputDeviceFile & FileAr )
{
FileAr . Logf ( TEXT ( " ******************* " ) ) ;
FileAr . Logf ( TEXT ( " * Reference Graph * " ) ) ;
FileAr . Logf ( TEXT ( " ******************* " ) ) ;
FileAr . Logf ( TEXT ( " " ) ) ;
for ( int32 ReferenceIndex = 0 ; ReferenceIndex < Referencers . Num ( ) ; ReferenceIndex + + )
{
// add an item at the root level for the selected actor
FReferencedAssets & Asset = Referencers [ ReferenceIndex ] ;
FString Id = FString : : Printf ( TEXT ( " %d " ) , ReferenceIndex ) ;
FileAr . Logf ( TEXT ( " (%s) %s " ) , * Id , GetObjectNameFromCache ( Asset . Referencer ) ) ;
TArray < UObject * > * ReferencedAssets = ReferenceGraph . Find ( Asset . Referencer ) ;
if ( ReferencedAssets )
{
OutputReferencedAssets ( FileAr , 1 , Id , Asset . Referencer , ReferencedAssets ) ;
}
}
}
/**
* Outputs the details list
*/
void OutputDetails ( FOutputDeviceFile & FileAr )
{
FileAr . Logf ( LINE_TERMINATOR ) ;
FileAr . Logf ( TEXT ( " ********************* " ) ) ;
FileAr . Logf ( TEXT ( " * Reference Details * " ) ) ;
FileAr . Logf ( TEXT ( " ********************* " ) ) ;
for ( int32 ReferenceIndex = 0 ; ReferenceIndex < Referencers . Num ( ) ; ReferenceIndex + + )
{
// add an item at the root level for the selected actor
FReferencedAssets & Asset = Referencers [ ReferenceIndex ] ;
FString Id = FString : : Printf ( TEXT ( " %d " ) , ReferenceIndex ) ;
FString ItemName = GetObjectNameFromCache ( Asset . Referencer ) ;
OutputDetailsItem ( FileAr , Id , Asset . Referencer , ItemName ) ;
TArray < UObject * > * ReferencedAssets = ReferenceGraph . Find ( Asset . Referencer ) ;
if ( ReferencedAssets )
{
OutputReferencedAssets ( FileAr , 0 , Id , Asset . Referencer , ReferencedAssets ) ;
}
}
}
void GenerateOutput ( UWorld * InWorld , int32 Depth , bool bShowDefault , bool bShowScript )
{
auto PrintLogTimes = GPrintLogTimes ;
// Create log file
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3548365)
#lockdown Nick.Penwarden
============================
MAJOR FEATURES & CHANGES
============================
Change 3494741 by Steve.Robb
Generated code size savings.
#jira UE-43048
Change 3495484 by Steve.Robb
Fix for generated indices of static arrays when saving configs.
Change 3497926 by Robert.Manuszewski
Removed FPackageFileSummary's CompressedChunks array as it was no longer being used by anything.
Change 3498077 by Robert.Manuszewski
Only use the recursion guard in async loading code when the event driven loader is enabled.
Change 3498112 by Ben.Marsh
UBT: Respect the option to not create debug info in the Android toolchain. This option is already being respected by the compiler, but the linker adds debug info of its own.
Change 3500239 by Robert.Manuszewski
Made sure the Super Class token stream is also locked when assembling Class token stream with async loading thread enabled. This to to prevent race conditions when loading BP classes.
Change 3500395 by Steve.Robb
Extra codegen savings when not in hot reload.
Change 3501004 by Steve.Robb
EObjectFlags now have constexpr operators.
Change 3502079 by Ben.Marsh
UBT: Pad multi-line error messages so that they align under the prefix for the first line, and include the timestamp if necessary.
Change 3502527 by Steve.Robb
Fix for zero-sized array compile error in generated code when all functions are editor-only.
Change 3502542 by Ben.Marsh
UAT: Remove the custom source parameter from log functions, and add support for a customizable indent instead.
Change 3502868 by Steve.Robb
Workaround for inefficient generated code with stateless lambdas on Clang.
Change 3503550 by Steve.Robb
Another generated code lambda optimization.
Change 3503582 by Ben.Marsh
BuildGraph: Add support for nullable parameter types.
Change 3504424 by Steve.Robb
New AllOf, AnyOf and NoneOf algorithms.
Change 3504712 by Ben.Marsh
UAT: Less spammy log and error output from UAT.
* Callstacks for AutomationExceptions are suppressed by default but still included in the log (the path to the log is noted in console output with the message from the exception).
* Add a mechanism for any exceptions to be caught and rethrown with additional lines of context (CommandUtils.AddContext()) that will be appended to the error output by UAT. Avoids decaying the exception type or masking the inner exception message while still adding additional information.
* AggregateExceptions resulting from exceptions on child threads are automatically unwrapped (full details are still appended to the log)
* Name of the calling function is not included in console output by default, but still included in the log.
Change 3504808 by Ben.Marsh
UAT: Suppress P4 output when running a recursive instance of UAT.
Change 3505044 by Steve.Robb
Code generation improved for TCppClassType code.
Change 3505485 by Ben.Marsh
Fix deterministic cooking issue; always use a pseudo-random number stream when compiling a module.
Change 3505699 by Ben.Marsh
Plugins: Store the bEnabledByDefault flag exactly as it was read from disk rather than collapsing it to an absolute value based on the default for the location it was read from. This allows loading/saving plugin descriptors without any knowledge of whether they are game or engine plugins.
Change 3506055 by Ben.Marsh
UAT: Add a class to apply a log indent for the lifetime of an object (ScopedLogIndent), and use it to apply an indent to MegaXGE/ParallelExecutor output.
Change 3507745 by Robert.Manuszewski
Moved FSimpleObjectReferenceCollectorArchive and FSimpleObjectReferenceCollectorArchive to be internal archives used only by FReferenceCollector so that they are constructed only once per GC task instead of potentially multiple times per GC (as was the case with UDataTables and BlueprintGeneratedClasses).
Change 3507911 by Ben.Marsh
Plugins: Minor changes to plugin descriptors.
* Add a distinct setting for an unspecified EnabledByDefault setting in plugin descriptors.
* Add a function to IPlugin to determine the effective EnabledByDefault setting, based on where the plugin was loaded from.
Change 3508669 by Ben.Marsh
EC: Parse multi-line messages from UBT and UAT.
Change 3508691 by Ben.Marsh
Fix double-spacing of cook stats.
Change 3509245 by Steve.Robb
UHT makefiles removed.
Flag audit removed.
Change 3509275 by Steve.Robb
Fix for mismatched stat categories in AudioMixer.
#jira UE-46129
Change 3509289 by Robert.Manuszewski
Custom Version Container will no longer be always constructed in FArchive constructor. This reduces the number of the Custom Version Container allocations considerably.
Change 3509294 by Robert.Manuszewski
UDataTable::AddReferencedObjects will no longer try to iterate over the RowMap if there's no UObject references in it.
Change 3509312 by Steve.Robb
GitHub# 3679: Add TArray constructor that takes a raw pointer and a count
Check improved for Append() to allow nullptr in empty ranges, and added to new constructor too.
#jira UE-46136
Change 3509396 by Steve.Robb
GitHub# 3676: Fix TUnion operator<< compile error
#jira UE-46099
Change 3509633 by Steve.Robb
Fix for line numbers on multiline macros.
Change 3509938 by Gil.Gribb
UE4 - Fix rare assert involving cancelled precache requests and non-pak-file loading.
Change 3510593 by Daniel.Lamb
Fixed up unsoilicited files getting populated with files which aren't finished being created yet.
#test None
Change 3510594 by Daniel.Lamb
Fixed up temp files directory for patching.
Thanks David Yerkess @ Milestone
#review@Ben.Marsh
Change 3511628 by Ben.Marsh
PR #3707: Fixed UBT stack size (Contributed by gildor2)
Change 3511808 by Ben.Marsh
Optimize checks for whether the game project contains source code. Now stops as soon as the first file is found and ignores directories beginning with a '.' character (eg. .git)
#jira UE-46540
Change 3512017 by Ben.Marsh
Plugins: Deprecate the QueryStatusForAllPlugins() function; the same functionality is available via the IPlugin interface.
Change 3513935 by Steve.Robb
Reverted array iteration in FPropertyNode::PropagatePropertyChange as this is now covered in TProperty::InitializeValueInternal() as of CL# 3293477.
Change 3514142 by Steve.Robb
MemoryProfiler2 added to generated solution.
Change 3516463 by Ben.Marsh
Plugins: Create a manifest for each PAK file containing all the plugin descriptors in one place. Eliminates need to recurse through directories and read separate multiple files in serial at startup, and allows reading all plugin descriptors with one read. The "Mods" directory is excluded from the manifest, since these are intended to be installed separately by the user.
Change 3517860 by Ben.Marsh
PR #3727: FString Dereference Fixes (Contributed by jovisgCL)
Change 3517967 by Ben.Marsh
Suppress additional system error dialogs when loading DLLs if -unnattended is on the command line.
Change 3518070 by Steve.Robb
Disable Binned2 stats in shipping non-editor builds.
Change 3520079 by Steve.Robb
Fixed bad codegen TAssetPtrs being passed into BlueprintImplementableEvent functions.
#jira UE-24034
Change 3520080 by Robert.Manuszewski
Made max package summary size to be configurable with ini setting
Change 3520083 by Steve.Robb
Force a GC after hot reload to clean up reinstanced objects which may still tick.
#jira UE-40421
Change 3520480 by Robert.Manuszewski
Improved assert message when the initial package read request was too small.
Change 3520590 by Graeme.Thornton
SignedArchiveReader optimizations
- Loads more stats
- Stop chunk cache worker from waking up continuously to poll for work. Only wake up when triggered by the archive reader
- Signed archive reader just yields when waiting for buffers to finish loading, rather than sleeping for some arbitrary amount of time
- Track the number of pending read requests in an atomic counter, to save having to lock the request queue to check for new entries
Change 3521023 by Graeme.Thornton
Remove spin from signed archive reader. Main thread waits on an event triggered by the chunk worker to indicate that new chunks are ready for processing
Change 3521787 by Ben.Marsh
PR #3736: Small static code analysis fixes (Contributed by jovisgCL)
Change 3521789 by Ben.Marsh
PR #3735: Fix case sensitivity issue in FWindowsPlatformProcess::IsApplicationRunning. (Contributed by samhocevar)
Change 3524721 by Ben.Marsh
Move Linux SDL initialization into FLinuxPlatformApplicationMisc. Attempting to move functionality related to interactive applications (graphics, input, etc...) into a separate place, so it can ultimately be moved out of Core.
Change 3524741 by Ben.Marsh
Move PumpMessages() into FPlatformApplicationMisc.
Change 3525399 by Ben.Marsh
UGS: Use the default Perforce server port when opening P4V if there is not one set in the environment.
Change 3525743 by Ben.Marsh
UAT: Add a parameter to allow updating version files without updating Version.h, to allow faster link times on incremental builds.
Change 3525746 by Ben.Marsh
EC: Include the clobber option on new workspaces, to allow overriding version files when syncing.
Change 3526453 by Ben.Marsh
UGS: Do not generate project files when syncing precompiled binaries.
Change 3527045 by Ben.Marsh
Fix hot reload generating import libraries without DLLs. Now that they are produced by separate actions by default, it was removing DLLs from the action graph due to the bSkipLinkingWhenNothingToCompile setting.
Change 3527420 by Ben.Marsh
UGS: Add additional search paths for UGS config files, and fix a few cosmetic issues (inability to display ampersands in tools menu, showing changelist -1 when running a tool without syncing).
Config files are now read from:
Engine/Programs/UnrealGameSync/UnrealGameSync.ini
Engine/Programs/UnrealGameSync/NotForLicensees/UnrealGameSync.ini
If a project is selected:
<ProjectDir>/Build/UnrealGameSync.ini
<ProjectDir>/Build/NotForLicensees/UnrealGameSync.ini
If the .uprojectdirs file is selected:
Engine/Programs/UnrealGameSync/DefaultProject.ini
Engine/Programs/UnrealGameSync/NotForLicensees/DefaultProject.ini
Change 3528063 by Ben.Marsh
Fix non-thread safe construction of FPluginManager singleton. Length of time spent in the constructor resulted in multiple instances being constructed at startup, making the time to enumerate plugins on slow media significantly worse.
Change 3528415 by Ben.Marsh
UAT: Remove \r characters from the end of multiline log messages.
Change 3528427 by Ben.Marsh
EC: Fix spaces being converted to tabs at start of line in failure emails (by Gmail), and wrap following lines at the same indent.
Change 3528485 by Ben.Marsh
EC: Remove zero-width word break characters from slashes in notification emails; can cause really hard to debug problems when copy pasted into other places.
Change 3528505 by Steve.Robb
PR #3755: MallocProfiler - Remove subfolder from profiling save directory (Contributed by Josef-CL)
#jira UE-46819
Change 3528772 by Robert.Manuszewski
Enabling actor and blueprint clustering in ShooterGame
Change 3528786 by Robert.Manuszewski
PR #3760: Fix typo (Contributed by jesseyeh)
Change 3528792 by Steve.Robb
PR #3764: MallocProfiler - Refactoring Scopelock (Contributed by Josef-CL)
#jira UE-46962
Change 3528941 by Robert.Manuszewski
Fixed lazy object pointers not being updated for streaming sub-levels in PIE. Fixed lazy pointers returning object that is still being loaded which could lead to undefined behavior when client code started modifying the returned object.
#jira UE-44996
Change 3530241 by Ben.Marsh
UAT: Only pass -submit or -nosubmit to child instances of UAT if they were specified on the original command line. BuildCookRun uses this flag to determine whether to submit, rather than just whether to allow submitting, so we shouldn't pass an inferred value.
Change 3531377 by Ben.Marsh
Plugins: Allow plugins to specify a list of supported target platforms, which is propagated to any .uproject file that enables it.
This has several advantages over the per-module platform whitelist/blacklist:
* Platform-specific .uplugin files can now be excluded when staging other platforms. Previously, it was only possible to determine which platforms a plugin supports by reading the plugin descriptor itself. Now that information is copied into the .uproject file, so the runtime knows which plugins to ignore.
* References to dependent plugins from platform-specific plugins can now be eliminated.
* Plugins containing content can now be unambiguously disabled on a per-platform basis (having no modules for a platform does not confer that a plugin doesn't support that platform; now it is possible to specify supported platforms explicitly).
* The editor can load any plugins without having to whitelist supported editor host platforms.
UE4 targets which support loading plugins for target platforms can set TargetRules.bIncludePluginsForTargetPlatforms (true for the editor by default, false for any other target types). This defines the LOAD_PLUGINS_FOR_TARGET_PLATFORMS macro at runtime, which allows the plugin system to filter which plugins to look for at runtime.
Any .uproject file will be updated at startup to contain the list of supported platforms for each referenced plugin if necessary.
Change 3531502 by Jin.Zhang
Add support for GPUCrash #rb
Change 3531664 by Ben.Marsh
UBT: Change output format from C# JSON writer to match output by the engine.
Change 3531848 by Ben.Marsh
UAT: Add script to resaving all project descriptors under a folder, embedding information for any supported platforms for the plugins they enable.
Change 3531869 by Ben.Marsh
UAT: Add parameter to the ResaveProjectDescriptors command to update the engine association field.
Change 3532474 by Ben.Marsh
UBT: Use the same mechanism as UAT for logging exceptions.
Change 3532734 by Graeme.Thornton
Initial VSCode Support
- Tasks generated for building all game/engine/program targets
- Debugging support for targets on Win64
Change 3532789 by Steve.Robb
FScriptSet::Add and TScriptMap::Add now replace the element, matching the behavior of TSet and TMap.
Set_Add and Map_Add no longer have a return value.
FScriptSet::Find and FScriptMap::Find functions are now FindIndex.
FScriptSetHelper::FindElementFromHash is now FindElementIndexFromHash.
Change 3532845 by Steve.Robb
Obsolete UHT settings deleted.
Change 3532875 by Graeme.Thornton
VSCode
- Add debug targets for different target configurations
- Choose between VS debugger (windows) and GDB (mac/linux)
Change 3532906 by Graeme.Thornton
VSCode
- Point all builds directly at UBT rather than the batch files
- Adjust mac build tasks to run through mono
Change 3532924 by Ben.Marsh
UAT: Set the UAT working directory immediately on startup. This ensures that any command line arguments containing paths are resolved consistently to the branch root.
Change 3535234 by Graeme.Thornton
VSCode - Pass intellisense system a list of paths to use for header resolution
Change 3535247 by Graeme.Thornton
UBT - Add a ToString to ProjectFile.Source file to help with debugger watch presentation
Change 3535376 by Graeme.Thornton
VSCode
- Added build jobs for C# projects
- Linked launch tasks to relevant build task
Change 3537083 by Ben.Marsh
EC: Change P4 swarm links to start at the changelist for a build.
Change 3537368 by Graeme.Thornton
Fix for crash in FSignedArchiveReader when multithreading is disabled
Change 3537550 by Graeme.Thornton
Fixed a crash in the taskgraph when running single threaded
Change 3537922 by Steve.Robb
Missing PF_ATC_RGBA_I added to FOREACH_ENUM_EPIXELFORMAT.
Change 3539691 by Graeme.Thornton
VSCode - Various updates to get PC and Mac C++ projects building and debugging.
- Some other changes to C# setup to allow compilation. Debugging doesn't work.
Change 3539775 by Ben.Marsh
Plugins: Various fixes to settings for enabling plugins.
* Fix crash on startup when trying to disable a missing plugin (was keeping pointers to elements in the project's plugin reference array, which may be modified if a plugin is disabled).
* Revert fix to set PluginDescriptor.bRequiresBuildPlatform = true by default. This was the originally intended behavior, but it was accidentally defaulted to false during serialization unless specified in the .uplugin file. Many plugins may rely on this behavior (they may not declare asset classes otherwise, for example, which could result in loss of data), so change the default value to false instead. Also fixes popups to disable platform-specific plugins if platform SDKs are not installed.
* Fix plugins which are referenced but do not exist not showing the appropriate prompt to disable them.
Change 3540788 by Ben.Marsh
UBT: Add support for declaring custom pre-build steps and post-build steps from .target.cs files. Similarly to the custom build steps configurable from .uproject and .uplugin files, these specify commands which will be executed by the host platform's shell before or after a build. The following variables are expanded within the list of commands before execution: $(EngineDir), $(ProjectDir), $(TargetName), $(TargetPlatform), $(TargetConfiguration), $(TargetType), $(ProjectFile).
Example usage:
public class UnrealPakTarget : TargetRules
{
public UnrealPakTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Program;
LinkType = TargetLinkType.Monolithic;
LaunchModuleName = "UnrealPak";
if(HostPlatform == UnrealTargetPlatform.Win64)
{
PreBuildSteps.Add("echo Before building:");
PreBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
PostBuildSteps.Add("echo After building!");
PostBuildSteps.Add("echo This is $(TargetName) $(TargetConfiguration) $(TargetPlatform)");
}
}
}
Change 3541664 by Graeme.Thornton
VSCode - Add problemMatcher tag to cpp build targets
Change 3541732 by Graeme.Thornton
VSCode - Change UBT command line switch to "-vscode" for simplicity
Change 3541967 by Graeme.Thornton
VSCode - Fixes for Mac/Linux build steps
Change 3541968 by Ben.Marsh
CRP: Pass through the EnabledPlugins element in crash context XML files.
#jira UE-46912
Change 3542519 by Ben.Marsh
UBT: Add chain of references to error messages when configuring plugins.
Change 3542523 by Ben.Marsh
UBT: Add more useful error message when attempt to parse a JSON object fails.
Change 3542658 by Ben.Marsh
UBT: Include a chain of references when reporting errors instantiating modules.
Change 3543432 by Ben.Marsh
Plugins: Fix plugins which are enabled by default not being enabled unless a project file is set.
Change 3543436 by Ben.Marsh
UBT: Prevent recursing through the same module more than once when building out the referenced modules. Produces much shorter reference chains when something fails.
Change 3543536 by Ben.Marsh
UBT: Downgrade message about redundant plugin references to a warning.
Change 3543871 by Gil.Gribb
UE4 - Fixed a critical crash bug with non-EDL loading from pak files.
Change 3543924 by Robert.Manuszewski
Fixed a crash on UnrealFrontend startup caused by re-assembling GC token stream for one of the classes.
+Small optimization to token stream generation code.
Change 3544469 by Jin.Zhang
Crashes page displays the list of plugins from the crash context #rb
Change 3544608 by Steve.Robb
Fix for nativized generated code.
#jira UE-47452
Change 3544612 by Ben.Marsh
Add callback into FMacPlatformMisc::PumpMessages() from FMacPlatformApplicationMisc::PumpMessages().
#jira UE-47449
Change 3545954 by Gil.Gribb
Fixed a critical crash bug relating to a race condition in async package summary reading.
Change 3545968 by Ben.Marsh
UAT: Fix incorrect username in BuildGraph <Submit> task. Should use the username from the Perforce environment, not assume the logged in user name is the same.
#jira UE-47419
Change 3545976 by Ben.Marsh
EC: Delete the AutoSDK client if the directory doesn't exist. When we format build machines, we need to force everything to be resynced from scratch.
Change 3546185 by Ben.Marsh
Hacky fix for deployment on IOS/TVOS. Since deployment directly references the NonUFS manifest files that are written out, merge all the SystemNonUFS files back into the NonUFS list after the regular NonUFS files have been remapped.
Change 3547084 by Gil.Gribb
Fixed a critical race condition in the new async loader. This was only reproducible on IOS, but may affect other platforms.
Change 3547968 by Gil.Gribb
Fixed critical race which potentially could cause a crash in the pak precacher.
Change 3504722 by Ben.Marsh
BuildGraph: Improved tracing for error messages. All errors are now propagated as exceptions, and are tagged with additional context information about the task currently being run.
For example, throwing new AutomationException("Unable to write foo.txt") from SetVersionTask.Execute is now displayed in the log as:
ERROR: Unable to write to foo.txt
while executing <SetVersion Change="0" CompatibleChange="0" Branch="Unknown" Promoted="True" />
at Engine\Build\InstalledEngineBuild.xml(91)
(see D:\P4 UE4\Engine\Programs\AutomationTool\Saved\Logs\UAT_Log.txt for full exception trace)
Change 3512255 by Ben.Marsh
Rename FPaths functions with a "Game" prefix (GameDir(), GameContentDir(), etc...) to have a "Project" prefix (ProjectDir(), ProjectContentDir(), etc...) for clarity with non-game uses of UE4. Old functions still exist but are deprecated.
Change 3512332 by Ben.Marsh
Rename "Game" functions in FApp to be "Project" functions (FApp::GetGameName() -> FApp::GetProjectName(), etc...) for clarity with non-game uses of UE4.
Change 3512393 by Ben.Marsh
Rename FPaths::GameLogDir() to FPaths::ProjectLogDir().
Change 3513452 by Ben.Marsh
Plugins: Rename EPluginLoadedFrom::GameProject to EPluginLoadedFrom::Project.
Change 3516262 by Ben.Marsh
Add support for a "Mods" folder distinct from the project's "Plugins" folder, instead of using the bIsMod flag on the plugin descriptor.
* Mods are enumerated similarly to regular plugins, but IPlugin::GetType() will return EPluginType::Mod.
* The DLCName parameter to BuildCookRun and the cooker now correctly finds any plugin in the Plugins or Mods directory (or any subfolders).
Change 3517565 by Ben.Marsh
Remove fixed engine version numbers from OSS plugins.
Change 3518005 by Ben.Marsh
UAT: Remove the bUFSFile parameter from DeployLowerCaseFilenames(). Every platform returns false if the argument is false.
Change 3518054 by Ben.Marsh
UAT: Use an enum to direct whether all directories should be searched when finding files to stage, rather than a bool. Having so many optional boolean arguments makes code unreadable and refactoring hard.
Change 3524496 by Ben.Marsh
Start moving GUI application code into a separate static platform class, hopefully ultimately removing it from Core.
Change 3524641 by Ben.Marsh
Move more functionality related to windowed/graphical applications into FPlatformApplicationMisc.
Change 3528723 by Steve.Robb
MoveTemp now static asserts if passed a const reference or rvalue.
MoveTempIfPossible still follows the old (std::move) rule, which is useful for templates where the nature of the argument is not obvious.
Fixes to violations of these new rules.
Change 3528876 by Ben.Marsh
Move FPlatformMisc::ClipboardCopy and FPlatformMisc::ClipboardPaste to FPlatformApplicationMisc::ClipboardCopy and FPlatformApplicationMisc::ClipboardPaste.
Change 3529073 by Ben.Marsh
Add script to package ShooterGame for any platforms.
Change 3531493 by Ben.Marsh
Update platform-specific plugins to declare the target platforms they support.
Change 3531611 by Ben.Marsh
UAT: Add a ResavePluginDescriptors command, which resaves all plugin descriptors under a given folder, removing any outdated fields and rewrites them in a consistent style. Many plugins in the wild contain redundant or no-longer used fields due to using our plugins as templates.
Change 3531868 by Ben.Marsh
Resaving project descriptors to remove invalid fields.
Change 3531983 by Ben.Marsh
UAT: Simplify logic for staging code, and add validation against shipping files in restricted folders.
* Added a new SystemNonUFS type for staged files, which excludes files from being remapped or renamed by the platform layer.
* Replaced the DeplyomentContext.StageFiles() function with simpler overloads for particular use cases (options for remapping are replaced with the SystemNonUFS file type)
* Config entries in the [Staging] category in DefaultGame.ini file allow remapping one directory to another, so restricted content can be made public in packaged builds (Example syntax: +RemapDirectory=(From="Foo/NoRedist", To="Foo"))
* An error is output if any restricted folder names other than the output platform are in the staged output.
Change 3540315 by Ben.Marsh
UAT: Moving StreamCopyDescription command into a NotForLicensees folder, since it's only meant to be used by engine developers.
Change 3542410 by Ben.Marsh
UBT: Deprecate accessing properties through BuildConfiguration.* or UEBuildConfiguration.* from .target.cs files. These have been aliases to the current TargetRules instance for several releases already.
Change 3543018 by Ben.Marsh
UBT: Deprecate the BuildConfiguration and UEBuildConfiguration aliases from the ModuleRules class. These have been implemented as an alias ot the ReadOnlyTargetRules instance passed to the constructor for several engine versions.
Change 3544371 by Steve.Robb
Fixes to TSet_Add and TMap_Add BPs.
#jira UE-47441
[CL 3548391 by Ben Marsh in Main branch]
2017-07-21 12:42:36 -04:00
const FString PathName = * ( FPaths : : ProjectLogDir ( ) + TEXT ( " RefInfo/ " ) ) ;
2014-03-14 14:13:41 -04:00
IFileManager : : Get ( ) . MakeDirectory ( * PathName ) ;
const FString Filename = FString : : Printf ( TEXT ( " Output-%s.txt " ) , * FDateTime : : Now ( ) . ToString ( TEXT ( " %m.%d-%H.%M.%S " ) ) ) ;
const FString FilenameFull = PathName + Filename ;
FOutputDeviceFile FileAr ( * FilenameFull ) ;
FileAr . SetSuppressEventTag ( true ) ;
GPrintLogTimes = ELogTimes : : None ;
// Set up our ignore lists
IgnoreClasses . Empty ( ) ;
IgnorePackages . Empty ( ) ;
IgnoreClasses . Add ( ULevel : : StaticClass ( ) ) ;
IgnoreClasses . Add ( UWorld : : StaticClass ( ) ) ;
// Load the asset registry module
FAssetRegistryModule & AssetRegistryModule = FModuleManager : : LoadModuleChecked < FAssetRegistryModule > ( TEXT ( " AssetRegistry " ) ) ;
TArray < FAssetData > AssetData ;
FARFilter Filter ;
Filter . PackagePaths . Add ( FName ( TEXT ( " /Engine/EngineResources " ) ) ) ;
Filter . PackagePaths . Add ( FName ( TEXT ( " /Engine/EngineFonts " ) ) ) ;
Filter . PackagePaths . Add ( FName ( TEXT ( " /Engine/EngineMaterials " ) ) ) ;
Filter . PackagePaths . Add ( FName ( TEXT ( " /Engine/EditorResources " ) ) ) ;
Filter . PackagePaths . Add ( FName ( TEXT ( " /Engine/EditorMaterials " ) ) ) ;
AssetRegistryModule . Get ( ) . GetAssets ( Filter , AssetData ) ;
for ( int32 AssetIdx = 0 ; AssetIdx < AssetData . Num ( ) ; + + AssetIdx )
{
IgnorePackages . Add ( FindObject < UPackage > ( NULL , * AssetData [ AssetIdx ] . PackageName . ToString ( ) , true ) ) ;
}
IgnorePackages . Add ( GetTransientPackage ( ) ) ;
// Bug? At this point IgnorePackages often has a handful of null entries, which, completely throws off the filtering process
IgnorePackages . Remove ( NULL ) ;
// Generate reference info
BuildAssetList ( InWorld , Depth , bShowDefault , bShowScript ) ;
// Output reference info
OutputTree ( FileAr ) ;
OutputDetails ( FileAr ) ;
FileAr . TearDown ( ) ;
GPrintLogTimes = PrintLogTimes ;
// Display "completed" popup
FString AbsPath = FilenameFull ;
FPaths : : ConvertRelativePathToFull ( AbsPath ) ;
FFormatNamedArguments Args ;
Args . Add ( TEXT ( " AbsolutePath " ) , FText : : FromString ( AbsPath ) ) ;
FNotificationInfo Info ( FText : : Format ( NSLOCTEXT ( " UnrealEd " , " ReferenceInfoSavedNotification " , " Reference info was successfully saved to: {AbsolutePath} " ) , Args ) ) ;
Info . ExpireDuration = 3.0f ;
FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
}
}