2016-12-08 08:52:44 -05:00
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2014-03-14 14:13:41 -04:00
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 "MainFrameModule.h"
# include "Widgets/Text/STextBlock.h"
# include "Widgets/Layout/SBorder.h"
# include "SlateOptMacros.h"
# include "Widgets/Images/SImage.h"
# include "Widgets/Layout/SBox.h"
# include "Widgets/Input/SButton.h"
# include "Interfaces/ICrashTrackerModule.h"
# include "GameProjectGenerationModule.h"
# include "MessageLogModule.h"
# include "MRUFavoritesList.h"
# include "SuperSearchModule.h"
# include "OutputLogModule.h"
# include "EditorStyleSet.h"
# include "Editor/EditorPerProjectUserSettings.h"
# include "Sound/SoundBase.h"
# include "ISourceCodeAccessor.h"
# include "ISourceCodeAccessModule.h"
# include "Menus/MainMenu.h"
# include "Frame/RootWindowLocation.h"
# include "Kismet2/CompilerResultsLog.h"
2014-06-24 12:11:51 -04:00
# include "Editor/EditorLiveStreaming/Public/IEditorLiveStreaming.h"
2014-08-20 13:58:31 -04:00
# include "Developer/HotReload/Public/IHotReload.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"
# include "Framework/Commands/GenericCommands.h"
# include "AnalyticsEventAttribute.h"
# include "Interfaces/IAnalyticsProvider.h"
Copying //UE4/Dev-Framework to //UE4/Dev-Main (Source: //UE4/Dev-Framework @ 2994668)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2967465 on 2016/05/05 by Marc.Audy
Fix VS2015 shadow variables fixes
Change 2970637 on 2016/05/09 by Martin.Wilson
Fix incorrect conflict resolve in merge from main
Change 2976393 on 2016/05/12 by Zak.Middleton
#ue4 - Set AudioComponent bUseAttachParentBounds=true to reduce cost of transform updates (avoids virtual CalcBounds() when transform changes).
#tests PIE w/ audio
Change 2976770 on 2016/05/13 by Lina.Halper
Improvement on mirroring fix branch
#code review: Zak.Middleton
Change 2976774 on 2016/05/13 by Lukasz.Furman
fixed missing memory callbacks for instanced behavior tree nodes
#jira UE-30305
Change 2976775 on 2016/05/13 by Lukasz.Furman
fixed multiple calls to behavior tree's instance cleanup
#jira UE-30593
Change 2976801 on 2016/05/13 by Jon.Nabozny
Add an optional argument FSkeletalMeshMerge. When set to EMeshBufferAccess::ForceCPUAndGPU, keeps a reference to the vertex buffer on CPU (e.g. for spawning particle effects).
#JIRA UE-30405
Change 2976985 on 2016/05/13 by Jon.Nabozny
Fix initializer list ordering for FSkeletalMeshMerge.
Change 2977532 on 2016/05/13 by Marc.Audy
PR #2348: [Local Multiplayer] Gamepad player assignment improvements (Contributed by kukiric)
#jira UE-30162
Change 2977637 on 2016/05/13 by Marc.Audy
Add Get/Set controller ID for a player in gameplay statics
#jira UE-28718
Change 2979387 on 2016/05/16 by Jon.Nabozny
Initialize FBox used to store results for CalculateQuatACF96Bounds.
#JIRA UE-30846
Change 2979968 on 2016/05/17 by bruce.nesbit
Added comment in FCanvasLineItem to warn only SE_BLEND_Opaque will be used when rendering.
Change 2979969 on 2016/05/17 by bruce.nesbit
Added comment in AddLine/AddPoint to warn only SE_BLEND_Opaque will be used when rendering.
Change 2980271 on 2016/05/17 by Lina.Halper
Improved comment
#code review: Benn.Gallagher
Change 2980317 on 2016/05/17 by Lukasz.Furman
removing NavCollision from static mesh on property change and PostLoad if static mesh is not supposed to have one
#ue4
Change 2980717 on 2016/05/17 by Zak.Middleton
#ue4 - Optimize UCapsuleComponent::CalcBounds() to remove sqrt and use tighter bounding sphere radius.
Change 2981193 on 2016/05/17 by Lukasz.Furman
fixed missing observers in behavior tree when dynamic subtree is changed while waiting for full restart (out of nodes)
#ue4
Change 2981927 on 2016/05/18 by Lina.Halper
- Remove vertex animation code
- Removing UVertexAnimation
- Fixed reinitialization issue that was triggered by SetVertexAnimation
- todo: consolidate UMorphtarget and UVertexAnimBase
#code review: James.Golding, Martin.Wilson
Change 2981957 on 2016/05/18 by Lina.Halper
Add recursive stack check on update animation
#code review: Martin.Wilson
Change 2982116 on 2016/05/18 by Benn.Gallagher
Removed optimize macros accidentally left after bounds extension feature for skel meshes
Change 2982255 on 2016/05/18 by Jon.Nabozny
FSkeletalMeshMerge constructor "MeshBufferAccess" default should be EMeshBufferAccess:Default instead of EMeshBufferAccess::ForceCPUAndGPU.
Change 2982607 on 2016/05/18 by Marc.Audy
Cleanup places calling GetWorld() multiple times
Change 2982621 on 2016/05/18 by Marc.Audy
Make UActorComponent::GetWorld final and inlined to avoid unnecessary function calls
Put uncached logic in to a separate function
Change 2983424 on 2016/05/19 by Marc.Audy
Minor tweaks to reduce GetWorld calls
Change 2983465 on 2016/05/19 by Lina.Halper
Combine VertexAnimBase and MorphTarget to just MorphTarget
- VertexAnimBase is gone
- Modified most of VertexAnim to MorphTarget
- Removed state, time related data
#code review: James.Golding, Rolando.Caloca
Change 2983609 on 2016/05/19 by Marc.Audy
Inline AActor::GetLevel
Half GetWorld() calls from AActor::GetNetMode()
Change 2983772 on 2016/05/19 by Marc.Audy
Fix Mac compile
Change 2983931 on 2016/05/19 by Marc.Audy
Remove pointless AccelMouse function
Change 2984061 on 2016/05/19 by Marc.Audy
Reorg some headers to fix compilation issues
Change 2984409 on 2016/05/19 by Aaron.McLeran
#jira UE-31049 Updating the Oculus Audio SDK to vs 1.02
Implementing 2984316 from Releases/4.12 to Dev-Framework
Change 2984574 on 2016/05/19 by Aaron.McLeran
Fix for platform headroom scalar. Using correct dB to linear formula (not one for power)
dB = 20 * log(Linear), not dB = 10 * log(Linear)
Change 2985041 on 2016/05/20 by Jon.Nabozny
ConvertQueryOverlap only returns the base actor if multiple actors have bSimulatePhysics enabled and are welded together.
#JIRA UE-30484
Change 2985118 on 2016/05/20 by Marc.Audy
Another attempt to convince Mac to build
Change 2985192 on 2016/05/20 by Marc.Audy
Properly forward declare ABrush
Change 2985724 on 2016/05/20 by Zak.Middleton
#ue4 - Optimize NaN and Infinite checks for FVector, FQuat, FRotator, FMatrix, FTransform. SIMD version VectorContainsNaNOrInfinite() also optimized on relevant platforms. Added startup tests for VectorContainsNaNOrInfinite().
- All our "ContainsNaN()" tests are in fact "IsNaN() || IsInfinite()", which is the same as "!IsFinite()", so exploited this to simplify the tests. Both NaN and +/-Inf are not finite (http://en.cppreference.com/w/cpp/numeric/math/isfinite). In the future we should rename ContainsNaN().
- Still need to audit some uses in shipping configs.
#jira UE-30999
Change 2986016 on 2016/05/20 by Zak.Middleton
#ue4 - Fix uint32 used for int32 values. Behavior was unaffected.
Change 2986017 on 2016/05/20 by Zak.Middleton
#ue4 - Fix overlaps being dropped from within a FScopedMoveUpdate when rotation occurs. Remove invalid assert.
Change 2986833 on 2016/05/23 by Zak.Middleton
#ue4 - Move ETeleportType from ActorComponent.h to EngineTypes.h. Add comment to FHitResult for ImpactPoint when it's penetrating.
Change 2986916 on 2016/05/23 by Rolando.Caloca
DF - GPU morph targets proof of concept
- Disabled by default
- Not compatible with gpu skin cache
- No extra memory required yet until it's used; creates buffers per frame (very slow!)
Change 2987539 on 2016/05/23 by Rolando.Caloca
DF - Remove unused member and downgrade FActiveMorphTarget to not be a USTRUCT
Change 2987981 on 2016/05/24 by James.Golding
PR #2162 : Exported AAudioVolume so that projects can derive custom classes.
https://github.com/EpicGames/UnrealEngine/pull/2162
#github 2162
#jira UE-28533
Change 2987982 on 2016/05/24 by James.Golding
PR #2318 : Fix memory allocation in CustomMeshComponent.cpp
https://github.com/EpicGames/UnrealEngine/pull/2318
#github 2318
#jira UE-29864
Change 2987983 on 2016/05/24 by James.Golding
Merging engine changes back from GDC demo:
- Export FFIRFilterTimeBased from Engine module
- Add FFIRFilterTimeBased::SetWindowDuration
- Add FBaseCompactPose::CopyBonesTo
Change 2987984 on 2016/05/24 by James.Golding
UE-30137 No longer include collision in StatiMeshComponent bounds (bounds no longer user for any collision calculation)
Change 2987985 on 2016/05/24 by James.Golding
UE-27801 Export ConvertToCollisionChannel, ConvertToObjectType, and ConvertToTraceType members of UCollisionProfile
Change 2987987 on 2016/05/24 by James.Golding
OR-17910 : Support 'show collision' in Test configuration
Change 2988123 on 2016/05/24 by Jon.Nabozny
Prevent FBodyInstance::Weld causing duplicate PhsyXShapes to be created / added to ShapeToBodiesMap when toggling SimulatePhysics on PrimitiveComponent.
#JIRA UE-31189
Change 2988449 on 2016/05/24 by Rolando.Caloca
DF - Split FActiveMorphTarget's weight into its own array in prep for GPU friendly data
Change 2988485 on 2016/05/24 by Jon.Nabozny
Swap order of setRigidBodyFlag and setRigidDynamicFlag inside UpdateInstanceSimulatePhysics to prevent PhysX error about Kinematic bodies not using CCD.
#JIRA UE-30993
Change 2988969 on 2016/05/24 by Rolando.Caloca
DF - GPU morph targets
- Enable using r.MorphTarget.Mode 1
Change 2989645 on 2016/05/25 by Marc.Audy
Apply CL# 2989481 to Dev-Framework
#jira UE-31055
Change 2989987 on 2016/05/25 by Wes.Hunt
Redo of CL#2982707 2982716 2982723 2983780 2983864 from //Orion/Dev-General in preparation for continuing Analytics refactor in a Dev branch.
AnalyticsET support for arbitrary Json events.
* AnalyticsET supports a new API, RecordEventJson.
* API supports rvalue refs to avoid unnecessary copies of the attribute array.
#AUTOMERGE using branch Orion-Dev-General-To-UE4-Dev-Framework of change#2982707 by Wes.Hunt on 2016/05/18 17:22:20.
Remove Analytics code to divert legacy code to source data collector.
#AUTOMERGE using branch Orion-Dev-General-To-UE4-Dev-Framework of change#2982716 by Wes.Hunt on 2016/05/18 17:27:25.
Analytics no longer adds IsEditor attribute to all events. Wasn't actually used by anyone anymore.
#AUTOMERGE using branch Orion-Dev-General-To-UE4-Dev-Framework of change#2982723 by Wes.Hunt on 2016/05/18 17:29:40.
Modernize FAnalyticsEventAttribute usage.
Replaced FAnalyticsEventAttribute various ctors with a perfect forwarding one that can convert them to strings.
* The Name must be convertible to a string
* The value must be convertible to a string via an AnalyticsConversion::ToString() overload.
* Added/expanded the supported conversions to strings to analytics attribute values. See AnalyticsConversion.h which contains all the previously supported conversions and more.
Added MakeAnalyticsEventAttributeArray(), which uses variadic templates to create an array of event attributes inline, which can be passed to RecordEvent[Json] and efficiently taken ownership of:
RecordEvent("EventName", MakeAnalyticsEventAttributeArray(
"Attr1", false,
"Attr2", 42.0,
"Attr3", SomeMap,
"Attr4", SomeArray);
#AUTOMERGE using branch Orion-Dev-General-To-UE4-Dev-Framework of change#2983780 by Wes.Hunt on 2016/05/19 13:51:48.
Added missing assignment copy/move ops to FAnalyticsEventAttribute. Doh, should have looked at more usages of PLATFORM_COMPILER_HAS_DEFAULTED_FUNCTIONS...
#AUTOMERGE using branch Orion-Dev-General-To-UE4-Dev-Framework of change#2983864 by Wes.Hunt on 2016/05/19 14:17:05.
Change 2989988 on 2016/05/25 by Wes.Hunt
Fix usage of FAnalyticsEventAttribute constructor using a bitfield that was invalidated by the change to make FAnalyticsEventAttribute use a perfect forwarding constructor. bitfields cannot be perfect-forwarded... :(
Change 2990493 on 2016/05/25 by Joe.Graf
Added tooltips to the collision analyzer's buttons
#CodeReview: james.golding
Change 2991064 on 2016/05/26 by James.Golding
- Remove many Animation headers from Engine.h
- Remove AnimationAsset.h from SkeletalMeshComponent.h, Character.h, CharacterMovementComponent.h
Change 2991113 on 2016/05/26 by Benn.Gallagher
Fixed edge case in random sequence player where we might trigger an extra loop when waiting on a blend to finish. And made it impossible for a shuffle list to start with the animation that is currently playing (seemingly duplicating the anim).
Change 2991163 on 2016/05/26 by Rolando.Caloca
DF - Rename and refactor some morph target compute shader in prep for interop with skin cache
Change 2991167 on 2016/05/26 by Jon.Nabozny
Add `#include "DataTable.h"` to GameplayTagsManager.h. FGameplayTagTableRow is derived from FTableRowBase which isn't necessarily included. This issue is hidden in most cases as "Engine.h" includes "DataTable.h".
Change 2991183 on 2016/05/26 by Wes.Hunt
Disable general forwarding constructor for AnalyticsEventAttribute for non arithmetic types, so they are free to choose other overloads more appropriately.
Change 2991199 on 2016/05/26 by Wes.Hunt
Drastically reducing the headers dependencies on analytics headers. Analytics headers no longer appear in PCH files, and rarely if ever appear in a header file.
IAnalyticsProviderModule.h only touches 8 source files.
Analytics.h only touches 8 source files.
IAnalyticsProvider.h only touches 5 headers and 97 source files.
AnalyticsET.h only touches 12 source files.
Change 2991301 on 2016/05/26 by James.Golding
Fix CIS for Fortnite
Change 2991319 on 2016/05/26 by James.Golding
Fix CIS for Orion
Change 2991373 on 2016/05/26 by Joe.Graf
Tweaked the tooltip text for the collision analyzer record button to be correct for both states
Added a common button style so that the buttons have a consistent look
#CodeReview: james.golding
Change 2991401 on 2016/05/26 by James.Golding
Fix UT CIS
Change 2991406 on 2016/05/26 by James.Golding
Fix Ocean CIS
Change 2991491 on 2016/05/26 by Lina.Halper
Moved MorphTarget.h
- Checked in modified functions fo AnimationRuntime for other features coming up
- Should not change any behavior of existing content
#code review: James.Golding, Rolando.Caloca
Change 2991494 on 2016/05/26 by Wes.Hunt
Fix for Unity error in AnalyticsET module after hedaer dependency reduction
Change 2991503 on 2016/05/26 by Jon.Nabozny
Fix issue where FConstraintInstance (inside UPhysicsConstraintComponent) is not editable in InstanceEditor but is editable in BlueprintEditor.
#JIRA UE-31267
Change 2991562 on 2016/05/26 by Zak.Middleton
#ue4 - Reduce allocations during movement and overlap queries and when grabbing shapes from physx actors.
Change 2991586 on 2016/05/26 by James.Golding
More CIS fixes for Orion and Fortnite
Change 2991673 on 2016/05/26 by Wes.Hunt
Another non-unity fix for Analytics include dependency reduction.
Change 2991733 on 2016/05/26 by Zak.Middleton
#dev - Test map, 50 walking dudes.
Change 2991781 on 2016/05/26 by Lina.Halper
Back out revision 15 from //UE4/Dev-Framework/Engine/Source/Runtime/Engine/Private/Animation/AnimationRuntime.cpp
- Back out a part of changes that I didn't mean to check in.
Change 2991922 on 2016/05/26 by Zak.Middleton
#ue4 - Maybe fix Mac build.
Change 2991957 on 2016/05/26 by Joe.Graf
Fixed the collision analyzer file open text (said project instead of collision)
Change 2991991 on 2016/05/26 by Lina.Halper
Fix compile error
Change 2992089 on 2016/05/26 by Zak.Middleton
#ue4 - Fix Mac/PS4 build.
Change 2992108 on 2016/05/26 by Wes.Hunt
Yet another non-unity fix for Analytics header inclusion reduction.
Change 2992190 on 2016/05/26 by Zak.Middleton
#ue4 - Mark FHitResult, FOverlapResult, FOverlapInfo as POD types. Avoids destructors etc when in TArrays.
Change 2992593 on 2016/05/27 by Martin.Wilson
Build fixes for non editor platforms
Change 2992885 on 2016/05/27 by Rolando.Caloca
DF - Fix crash on thumbnails
#jira UE-31398
Change 2993058 on 2016/05/27 by Lukasz.Furman
fixed behavior tree getting stuck on ResumeLogic call
#jira OR-22498
Change 2993064 on 2016/05/27 by Zak.Middleton
#ue4 - Fix root motion network corrections not clearing root motion data.
udn: https://udn.unrealengine.com/questions/294985/jittering-in-character-movement-during-networked-m.html
#jira UE-31316
Change 2993215 on 2016/05/27 by Lukasz.Furman
gameplay debugger fixes: navmesh rendering is not hidden after disabling tool, player stuck in spectator mode after disabling tool, confusing version description for categories without data packs
added replicated input bindings for debugger's categories
#ue4
Change 2993521 on 2016/05/27 by Zak.Middleton
#ue4 - Reduce allocations in UI Canvas items.
Change 2993995 on 2016/05/30 by Mieszko.Zielinski
Temporary fix for BBKeySelector not handling properly multiple UObject subtypes #UE4
#jira UE-31435
Change 2993998 on 2016/05/30 by Mieszko.Zielinski
Improves handling of a special case in EQS score normalization, where all items have the same score #UE4
We used to set the normalized score of 1 for all items, which was counter intuitive if all items have scored 0 in an unnormalized test. The improve handling detects that and assigns score of 0 in that case.
Change 2993999 on 2016/05/30 by Mieszko.Zielinski
Fixed FEQSParametrizedQueryExecutionRequest converting non-BB values into EQS params wrong #UE4
Change 2994000 on 2016/05/30 by Mieszko.Zielinski
Exposed UNavigationInvokerComponent as part of ENGINE_API so that it can be spawned procedurally in C++ in game specific code #UE4
Change 2994003 on 2016/05/30 by Mieszko.Zielinski
Fixed naming of console variable controllin v-logging of FGameplayAttribute #UE4
The old name was copy-pasted from somewhere.
Change 2994007 on 2016/05/30 by Mieszko.Zielinski
Fixed unregistering listeners from perception system not clearing up all data #UE4
Also, introduced two precisely named functions, GetCurrentlyPerceivedActors and GetKnownPerceivedActors to replace ambiguous GetPerceivedActors
Also, renamed UAIPerceptionComponent::TActorPerceptionContainer to UAIPerceptionComponent::FActorPerceptionContainer
Change 2994475 on 2016/05/31 by Wes.Hunt
Fix Unity build failure for analytics inclusion reduction for IOSFlurry.
[CL 2994701 by Marc Audy in Main branch]
2016-05-31 13:51:34 -04:00
# include "EngineAnalytics.h"
2014-03-14 14:13:41 -04:00
DEFINE_LOG_CATEGORY ( LogMainFrame ) ;
# define LOCTEXT_NAMESPACE "FMainFrameModule"
const FText StaticGetApplicationTitle ( const bool bIncludeGameName )
{
static const FText ApplicationTitle = NSLOCTEXT ( " UnrealEditor " , " ApplicationTitle " , " Unreal Editor " ) ;
if ( bIncludeGameName & & FApp : : HasGameName ( ) )
{
FFormatNamedArguments Args ;
Args . Add ( TEXT ( " GameName " ) , FText : : FromString ( FString ( FApp : : GetGameName ( ) ) ) ) ;
Args . Add ( TEXT ( " AppTitle " ) , ApplicationTitle ) ;
const EBuildConfigurations : : Type BuildConfig = FApp : : GetBuildConfiguration ( ) ;
if ( BuildConfig ! = EBuildConfigurations : : Shipping & & BuildConfig ! = EBuildConfigurations : : Development & & BuildConfig ! = EBuildConfigurations : : Unknown )
{
Args . Add ( TEXT ( " Config " ) , EBuildConfigurations : : ToText ( BuildConfig ) ) ;
return FText : : Format ( NSLOCTEXT ( " UnrealEditor " , " AppTitleGameNameWithConfig " , " {GameName} [{Config}] - {AppTitle} " ) , Args ) ;
}
return FText : : Format ( NSLOCTEXT ( " UnrealEditor " , " AppTitleGameName " , " {GameName} - {AppTitle} " ) , Args ) ;
}
return ApplicationTitle ;
}
/* IMainFrameModule implementation
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2016-03-11 17:29:00 -05:00
void FMainFrameModule : : CreateDefaultMainFrame ( const bool bStartImmersive , const bool bStartPIE )
2014-03-14 14:13:41 -04:00
{
if ( ! IsWindowInitialized ( ) )
{
FRootWindowLocation DefaultWindowLocation ;
bool bEmbedTitleAreaContent = true ;
bool bIsUserSizable = true ;
bool bSupportsMaximize = true ;
bool bSupportsMinimize = true ;
FText WindowTitle ;
if ( ShouldShowProjectDialogAtStartup ( ) )
{
// Force tabs restored from layout that have no window (the LevelEditor tab) to use a docking area with
// embedded title area content. We need to override the behavior here because we're creating the actual
// window ourselves instead of letting the tab management system create it for us.
bEmbedTitleAreaContent = false ;
// Do not maximize the window initially. Keep a small dialog feel.
DefaultWindowLocation . InitiallyMaximized = false ;
Copying //UE4/Dev-Platform to //UE4/Dev-Main (Source: //UE4/Dev-Platform @ 3147796)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2948319 on 2016/04/19 by Nick.Shin
update zlib to v1.2.8
part 1 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
Change 2948322 on 2016/04/19 by Nick.Shin
update libwebsockets to v1.7.4
part 4 of 4 - doing this in stages for tracking purposes
#jira UEPLAT-1246 - Update libWebsockets
#jira UEPLAT-1221 - update websocket library
#jira UEPLAT-1204 - Rebuild libwebsockets with SSL
Change 2948661 on 2016/04/19 by Nick.Shin
keep using old zlibs until they are recompiled with the newer version
Change 2948737 on 2016/04/19 by Nick.Shin
build warning fix
Change 2949334 on 2016/04/20 by Nick.Shin
fix library path
for some reason, NetworkFileSystem and HttpNetworkReplayStreaming on Mac platform needs full path - even though lib path was set...
Change 2951556 on 2016/04/21 by Nick.Shin
static libs double checked
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2951559 on 2016/04/21 by Nick.Shin
static libs double checked
forgot these files - they were in another changelist
#jira UE-29674 - Editor fails to open in Dev-Platform
Change 2952411 on 2016/04/22 by Nick.Shin
add win32 build targets for zlib openssl libcurl libwebsockets
part 1 of 2: these are the C# build scripts
Change 2970016 on 2016/05/07 by Nick.Shin
undo all of the following upgrades:
- zlib
- openssl
- libcurl
- libwebsockets
and reset webrtc
#jira UE-30298 - Fortnite and Orion crash on login
Change 3118163 on 2016/09/08 by Josh.Adams
perm test 2, not a useful file at all
Change 3121142 on 2016/09/12 by Daniel.Lamb
Attempt to fix deterministic cooking issue for particlelodlevel.
Ensure the spawn module has had postload called on it before using.
#test Paragon cook
Change 3121150 on 2016/09/12 by Daniel.Lamb
Added warning logs to help track down issue UE-33453.
Change 3121201 on 2016/09/12 by Keith.Judge
Xbox One - Replicate CL 3114357 from 4.13 branch. ESRAM clear on create fix.
Change 3121302 on 2016/09/12 by Joe.Graf
Fixed up the IMPLEMENT_MODULE macro usage to avoid the link errors
Change 3121379 on 2016/09/12 by Dmitry.Rekman
Linux: only link libraries that export needed symbols (UE-35720).
- Fixes very long startup times of modular builds.
- Includes PR #2778 by slonopotamus.
#jira UE-35720
Change 3121383 on 2016/09/12 by Dmitry.Rekman
Linux: added some missing _API declarations on symbols used externally.
- Compiling editor with -fvisibility=hidden works after this fix (although running still doesn't).
Change 3121456 on 2016/09/12 by Daniel.Lamb
Attempt to fix deterministic cooking issue for particlelodlevel.
Ensure the spawn module has had postload called on it before using.
#test Paragon cook
Change 3122939 on 2016/09/13 by Luke.Thatcher
[PLATFORM] [PS4] [!] Skip orbismemdmp files in the PS4 crash handler web service.
- Writing these files to disk causes orbis-tm.exe to take a file lock on them, which means we can't move the crash directory to the landing zone.
Change 3123040 on 2016/09/13 by Brent.Pease
+ Fix VS compile error by removing ENGINE_API from virtual method decls since ENGINE_API is defined for the entire class now.
Change 3123664 on 2016/09/13 by Nick.Shin
this was originally checked into: release 4.13.1
bringing here to dev-platform
-- original submit comments --
first, safari has a problem with firing off "window resized" events - causing an infinite loop of the window "resizing"
next, retina has "bigger" size calculations going off -- so y-delta checks greater than 2 are done to prevent resize event firing off in an infinite loop
jira UE-35363 - Huge game window when launching onto Safari 9.1.2
Change 3125282 on 2016/09/14 by Michael.Trepka
Fixed iOS and tvOS code indexing in Xcode project
Change 3126812 on 2016/09/15 by Josh.Adams
Merged Wolf support into Dev-Platform (hidden from almost all people still). Non-Wolf-specific changes:
- Added Parse function to JsonObject.cs to be able to parse a string
- Replaced some hacky post-reflection-capture functions with RHISubmitCommandsAndFlushGPU()
- Split PLATFORM_HAS_BSD_SOCKET_FEATURE_GETADDRINFO off from PLATFORM_HAS_BSD_SOCKET_FEATURE_GETHOSTNAME
- Converted the PS4MallocCrash class into a generic one (that Wolf is now also using)
- Added AddGenericToInQueueOnlineThread(), useful running a delegate on Online thread instead of game thread
- Refactored the GL shader compiler to allow Wolf to modify behavior without a lot of if WOLF checks everywhere
- Added ability in the cross compiler to convert the global uniform arrays into named uniform buffer objects
- Added ability for GL shader compiler to output original resources names ("VertColor" instead of "u_v[3]" or whatever)
- Added "FORCELODGROUP" console command that will apply a StaticMesh LODGroup to selected meshes in the editor. This can batch-Simplygonify all meshes in a level. Should maybe become an editor tool.
- Added ability for arrays of structs to specify a property to be the key. So, with LODGroups, the Name key inside the struct can be the unique key, so when you have multiple .ini files in the hierarchy overriding the same LODGroup by name, it will repalce the first with the second, instead of adding two entries with the same name. Set by @ArrayName=KeyPropertyName. Per Object Config sections need a little different handling, which uses * (see BaseDeviceProfiles.ini)
- Added ability to change DeviceProfiles at runtime. Use "dp.override <name>". If you do it again to another one, it will reset the settings to what they were originally, before applying the second new DP. This is because the second DP may not set all settings the first one did, but we want to undo the first settings that the second doesn't contain.
- Added FRHICommandListImmediate::IsStalled() - returns true while FRHICommandListImmediate::StallRHIThread is happening
- Changed runtime GetFeatureLevelMaxTextureSamplers() calls to the new GetMaxTextureSamplers() which can now be handled by the platform. Renamed GetFeatureLevelMaxTextureSamplers to GetExpectedFeatureLevelMaxTextureSamplers() (only used by the shader editor) to guess at what maybe the samplers count will be - but it's not guaranteed correct.
- Renamed a UT copy of a global function to not linker-conflict
- Changed the OOMBackupMemoryPool to allow each platform to set how much memory to allocate. See FPlatformMemory::GetBackMemoryPoolSize(). Defaults to 0, which was the previous behavior with the now removed FPlatformMemory::SupportBackupMemoryPool(), which was only true in Windows and PS4.
- Added an OOM delegate so other systems can get a callback after OOM occurs (after deleting the backup memory pool if it exists)
- Changed SetQualityLevels() (in Scalability.cpp) to no longer change the SetBy priority when setting CVars, and now keeps the SetBy the same as it was. Helps with conflicts between game settings and device profiles. See SetWithCurrentPriority()
- Added GetRenderingThreadPriority to FPlatformAffinity to allow a platform override priority. Not sure about this one, so may remove it, or maybe add more priorities for all the threads?
- Added a new file into the ini hierarchy to begin fixing the Engine/Base -> Project/Default -> Engine/Platform -> Project/Platform mess. We now have Engine/Base -> Engine/BasePlatform -> Project/Default -> Engine/Platform -> Project/Platform. However, Engine/Platform will soonm be deprecated as we move things over to Engine/BasePlatform, that are safe to move.
Change 3126842 on 2016/09/15 by Michael.Trepka
Make SAssertPicker's search box the default widget to focus on activate so that it doesn't get deactivated on Mac, where we get the window activation event in a tick after SAssertPicker creation.
Change 3126956 on 2016/09/15 by Michael.Trepka
Added support for compiling Vulkan shaders for Android on Mac
Change 3127206 on 2016/09/15 by Michael.Trepka
PR #2604: Remove some warnings. (Contributed by reapazor)
Change 3127324 on 2016/09/15 by Michael.Trepka
Allow third party dylibs on Mac to be loaded from plugin subfolders
Change 3127924 on 2016/09/16 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3128369 on 2016/09/16 by Nick.Shin
zlib 1.2.8
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128377 on 2016/09/16 by Nick.Shin
openssl 1_0_2h
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128383 on 2016/09/16 by Nick.Shin
libcurl 7_48_0
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128384 on 2016/09/16 by Nick.Shin
libwebsockets 1.7.4
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128464 on 2016/09/16 by Nick.Shin
webRTC rev.12643
NOTE: VS2015
- only Win64 is available
- Win32 versions is crashing (e.g. EpicGamesLauncher) at the moment
NOTE: VS2013
- not tested (i'm working on getting a VS2013 pro license) - so not checking in with this changelist
- also, VS2013 is no longer supported by webRTC build scripts, so it will be old anyways
FUTURE NOTE:
- will continue to try to get VS2015 Win32 functional
- and am working on trying to get VS2013 tested
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128500 on 2016/09/16 by Nick.Shin
zlib 1.2.8 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128504 on 2016/09/16 by Nick.Shin
openssl 1_0_2h - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128506 on 2016/09/16 by Nick.Shin
libcurl 7_48_0 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128508 on 2016/09/16 by Nick.Shin
libwebsockets 1.7.4 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128513 on 2016/09/16 by Nick.Shin
webRTC rev.12643 - OSX
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128602 on 2016/09/16 by Nick.Shin
webRTC rev.9862 - Win64 VS2013
NOTE:
- not tested (i'm working on getting a VS2013 pro license)
- checking in for testing purposes
WARNING:
- VS2013 is no longer supported by webRTC latest
headers and lib updates
part of [ zlib openssl libcurl libwebsockets webrtc ] updates
Change 3128605 on 2016/09/16 by Nick.Shin
re-enabling updated ThirdParySoftware libs:
- zlib (v.1.2.8)
- openssl (1.0.2h)
- libcurl (7_48_0)
- libwebsocket (v.1.7.4)
- webRTC (rev.12643)
to the codereviewers, in my attempt to ensure the older libs are still used for console, mobile and linux -- please refer to this checkin if i broke the build...
Change 3128651 on 2016/09/16 by Nick.Shin
fix Win32 build error from CL: #3128605
Change 3128704 on 2016/09/16 by Nick.Shin
fix Win32 build error from CL: #3128605 - this time actually compiling it...
Change 3128825 on 2016/09/16 by Dmitry.Rekman
Linux: proper fix for too slow startup times (UE-35967).
- Pull request #2793 by slonopotamus.
- Now without stripping dependencies on libraries specified before.
- Contains a work around for ld bug <2.25.
Change 3128972 on 2016/09/16 by Nick.Shin
fix to local build error.
Change 3129283 on 2016/09/16 by Brent.Pease
+ Add Android local notification support based on existing system used for iOS
+ Initial API has been added for cancelling local notifications but the actual platform implementation will be done in the next release
Change 3129494 on 2016/09/17 by Nick.Shin
fix CIS build errors
Change 3129503 on 2016/09/17 by Dmitry.Rekman
Fix Linux build (case sensitivity issue).
Change 3129514 on 2016/09/17 by Nick.Shin
fix CIS build errors for consoles - missing zlib include path
special thanks to Dmitry.Rekman for pointing me in the right direction
Change 3129647 on 2016/09/17 by Dmitry.Rekman
Linux: fix non-unity build.
Change 3131043 on 2016/09/19 by Nick.Shin
archiving build instructions/steps when building:
- zlib (v.1.2.8)
win: #3128369
osx: #3128500
- openssl (1.0.2h)
win: #3128377
osx: #3128504
- libcurl (7_48_0)
win: #3128383
osx: #3128506
- libwebsocket (v.1.7.4)
win: #3128384
osx: #3128508
- webRTC
win: #3128464 (rev.12643 for vs2015) + 3128602 (rev:9862 for vs2013) -- NOTE: win32 is WiP
osx: #3128513
Change 3132801 on 2016/09/20 by Dmitry.Rekman
Linux: support specifying default OpenGL version via configs (UE-34777).
- The first targeted RHI is going to be used.
Change 3132905 on 2016/09/20 by Josh.Adams
- Fixed up some paths with the WolfPlat rename
Change 3133148 on 2016/09/20 by Josh.Adams
- Only show UT EULA if PLATFORM_DESKTOP
Change 3133152 on 2016/09/20 by Josh.Adams
- Beginning support for applets. Disabled unless you have a special SDK with applet support.
Change 3133169 on 2016/09/20 by Josh.Adams
- Fixed issue with Wolf access but no SDK installed
Change 3133344 on 2016/09/20 by Daniel.Lamb
Fixed issue with Iterative cooking not detecting changes to ini files which are loaded using LoadLocalFile.
Added new flag to limit number of concurrent shader compiles.
#test Cook QAGame, Cook Paragon
Change 3133345 on 2016/09/20 by Daniel.Lamb
FRedirectCollector collects string asset references all the time when running the editor.
#test Cook paragon cook QAGame.
Change 3133852 on 2016/09/21 by Luke.Thatcher
[PLATFORM] [PS4] [^] Performing merge between 3.508.201 LCUE files in CarefullyRedist and Dev-Platform to populate integration history. No files have actually changed in this CL, only Perforce metadata is updated.
Change 3133875 on 2016/09/21 by Luke.Thatcher
[PLATFORM] [PS4] [^] Performing merge between 3.508.201 LCUE files in CarefullyRedist and Dev-Platform to populate integration history. No files have actually changed in this CL, only Perforce metadata is updated. (Attempt 2)
Change 3134403 on 2016/09/21 by Jonathan.Fitzpatrick
Per PS4 documentation, app_type requires the alternate spelling of 'upgradeable', 'upgradable'.
Change 3134544 on 2016/09/21 by Josh.Adams
- Reduced UT textures for Wolf
Change 3134915 on 2016/09/21 by Jonathan.Fitzpatrick
FPS4Time::SystemTime now calculates the local machine time, instead of UTC.
#jira UE-35170
Change 3135036 on 2016/09/21 by Michael.Trepka
Quit the UE4EditorServices app when quitting the Launcher if it was the launcher that spawned the services process
Change 3135142 on 2016/09/21 by Jonathan.Fitzpatrick
GetBackMemoryPoolSize returned bool on PS4 by accident, should be uint32
Change 3135292 on 2016/09/21 by Jeff.Campeau
Change include order to favor the XDK edition specific headers where available.
Change 3136414 on 2016/09/22 by Josh.Adams
- Fixed a checkf() that had the case reversed
#jira ue-36311
Change 3137082 on 2016/09/22 by Dmitry.Rekman
Added support for Linux installed builds to 4.14
Change 3137220 on 2016/09/22 by Dmitry.Rekman
Linux: do not rebuild hlslcc on each setup.
- Now that hlslcc is set to use bundled libc++ there should be no STL binary compatibility conflicts between the engine and hlslcc binary.
Change 3137227 on 2016/09/22 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3137259 on 2016/09/22 by Dmitry.Rekman
Linux installed build: fix CIS (missed one .csproj)
Change 3137290 on 2016/09/22 by Dmitry.Rekman
Linux installed builds: fix for the resulting directory.
Change 3137291 on 2016/09/22 by Chris.Babcock
Restore texture filtering mode properly when movie played on Android
#jira UE-36342
#ue4
#android
Change 3137376 on 2016/09/22 by Dmitry.Rekman
Linux: re-enabled crash handler stack smash protection.
- Race condition in FRunnableThreadPThread has been previously fixed.
Change 3138498 on 2016/09/23 by Dmitry.Rekman
Linux: add missed package for installed builds.
- mono-devel package for resgen2.
Change 3138523 on 2016/09/23 by Dmitry.Rekman
Linux: Update hlslcc now that we're not rebuilding it each time.
Change 3138658 on 2016/09/23 by Josh.Adams
- Moved UT's Social Plugin into NotForLicensees
Change 3139042 on 2016/09/23 by Dmitry.Rekman
Linux: more robust check of installed packages.
- Also added mono-devel to the list of packages installed on 14.04.
Change 3139674 on 2016/09/26 by Dmitry.Rekman
Fix crash when editing widget blueprints (UE-35185).
- Caused by name collision due to copy/pasted code; aliased classes diverged and this resulted in all kinds of weird memory stomping.
- Renamed the class and also applied the same workaround (removing static) to prevent likely crashes on exit as happened with the original class (see UE-30795).
Change 3140203 on 2016/09/26 by Josh.Adams
- Wolf Fix for SHIPPING
Change 3140206 on 2016/09/26 by Josh.Adams
- NEX work, still in progress
Change 3140276 on 2016/09/26 by Josh.Adams
- Fixed Wolf compile error
Change 3140485 on 2016/09/26 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3140570 on 2016/09/26 by Dmitry.Rekman
SDL2: Delete obsolete files.
- We now have local changes to SDL2, so this tarball is no longer accurate and just takes unnecessary space.
Change 3140577 on 2016/09/26 by Dmitry.Rekman
Fix CudaTest monolithic build.
- Not the best fix, the better fix is to build against bundled libc++.
Change 3141184 on 2016/09/27 by Keith.Judge
Add FXboxOneApplication::GetXboxOneApplication to fix a save/load game assert.
#jira UE-35973
Change 3141623 on 2016/09/27 by Chris.Babcock
Support hiding virtual keyboard on Android
#jira UE-34201
#ue4
#android
Change 3141887 on 2016/09/27 by Joe.Graf
Added support for additional plugin directories that are specified by the .uproject file
New plugin wizard adds to the additional plugin directories if the user specifies a directory outside of Engine/Plugins or Game/Plugins
Change 3141916 on 2016/09/27 by Josh.Adams
- Worked around compile issues (at least with Wolf UT). This is well documented in a Jira (UE-29925)
Change 3141926 on 2016/09/27 by Josh.Adams
- Support for skipping Wolf user selector (-nologinui)
Change 3141938 on 2016/09/27 by Chris.Babcock
Allow Android media player to seek past 999ms (contributed by rcywongaa)
#jira UE-36453
#PR #2797
#ue4
#android
Change 3142207 on 2016/09/27 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3142219 on 2016/09/27 by Josh.Adams
- Wolf PhysX 3.4 libs and includes
Change 3142220 on 2016/09/27 by Josh.Adams
- File that had to be fixed up after main merge (missed adding it to the huge integrate CL)
Change 3142314 on 2016/09/27 by Chase.McAllister
#jira UE-35011 fixes to some assets to remove redundancies/output log spam
Change 3142510 on 2016/09/27 by Daniel.Lamb
Fixed up resave lightmaps commandlet so that world transforms don't get applied twice.
#jira UE-35942
Change 3142650 on 2016/09/27 by Chris.Babcock
Android support for Linux by yaakuro
- requires CodeWorks for Android Linux installed and OpenJDK 1.8
- need to set Android SDK paths manually in Project Settings
#jira UE-32752
#jira UE-32753
#PR #2564
#PR #2565
#ue4
#android
#linux
Change 3142802 on 2016/09/27 by Dmitry.Rekman
Upgrade to SDL 2.0.5-ish (still technically 2.0.4).
- Upstream revision 10374:dccf51aee79b.
- Merged all our changes hopefully.
Change 3143075 on 2016/09/28 by Luke.Thatcher
[RENDERING] [~] Add check to FBatchedElements::AddSprite to catch null textures. If the texture is null here, we will crash later in the RHI. At least now we'll get the callstack of the code adding the null textured sprite, since I don't have a repro.
#jira UE-33077
Change 3143219 on 2016/09/28 by Daniel.Lamb
Added new is compiling function which tells you if it's really compiling instead of lying.
If def out additional logging for debugging shader compilation issue for 4.14 release.
Change 3143428 on 2016/09/28 by Luke.Thatcher
[PLATFORM] [PS4] [+] Use PS4 SDK 4.008.061
Change 3143488 on 2016/09/28 by Daniel.Lamb
Changed defaults for skip cooking editor content to true.
Change 3143526 on 2016/09/28 by Daniel.Lamb
Increased the concurrent shader compile limit while in the cooker.
#test Cook paragon
Change 3143874 on 2016/09/28 by Chris.Babcock
Read Android environment variables from .bashrc on Linux
#jira UE-36565
#ue4
#android
#linux
Change 3143911 on 2016/09/28 by Dmitry.Rekman
Fix SDL EGL API binding (UE-18979).
- Contains PR #1398 by x414e54.
- Also fixes offscreen backend that needed to provide a global mouse state after the SDL upgrade.
Change 3143929 on 2016/09/28 by Daniel.Lamb
Removed some more temporary logging.
#test Cook paragon
Change 3143959 on 2016/09/28 by Jeff.Campeau
Media Player for Xbox One
Change 3143997 on 2016/09/28 by Dmitry.Rekman
Linux: faster linking in Debug.
- Do not apply --as-needed to Debug build since taking a hit of several tens of seconds on startup is better than linking for ~4 more minutes when iterating.
Change 3144004 on 2016/09/28 by Dmitry.Rekman
Linux: make SCW dump core on crash in debug builds.
- If the editor (not SCW itself) is built in Debug, make SCW dump cores if they ever crash. This makes it debug easier (at the risk of running of disk space).
Change 3144007 on 2016/09/28 by Dmitry.Rekman
Linux: Allow equals character in command line parameter value (UE-26406).
- PR #2019 by bozzaro.
- Allows passing parameters like -Switch=Key=Value.
Change 3144042 on 2016/09/28 by Jeff.Campeau
Add tag for DX12 support being experimental in target settings.
#jira UE-36150
Change 3144068 on 2016/09/28 by Dmitry.Rekman
Linux: enable using xgConsole in UAT (UE-28096).
- PR #2144 by bozzaro.
- Picks correct xgConsole binary.
- Allegedly fixes crash in CombineXGEItemFile on mono.
Change 3144120 on 2016/09/28 by Michael.Trepka
Copying //Tasks/UE4/Dev-HighDPI/... to //UE4/Dev-Platform/...
Change 3144172 on 2016/09/28 by Chris.Babcock
Add libpng 1.5.27 for Android
#jira UE-36573
#ue4
#android
Change 3144318 on 2016/09/28 by Chris.Babcock
Correct logic for checking .bashrc on Linux
#ue4
#android
Change 3144331 on 2016/09/28 by Dmitry.Rekman
Linux: repair ARM server builds.
- Also: print info about C++ library being used and allow the override via environment variable UE4_LINUX_USE_LIBCXX (either 0 or 1).
Change 3144354 on 2016/09/28 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
this is intermediate, not fully working
Change 3144368 on 2016/09/28 by Josh.Adams
- Moved the new Social files into NFL
Change 3144395 on 2016/09/28 by Chris.Babcock
Add missing functions for AndroidWebBrowserWindow
#ue4
#android
Change 3144417 on 2016/09/28 by Josh.Adams
- Probable fix for FWebBrowserWindow missing virtuals
Change 3144438 on 2016/09/28 by Jeff.Campeau
XDK updated to 160802
Change 3144569 on 2016/09/29 by Dmitry.Rekman
Linux: allow a selectable clock source (UE-36564).
- The engine will now select the best performing clock on start instead of hard-coding CLOCK_REALTIME. This will happen as part of global initialization before main() to prevent clock skew.
- Also fixes a problem of the engine not being able to start on Windows 10 since previously hard-coded clock id was not supported there.
#tests Compiled and ran a few targets (including non-monolithic). Tried bogus clock sources. Haven't actually tried on Win10 (don't have a machine atm).
Change 3145108 on 2016/09/29 by Joe.Graf
Fixed cases where path relative external plugin paths would generate the wrong path when running Unreal Header Tool (and probably other tools)
Change 3145245 on 2016/09/29 by Joe.Graf
#wolf
Checking in removal of plugin use on Win64 per Josh's request
Change 3145514 on 2016/09/29 by Will.Fissler
Updated Mac Info.plist files to disable high DPI on macOS 10.12
Change 3145538 on 2016/09/29 by Josh.Adams
- Worked around a physics task graph issue with using the new lock free stuff on Wolf, joining PS4 and XboxOne. Wolf was crashing on some boots.
Change 3145540 on 2016/09/29 by Josh.Adams
- Fix for checking some Wolf dev tool installation existence
- Fix for various Wolf build issues
- Fix for Wolf devices not showing up in Launch on
Change 3145542 on 2016/09/29 by Josh.Adams
- Pulled over Wolf changes from Wolf branch into Dev-Platform
Change 3145572 on 2016/09/29 by Josh.Adams
- Cleaned up Wolf SDK error logs which really messed up GenProjectFiles for some class of people.
#jira UE-36591
Change 3145769 on 2016/09/29 by Chris.Babcock
Remove duplicate platforms from deploy list in UFE
#jira UE-36636
#ue4
Change 3146061 on 2016/09/29 by Chris.Babcock
Linux: be less spammy in log when launching external procs
#jira UE-36638
#ue4
#linux
Change 3146208 on 2016/09/29 by Dmitry.Rekman
Linux: fix PhysX crash (UE-36613).
- PX_RESTRICT was unwarrantedly applied to memMove, allowing clang to replace the memmove() call to memcpy() at -O2 and above.
- This caused PxArray::remove() to duplicate the elements of its array (in POD case) and this opened doors to all kinds of fun.
#jira UE-36613
Change 3146476 on 2016/09/30 by Josh.Adams
- Moved a UBT log that could pollute QA logs with Wolf secrets to Verbose
Change 3146554 on 2016/09/30 by Josh.Adams
- Removed another wolf secret log
Change 3146626 on 2016/09/30 by Josh.Adams
Merging //UE4/Dev-Main to Dev-Platform (//UE4/Dev-Platform)
Change 3146712 on 2016/09/30 by Josh.Adams
- Fixed case for building Android on Linux
#jira #UE-36652
Change 3146844 on 2016/09/30 by Josh.Adams
- Removed ES2 shader compiling from TVOS, and force Metal compiling
#jira UE-36306
Change 3146865 on 2016/09/30 by Daniel.Lamb
Removed temp logging for materials
#test Launch on paragon
Change 3146874 on 2016/09/30 by Dmitry.Rekman
Linux: add rpath for libTextureConverter.so (UE-36620).
Change 3147030 on 2016/09/30 by Josh.Adams
- Version check workaround for IOS9.3/TVOS9.2 defining __IPHONE_10_0 which breaks our IOS10 code checks
#jira UE-36623
Change 3147151 on 2016/09/30 by Josh.Adams
- Fixed zlib.build.cs for XboxOne, which came in from another branch without an include path, yet somehow main is compiling?
Change 3147621 on 2016/09/30 by Michael.Trepka
Fix for setting up RPATHs for third party dylibs for packaged code-based games on Mac
Change 3147712 on 2016/09/30 by Josh.Adams
- Fixed metal crash StrategyGame crash. Recent code was checking IsES2Platform for HDR decoding in scene capture, and Metal hasn't been IsES2 since may. Changed to IsMobilePlatform.
#jira UE-36225
Change 3147725 on 2016/09/30 by Josh.Adams
- Fixed yet another Wolf log for people with Wolf access but no SDK
[CL 3147801 by Josh Adams in Main branch]
2016-09-30 21:21:09 -04:00
FDisplayMetrics DisplayMetrics ;
FSlateApplication : : Get ( ) . GetDisplayMetrics ( DisplayMetrics ) ;
const float DPIScaleFactor = FPlatformMisc : : GetDPIScaleFactorAtPoint ( DisplayMetrics . PrimaryDisplayWorkAreaRect . Left , DisplayMetrics . PrimaryDisplayWorkAreaRect . Top ) ;
DefaultWindowLocation . WindowSize = GetProjectBrowserWindowSize ( ) * DPIScaleFactor ;
2015-04-14 09:07:48 -04:00
DefaultWindowLocation . ScreenPosition = DefaultWindowLocation . GetCenteredScreenPosition ( ) ;
2014-03-14 14:13:41 -04:00
bIsUserSizable = true ;
bSupportsMaximize = true ;
bSupportsMinimize = true ;
// When opening the project dialog, show "Project Browser" in the window title
WindowTitle = LOCTEXT ( " ProjectBrowserDialogTitle " , " Unreal Project Browser " ) ;
}
else
{
2016-03-11 17:29:00 -05:00
if ( bStartImmersive )
{
// Start maximized if we are in immersive mode
DefaultWindowLocation . InitiallyMaximized = true ;
}
2014-03-14 14:13:41 -04:00
const bool bIncludeGameName = true ;
WindowTitle = GetApplicationTitle ( bIncludeGameName ) ;
}
TSharedRef < SWindow > RootWindow = SNew ( SWindow )
. AutoCenter ( EAutoCenter : : None )
. Title ( WindowTitle )
. IsInitiallyMaximized ( DefaultWindowLocation . InitiallyMaximized )
. ScreenPosition ( DefaultWindowLocation . ScreenPosition )
. ClientSize ( DefaultWindowLocation . WindowSize )
. CreateTitleBar ( ! bEmbedTitleAreaContent )
. SizingRule ( bIsUserSizable ? ESizingRule : : UserSized : ESizingRule : : FixedSize )
. SupportsMaximize ( bSupportsMaximize )
. SupportsMinimize ( bSupportsMinimize ) ;
const bool bShowRootWindowImmediately = false ;
FSlateApplication : : Get ( ) . AddWindow ( RootWindow , bShowRootWindowImmediately ) ;
2015-12-10 16:56:55 -05:00
2014-03-14 14:13:41 -04:00
FGlobalTabmanager : : Get ( ) - > SetRootWindow ( RootWindow ) ;
2014-11-03 11:31:09 -05:00
FSlateNotificationManager : : Get ( ) . SetRootWindow ( RootWindow ) ;
2014-03-14 14:13:41 -04:00
TSharedPtr < SWidget > MainFrameContent ;
bool bLevelEditorIsMainTab = false ;
if ( ShouldShowProjectDialogAtStartup ( ) )
{
MainFrameContent = FGameProjectGenerationModule : : Get ( ) . CreateGameProjectDialog ( /*bAllowProjectOpening=*/ true , /*bAllowProjectCreate=*/ true ) ;
}
else
{
// Get desktop metrics
FDisplayMetrics DisplayMetrics ;
FSlateApplication : : Get ( ) . GetDisplayMetrics ( DisplayMetrics ) ;
// Setup a position and size for the main frame window that's centered in the desktop work area
const float CenterScale = 0.65f ;
const FVector2D DisplaySize (
DisplayMetrics . PrimaryDisplayWorkAreaRect . Right - DisplayMetrics . PrimaryDisplayWorkAreaRect . Left ,
DisplayMetrics . PrimaryDisplayWorkAreaRect . Bottom - DisplayMetrics . PrimaryDisplayWorkAreaRect . Top ) ;
const FVector2D WindowSize = CenterScale * DisplaySize ;
2014-05-15 17:34:02 -04:00
TSharedRef < FTabManager : : FLayout > LoadedLayout = FLayoutSaveRestore : : LoadFromConfig ( GEditorLayoutIni ,
2014-03-14 14:13:41 -04:00
// We persist the positioning of the level editor and the content browser.
// The asset editors currently do not get saved.
2014-09-17 15:22:14 -04:00
FTabManager : : NewLayout ( " UnrealEd_Layout_v1.4 " )
2014-03-14 14:13:41 -04:00
- > AddArea
(
2014-09-17 15:22:14 -04:00
// level editor window
2014-03-14 14:13:41 -04:00
FTabManager : : NewPrimaryArea ( )
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 2.0f )
- > AddTab ( " LevelEditor " , ETabState : : OpenedTab )
2014-07-02 07:32:53 -04:00
- > AddTab ( " DockedToolkit " , ETabState : : ClosedTab )
2014-03-14 14:13:41 -04:00
)
)
- > AddArea
(
2014-09-17 15:22:14 -04:00
// content browser window
2014-03-14 14:13:41 -04:00
FTabManager : : NewArea ( WindowSize )
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 1.0f )
- > AddTab ( " ContentBrowser1Tab " , ETabState : : ClosedTab )
)
)
- > AddArea
(
2014-09-17 15:22:14 -04:00
// toolkits window
2014-03-14 14:13:41 -04:00
FTabManager : : NewArea ( WindowSize )
2014-09-02 10:15:49 -04:00
- > SetOrientation ( Orient_Vertical )
2014-03-14 14:13:41 -04:00
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 1.0f )
- > AddTab ( " StandaloneToolkit " , ETabState : : ClosedTab )
)
2014-09-02 10:15:49 -04:00
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 0.35f )
- > AddTab ( " MergeTool " , ETabState : : ClosedTab )
)
2014-03-14 14:13:41 -04:00
)
2014-09-17 15:22:14 -04:00
- > AddArea
(
// settings window
FTabManager : : NewArea ( WindowSize )
- > Split
(
FTabManager : : NewStack ( )
- > SetSizeCoefficient ( 1.0f )
- > AddTab ( " EditorSettings " , ETabState : : ClosedTab )
- > AddTab ( " ProjectSettings " , ETabState : : ClosedTab )
- > AddTab ( " PluginsEditor " , ETabState : : ClosedTab )
)
)
2014-03-14 14:13:41 -04:00
) ;
MainFrameContent = FGlobalTabmanager : : Get ( ) - > RestoreFrom ( LoadedLayout , RootWindow , bEmbedTitleAreaContent ) ;
bLevelEditorIsMainTab = true ;
}
RootWindow - > SetContent ( MainFrameContent . ToSharedRef ( ) ) ;
TSharedPtr < SDockTab > MainTab ;
if ( bLevelEditorIsMainTab )
{
MainTab = FGlobalTabmanager : : Get ( ) - > InvokeTab ( FTabId ( " LevelEditor " ) ) ;
// make sure we only allow the message log to be shown when we have a level editor main tab
FMessageLogModule & MessageLogModule = FModuleManager : : LoadModuleChecked < FMessageLogModule > ( TEXT ( " MessageLog " ) ) ;
MessageLogModule . EnableMessageLogDisplay ( true ) ;
}
// Initialize the main frame window
MainFrameHandler - > OnMainFrameGenerated ( MainTab , RootWindow ) ;
// Show the window!
2016-03-11 17:29:00 -05:00
MainFrameHandler - > ShowMainFrameWindow ( RootWindow , bStartImmersive , bStartPIE ) ;
2014-03-14 14:13:41 -04:00
MRUFavoritesList = new FMainMRUFavoritesList ;
MRUFavoritesList - > ReadFromINI ( ) ;
MainFrameCreationFinishedEvent . Broadcast ( RootWindow , ShouldShowProjectDialogAtStartup ( ) ) ;
}
}
TSharedRef < SWidget > FMainFrameModule : : MakeMainMenu ( const TSharedPtr < FTabManager > & TabManager , const TSharedRef < FExtender > Extender ) const
{
return FMainMenu : : MakeMainMenu ( TabManager , Extender ) ;
}
TSharedRef < SWidget > FMainFrameModule : : MakeMainTabMenu ( const TSharedPtr < FTabManager > & TabManager , const TSharedRef < FExtender > Extender ) const
{
return FMainMenu : : MakeMainTabMenu ( TabManager , Extender ) ;
}
BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION
TSharedRef < SWidget > FMainFrameModule : : MakeDeveloperTools ( ) const
{
struct Local
{
2015-01-07 09:52:40 -05:00
static FText GetFrameRateAsString ( )
2014-03-14 14:13:41 -04:00
{
// Clamp to avoid huge averages at startup or after hitches
const float AverageFPS = 1.0f / FSlateApplication : : Get ( ) . GetAverageDeltaTime ( ) ;
const float ClampedFPS = ( AverageFPS < 0.0f | | AverageFPS > 4000.0f ) ? 0.0f : AverageFPS ;
2015-01-07 09:52:40 -05:00
static const FNumberFormattingOptions FormatOptions = FNumberFormattingOptions ( )
. SetMinimumFractionalDigits ( 1 )
. SetMaximumFractionalDigits ( 1 ) ;
return FText : : AsNumber ( ClampedFPS , & FormatOptions ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-07 09:52:40 -05:00
static FText GetFrameTimeAsString ( )
2014-03-14 14:13:41 -04:00
{
// Clamp to avoid huge averages at startup or after hitches
const float AverageMS = FSlateApplication : : Get ( ) . GetAverageDeltaTime ( ) * 1000.0f ;
const float ClampedMS = ( AverageMS < 0.0f | | AverageMS > 4000.0f ) ? 0.0f : AverageMS ;
2015-01-07 09:52:40 -05:00
static const FNumberFormattingOptions FormatOptions = FNumberFormattingOptions ( )
. SetMinimumFractionalDigits ( 1 )
. SetMaximumFractionalDigits ( 1 ) ;
static const FText FrameTimeFmt = FText : : FromString ( TEXT ( " {0} ms " ) ) ;
return FText : : Format ( FrameTimeFmt , FText : : AsNumber ( ClampedMS , & FormatOptions ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-07 09:52:40 -05:00
static FText GetMemoryAsString ( )
2014-03-14 14:13:41 -04:00
{
// Only refresh process memory allocated after every so often, to reduce fixed frame time overhead
static SIZE_T StaticLastTotalAllocated = 0 ;
static int32 QueriesUntilUpdate = 1 ;
if ( - - QueriesUntilUpdate < = 0 )
{
// Query OS for process memory used
FPlatformMemoryStats MemoryStats = FPlatformMemory : : GetStats ( ) ;
2014-04-23 16:37:37 -04:00
StaticLastTotalAllocated = MemoryStats . UsedPhysical ;
2014-03-14 14:13:41 -04:00
// Wait 60 queries until we refresh memory again
QueriesUntilUpdate = 60 ;
}
2015-01-07 09:52:40 -05:00
static const FNumberFormattingOptions FormatOptions = FNumberFormattingOptions ( )
. SetMinimumFractionalDigits ( 2 )
. SetMaximumFractionalDigits ( 2 ) ;
static const FText MemorySizeFmt = FText : : FromString ( TEXT ( " {0} mb " ) ) ;
return FText : : Format ( MemorySizeFmt , FText : : AsNumber ( ( float ) StaticLastTotalAllocated / ( 1024.0f * 1024.0f ) , & FormatOptions ) ) ;
2014-03-14 14:13:41 -04:00
}
2015-01-07 09:52:40 -05:00
static FText GetUObjectCountAsString ( )
2014-03-14 14:13:41 -04:00
{
2015-09-10 11:58:41 -04:00
return FText : : AsNumber ( GUObjectArray . GetObjectArrayNumMinusAvailable ( ) ) ;
2014-03-14 14:13:41 -04:00
}
static void OpenVideo ( FString SourceFilePath )
{
FPlatformProcess : : ExploreFolder ( * ( FPaths : : GetPath ( SourceFilePath ) ) ) ;
}
/** Clicked the SaveVideo button available */
static FReply OnClickSaveVideo ( )
{
// Default the result to fail it will be set to SNotificationItem::CS_Success if saved ok
SNotificationItem : : ECompletionState SaveResultState = SNotificationItem : : CS_Fail ;
// The string we will use to tell the user the result of the save
FText VideoSaveResultText ;
FString HyperLinkText ;
// Capture unavailable or inactive error string
ICrashTrackerModule * CrashTracker = FModuleManager : : LoadModulePtr < ICrashTrackerModule > ( " CrashTracker " ) ;
if ( CrashTracker )
{
FString VideoSaveName ;
EWriteUserCaptureVideoError : : Type WriteResult = CrashTracker - > WriteUserVideoNow ( VideoSaveName ) ;
// If this returns None the capture was successful, otherwise report the error
if ( WriteResult = = EWriteUserCaptureVideoError : : None )
{
// Setup the string with the path and name of the file
VideoSaveResultText = LOCTEXT ( " VideoSavedAs " , " Video capture saved as " ) ;
HyperLinkText = FPaths : : ConvertRelativePathToFull ( VideoSaveName ) ;
// Flag success
SaveResultState = SNotificationItem : : CS_Success ;
}
else
{
// Write returned an error - differentiate between directory creation failure and the capture unavailable
if ( WriteResult = = EWriteUserCaptureVideoError : : FailedToCreateDirectory )
{
FFormatNamedArguments Args ;
Args . Add ( TEXT ( " VideoCaptureDirectory " ) , FText : : FromString ( FPaths : : ConvertRelativePathToFull ( FPaths : : VideoCaptureDir ( ) ) ) ) ;
VideoSaveResultText = LOCTEXT ( " VideoSavedFailedFailedToCreateDir " , " Video capture save failed - Failed to create directory \n {VideoCaptureDirectory} " ) ;
}
else
{
VideoSaveResultText = LOCTEXT ( " VideoSavedFailedNotRunning " , " Video capture save failed - Capture not active or unavailable " ) ;
}
}
}
else
{
// This shouldn't happen as the button is hidden when there is no crash tracker
VideoSaveResultText = LOCTEXT ( " VideoSavedFailedNoTracker " , " Video capture failed - CrashTracker inactive " ) ;
}
// Inform the user of the result of the operation
FNotificationInfo Info ( VideoSaveResultText ) ;
Info . ExpireDuration = 5.0f ;
2014-08-20 13:58:31 -04:00
Info . FadeOutDuration = 0.5f ;
2014-03-14 14:13:41 -04:00
Info . bUseSuccessFailIcons = false ;
Info . bUseLargeFont = false ;
if ( HyperLinkText ! = " " )
{
Info . Hyperlink = FSimpleDelegate : : CreateStatic ( & Local : : OpenVideo , HyperLinkText ) ;
Info . HyperlinkText = FText : : FromString ( HyperLinkText ) ;
}
TWeakPtr < SNotificationItem > SaveMessagePtr ;
SaveMessagePtr = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
SaveMessagePtr . Pin ( ) - > SetCompletionState ( SaveResultState ) ;
return FReply : : Handled ( ) ;
}
/** @return Returns true if frame rate and memory should be displayed in the UI */
static EVisibility ShouldShowFrameRateAndMemory ( )
{
2015-04-20 10:12:55 -04:00
return GetDefault < UEditorPerProjectUserSettings > ( ) - > bShowFrameRateAndMemory ? EVisibility : : SelfHitTestInvisible : EVisibility : : Collapsed ;
2014-03-14 14:13:41 -04:00
}
} ;
2014-07-17 11:10:03 -04:00
const FSuperSearchModule & SuperSearchModule = FModuleManager : : LoadModuleChecked < FSuperSearchModule > ( TEXT ( " SuperSearch " ) ) ;
2015-11-04 16:14:13 -05:00
2014-03-14 14:13:41 -04:00
// We need the output log module in order to instantiate SConsoleInputBox widgets
2014-07-17 11:10:03 -04:00
const FOutputLogModule & OutputLogModule = FModuleManager : : LoadModuleChecked < FOutputLogModule > ( TEXT ( " OutputLog " ) ) ;
2014-03-14 14:13:41 -04:00
const FSlateFontInfo & SmallFixedFont = FEditorStyle : : GetFontStyle ( TEXT ( " MainFrame.DebugTools.SmallFont " ) ) ;
const FSlateFontInfo & NormalFixedFont = FEditorStyle : : GetFontStyle ( TEXT ( " MainFrame.DebugTools.NormalFont " ) ) ;
const FSlateFontInfo & LabelFont = FEditorStyle : : GetFontStyle ( TEXT ( " MainFrame.DebugTools.LabelFont " ) ) ;
TSharedPtr < SWidget > DeveloperTools ;
TSharedPtr < SEditableTextBox > ExposedEditableTextBox ;
ICrashTrackerModule * CrashTracker = FModuleManager : : LoadModulePtr < ICrashTrackerModule > ( " CrashTracker " ) ;
bool bCrashTrackerVideoAvailable = false ;
if ( CrashTracker )
{
bCrashTrackerVideoAvailable = CrashTracker - > IsVideoCaptureAvailable ( ) ;
}
TSharedRef < SWidget > FrameRateAndMemoryWidget =
SNew ( SHorizontalBox )
. Visibility_Static ( & Local : : ShouldShowFrameRateAndMemory )
// FPS
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. Padding ( 0.0f , 0.0f , 4.0f , 0.0f )
[
SNew ( SHorizontalBox )
. Visibility ( GIsDemoMode ? EVisibility : : Collapsed : EVisibility : : HitTestInvisible )
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
2015-01-07 09:52:40 -05:00
. Text ( LOCTEXT ( " FrameRateLabel " , " FPS: " ) )
2014-03-14 14:13:41 -04:00
. Font ( LabelFont )
. ColorAndOpacity ( FLinearColor ( 0.3f , 0.3f , 0.3f ) )
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
. Text_Static ( & Local : : GetFrameRateAsString )
. Font ( NormalFixedFont )
. ColorAndOpacity ( FLinearColor ( 0.6f , 0.6f , 0.6f ) )
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
. Padding ( 4.0f , 0.0f , 0.0f , 0.0f )
[
SNew ( STextBlock )
. Text ( LOCTEXT ( " FrameRate/FrameTime " , " / " ) )
. Font ( SmallFixedFont )
. ColorAndOpacity ( FLinearColor ( 0.4f , 0.4f , 0.4f ) )
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
. Padding ( 4.0f , 0.0f , 0.0f , 0.0f )
[
SNew ( STextBlock )
. Text_Static ( & Local : : GetFrameTimeAsString )
. Font ( SmallFixedFont )
. ColorAndOpacity ( FLinearColor ( 0.4f , 0.4f , 0.4f ) )
]
]
// Memory
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. Padding ( 4.0f , 0.0f , 4.0f , 0.0f )
[
SNew ( SHorizontalBox )
. Visibility ( GIsDemoMode ? EVisibility : : Collapsed : EVisibility : : HitTestInvisible )
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
2015-01-07 09:52:40 -05:00
. Text ( LOCTEXT ( " MemoryLabel " , " Mem: " ) )
2014-03-14 14:13:41 -04:00
. Font ( LabelFont )
. ColorAndOpacity ( FLinearColor ( 0.3f , 0.3f , 0.3f ) )
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
. Text_Static ( & Local : : GetMemoryAsString )
. Font ( NormalFixedFont )
. ColorAndOpacity ( FLinearColor ( 0.6f , 0.6f , 0.6f ) )
]
]
// UObject count
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. Padding ( 4.0f , 0.0f , 4.0f , 0.0f )
[
SNew ( SHorizontalBox )
. Visibility ( GIsDemoMode ? EVisibility : : Collapsed : EVisibility : : HitTestInvisible )
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
2015-01-07 09:52:40 -05:00
. Text ( LOCTEXT ( " UObjectCountLabel " , " Objs: " ) )
2014-03-14 14:13:41 -04:00
. Font ( LabelFont )
. ColorAndOpacity ( FLinearColor ( 0.3f , 0.3f , 0.3f ) )
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( STextBlock )
. Text_Static ( & Local : : GetUObjectCountAsString )
. Font ( NormalFixedFont )
. ColorAndOpacity ( FLinearColor ( 0.6f , 0.6f , 0.6f ) )
]
]
;
2014-09-04 10:50:07 -04:00
bool bUseSuperSearch = true ;
2014-07-17 11:10:03 -04:00
2014-03-14 14:13:41 -04:00
// Invisible border, so that we can animate our box panel size
return SNew ( SBorder )
. Visibility ( EVisibility : : SelfHitTestInvisible )
. Padding ( FMargin ( 0.0f , 0.0f , 0.0f , 1.0f ) )
. VAlign ( VAlign_Bottom )
. BorderImage ( FEditorStyle : : GetBrush ( " NoBorder " ) )
[
SNew ( SHorizontalBox )
. Visibility ( EVisibility : : SelfHitTestInvisible )
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. Padding ( 0.0f )
[
FrameRateAndMemoryWidget
]
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
. Padding ( 0.0f )
[
SNew ( SBox )
. Padding ( FMargin ( 4.0f , 0.0f , 0.0f , 0.0f ) )
[
2016-04-13 09:07:14 -04:00
bUseSuperSearch ? SuperSearchModule . MakeSearchBox ( ExposedEditableTextBox ) : OutputLogModule . MakeConsoleInputBox ( ExposedEditableTextBox )
2014-03-14 14:13:41 -04:00
]
]
2014-06-24 12:11:51 -04:00
// Editor live streaming toggle button
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( SButton )
. Visibility_Static ( [ ] ( ) - > EVisibility { return IEditorLiveStreaming : : Get ( ) . IsLiveStreamingAvailable ( ) ? EVisibility : : Visible : EVisibility : : Collapsed ; } )
. ToolTipText ( LOCTEXT ( " BroadcastTooltip " , " Starts or stops broadcasting of this editor session to a live internet streaming service. " ) )
. OnClicked_Static ( [ ]
{
// Toggle broadcasting on or off
if ( IEditorLiveStreaming : : Get ( ) . IsBroadcastingEditor ( ) )
{
IEditorLiveStreaming : : Get ( ) . StopBroadcastingEditor ( ) ;
}
else
{
IEditorLiveStreaming : : Get ( ) . StartBroadcastingEditor ( ) ;
}
return FReply : : Handled ( ) ;
} )
. ButtonStyle ( FEditorStyle : : Get ( ) , " NoBorder " )
. ContentPadding ( FMargin ( 1 , 0 ) )
[
SNew ( SImage )
. Image ( FEditorStyle : : GetBrush ( " EditorLiveStreaming.BroadcastButton " ) )
. ColorAndOpacity_Static ( [ ]
{
// Pulsate the button graphics while we're broadcasting
FSlateColor Color ( FLinearColor : : White ) ;
if ( IEditorLiveStreaming : : Get ( ) . IsBroadcastingEditor ( ) )
{
Color = FLinearColor ( 1.0f , 1.0f , 1.0f , FMath : : MakePulsatingValue ( FSlateApplication : : Get ( ) . GetCurrentTime ( ) , 2.0f ) ) ;
}
return Color ;
} )
]
]
// Crash report "save video" button
2014-03-14 14:13:41 -04:00
+ SHorizontalBox : : Slot ( )
. AutoWidth ( )
. VAlign ( VAlign_Bottom )
[
SNew ( SButton )
. Visibility ( bCrashTrackerVideoAvailable ? EVisibility : : Visible : EVisibility : : Collapsed )
. ToolTipText ( LOCTEXT ( " SaveReplayTooltip " , " Saves a video of the last 20 seconds of your work. " ) )
. OnClicked_Static ( & Local : : OnClickSaveVideo )
. ButtonStyle ( FEditorStyle : : Get ( ) , " NoBorder " )
. ContentPadding ( FMargin ( 1 , 0 ) )
[
SNew ( SImage )
. Image ( FEditorStyle : : GetBrush ( " CrashTracker.Record " ) )
]
]
] ;
}
END_SLATE_FUNCTION_BUILD_OPTIMIZATION
void FMainFrameModule : : SetLevelNameForWindowTitle ( const FString & InLevelFileName )
{
LoadedLevelName = ( InLevelFileName . Len ( ) > 0 )
? FPaths : : GetBaseFilename ( InLevelFileName )
: NSLOCTEXT ( " UnrealEd " , " Untitled " , " Untitled " ) . ToString ( ) ;
}
/* IModuleInterface implementation
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void FMainFrameModule : : StartupModule ( )
{
MRUFavoritesList = NULL ;
2015-07-07 15:48:07 -04:00
ensureMsgf ( ! IsRunningGame ( ) , TEXT ( " The MainFrame module should only be loaded when running the editor. Code that extends the editor, adds menu items, etc... should not run when running in -game mode or in a non-WITH_EDITOR build " ) ) ;
2014-03-14 14:13:41 -04:00
MainFrameHandler = MakeShareable ( new FMainFrameHandler ) ;
2015-07-15 11:16:31 -04:00
FGenericCommands : : Register ( ) ;
2014-03-14 14:13:41 -04:00
FMainFrameCommands : : Register ( ) ;
SetLevelNameForWindowTitle ( TEXT ( " " ) ) ;
2014-08-20 13:58:31 -04:00
// Register to find out about when hot reload completes, so we can show a notification
2014-09-05 12:46:22 -04:00
IHotReloadModule & HotReloadModule = IHotReloadModule : : Get ( ) ;
HotReloadModule . OnModuleCompilerStarted ( ) . AddRaw ( this , & FMainFrameModule : : HandleLevelEditorModuleCompileStarted ) ;
HotReloadModule . OnModuleCompilerFinished ( ) . AddRaw ( this , & FMainFrameModule : : HandleLevelEditorModuleCompileFinished ) ;
HotReloadModule . OnHotReload ( ) . AddRaw ( this , & FMainFrameModule : : HandleHotReloadFinished ) ;
2014-08-20 13:58:31 -04:00
2014-04-23 19:19:51 -04:00
# if WITH_EDITOR
ISourceCodeAccessModule & SourceCodeAccessModule = FModuleManager : : LoadModuleChecked < ISourceCodeAccessModule > ( " SourceCodeAccess " ) ;
SourceCodeAccessModule . OnLaunchingCodeAccessor ( ) . AddRaw ( this , & FMainFrameModule : : HandleCodeAccessorLaunching ) ;
SourceCodeAccessModule . OnDoneLaunchingCodeAccessor ( ) . AddRaw ( this , & FMainFrameModule : : HandleCodeAccessorLaunched ) ;
SourceCodeAccessModule . OnOpenFileFailed ( ) . AddRaw ( this , & FMainFrameModule : : HandleCodeAccessorOpenFileFailed ) ;
2014-03-14 14:13:41 -04:00
# endif
// load sounds
CompileStartSound = LoadObject < USoundBase > ( NULL , TEXT ( " /Engine/EditorSounds/Notifications/CompileStart_Cue.CompileStart_Cue " ) ) ;
CompileStartSound - > AddToRoot ( ) ;
CompileSuccessSound = LoadObject < USoundBase > ( NULL , TEXT ( " /Engine/EditorSounds/Notifications/CompileSuccess_Cue.CompileSuccess_Cue " ) ) ;
CompileSuccessSound - > AddToRoot ( ) ;
CompileFailSound = LoadObject < USoundBase > ( NULL , TEXT ( " /Engine/EditorSounds/Notifications/CompileFailed_Cue.CompileFailed_Cue " ) ) ;
CompileFailSound - > AddToRoot ( ) ;
ModuleCompileStartTime = 0.0f ;
2014-05-15 17:34:02 -04:00
// migrate old layout settings
2015-04-20 10:12:55 -04:00
FLayoutSaveRestore : : MigrateConfig ( GEditorPerProjectIni , GEditorLayoutIni ) ;
2014-03-14 14:13:41 -04:00
}
void FMainFrameModule : : ShutdownModule ( )
{
// Destroy the main frame window
TSharedPtr < SWindow > ParentWindow ( GetParentWindow ( ) ) ;
if ( ParentWindow . IsValid ( ) )
{
ParentWindow - > DestroyWindowImmediately ( ) ;
}
MainFrameHandler . Reset ( ) ;
FMainFrameCommands : : Unregister ( ) ;
2014-08-20 13:58:31 -04:00
if ( IHotReloadModule : : IsAvailable ( ) )
{
2014-09-05 12:46:22 -04:00
IHotReloadModule & HotReloadModule = IHotReloadModule : : Get ( ) ;
HotReloadModule . OnHotReload ( ) . RemoveAll ( this ) ;
HotReloadModule . OnModuleCompilerStarted ( ) . RemoveAll ( this ) ;
HotReloadModule . OnModuleCompilerFinished ( ) . RemoveAll ( this ) ;
2014-08-20 13:58:31 -04:00
}
2014-04-23 19:19:51 -04:00
# if WITH_EDITOR
2014-04-23 20:04:39 -04:00
if ( FModuleManager : : Get ( ) . IsModuleLoaded ( " SourceCodeAccess " ) )
{
ISourceCodeAccessModule & SourceCodeAccessModule = FModuleManager : : GetModuleChecked < ISourceCodeAccessModule > ( " SourceCodeAccess " ) ;
SourceCodeAccessModule . OnLaunchingCodeAccessor ( ) . RemoveAll ( this ) ;
SourceCodeAccessModule . OnDoneLaunchingCodeAccessor ( ) . RemoveAll ( this ) ;
SourceCodeAccessModule . OnOpenFileFailed ( ) . RemoveAll ( this ) ;
}
2014-03-14 14:13:41 -04:00
# endif
if ( CompileStartSound ! = NULL )
{
if ( ! GExitPurge )
{
CompileStartSound - > RemoveFromRoot ( ) ;
}
CompileStartSound = NULL ;
}
if ( CompileSuccessSound ! = NULL )
{
if ( ! GExitPurge )
{
CompileSuccessSound - > RemoveFromRoot ( ) ;
}
CompileSuccessSound = NULL ;
}
if ( CompileFailSound ! = NULL )
{
if ( ! GExitPurge )
{
CompileFailSound - > RemoveFromRoot ( ) ;
}
CompileFailSound = NULL ;
}
}
/* FMainFrameModule implementation
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
bool FMainFrameModule : : ShouldShowProjectDialogAtStartup ( ) const
{
return ! FApp : : HasGameName ( ) ;
}
/* FMainFrameModule event handlers
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2015-02-09 06:44:30 -05:00
void FMainFrameModule : : HandleLevelEditorModuleCompileStarted ( bool bIsAsyncCompile )
2014-03-14 14:13:41 -04:00
{
ModuleCompileStartTime = FPlatformTime : : Seconds ( ) ;
if ( CompileNotificationPtr . IsValid ( ) )
{
CompileNotificationPtr . Pin ( ) - > ExpireAndFadeout ( ) ;
}
2015-03-18 10:12:32 -04:00
if ( GEditor )
{
2015-11-04 16:14:13 -05:00
GEditor - > PlayEditorSound ( CompileStartSound ) ;
2015-03-18 10:12:32 -04:00
}
2014-03-14 14:13:41 -04:00
FNotificationInfo Info ( NSLOCTEXT ( " MainFrame " , " RecompileInProgress " , " Compiling C++ Code " ) ) ;
Info . Image = FEditorStyle : : GetBrush ( TEXT ( " LevelEditor.RecompileGameCode " ) ) ;
Info . ExpireDuration = 5.0f ;
Info . bFireAndForget = false ;
2015-02-09 06:44:30 -05:00
// We can only show the cancel button on async builds
if ( bIsAsyncCompile )
{
Info . ButtonDetails . Add ( FNotificationButtonInfo ( LOCTEXT ( " CancelC++Compilation " , " Cancel " ) , FText ( ) , FSimpleDelegate : : CreateRaw ( this , & FMainFrameModule : : OnCancelCodeCompilationClicked ) ) ) ;
}
2014-03-14 14:13:41 -04:00
CompileNotificationPtr = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
if ( CompileNotificationPtr . IsValid ( ) )
{
CompileNotificationPtr . Pin ( ) - > SetCompletionState ( SNotificationItem : : CS_Pending ) ;
}
}
void FMainFrameModule : : OnCancelCodeCompilationClicked ( )
{
2014-09-05 12:46:22 -04:00
IHotReloadModule : : Get ( ) . RequestStopCompilation ( ) ;
2014-03-14 14:13:41 -04:00
}
2014-04-23 18:36:17 -04:00
void FMainFrameModule : : HandleLevelEditorModuleCompileFinished ( const FString & LogDump , ECompilationResult : : Type CompilationResult , bool bShowLog )
2014-03-14 14:13:41 -04:00
{
// Track stats
{
const float ModuleCompileDuration = ( float ) ( FPlatformTime : : Seconds ( ) - ModuleCompileStartTime ) ;
UE_LOG ( LogMainFrame , Log , TEXT ( " MainFrame: Module compiling took %.3f seconds " ) , ModuleCompileDuration ) ;
if ( FEngineAnalytics : : IsAvailable ( ) )
{
2014-07-23 08:25:14 -04:00
TArray < FAnalyticsEventAttribute > CompileAttribs ;
CompileAttribs . Add ( FAnalyticsEventAttribute ( TEXT ( " Duration " ) , FString : : Printf ( TEXT ( " %.3f " ) , ModuleCompileDuration ) ) ) ;
2014-09-18 08:10:17 -04:00
CompileAttribs . Add ( FAnalyticsEventAttribute ( TEXT ( " Result " ) , ECompilationResult : : ToString ( CompilationResult ) ) ) ;
2014-07-23 08:25:14 -04:00
FEngineAnalytics : : GetProvider ( ) . RecordEvent ( TEXT ( " Editor.Modules.Recompile " ) , CompileAttribs ) ;
2014-03-14 14:13:41 -04:00
}
}
TSharedPtr < SNotificationItem > NotificationItem = CompileNotificationPtr . Pin ( ) ;
if ( NotificationItem . IsValid ( ) )
{
2014-09-18 08:10:17 -04:00
if ( ! ECompilationResult : : Failed ( CompilationResult ) )
2014-03-14 14:13:41 -04:00
{
2015-03-18 10:12:32 -04:00
if ( GEditor )
{
2015-11-04 16:14:13 -05:00
GEditor - > PlayEditorSound ( CompileSuccessSound ) ;
2015-03-18 10:12:32 -04:00
}
2014-03-14 14:13:41 -04:00
NotificationItem - > SetText ( NSLOCTEXT ( " MainFrame " , " RecompileComplete " , " Compile Complete! " ) ) ;
2014-09-18 08:10:17 -04:00
NotificationItem - > SetExpireDuration ( 5.0f ) ;
2014-03-14 14:13:41 -04:00
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Success ) ;
}
else
{
struct Local
{
static void ShowCompileLog ( )
{
FMessageLogModule & MessageLogModule = FModuleManager : : GetModuleChecked < FMessageLogModule > ( " MessageLog " ) ;
MessageLogModule . OpenMessageLog ( FCompilerResultsLog : : GetLogName ( ) ) ;
}
} ;
2015-03-18 10:12:32 -04:00
if ( GEditor )
{
2015-11-04 16:14:13 -05:00
GEditor - > PlayEditorSound ( CompileFailSound ) ;
2015-03-18 10:12:32 -04:00
}
2014-04-23 18:36:17 -04:00
if ( CompilationResult = = ECompilationResult : : FailedDueToHeaderChange )
{
NotificationItem - > SetText ( NSLOCTEXT ( " MainFrame " , " RecompileFailedDueToHeaderChange " , " Compile failed due to the header changes. Close the editor and recompile project in IDE to apply changes. " ) ) ;
}
2014-09-18 08:10:17 -04:00
else if ( CompilationResult = = ECompilationResult : : Canceled )
{
2016-01-07 11:21:22 -05:00
NotificationItem - > SetText ( NSLOCTEXT ( " MainFrame " , " RecompileCanceled " , " Compile Canceled! " ) ) ;
2014-09-18 08:10:17 -04:00
}
2014-04-23 18:36:17 -04:00
else
{
NotificationItem - > SetText ( NSLOCTEXT ( " MainFrame " , " RecompileFailed " , " Compile Failed! " ) ) ;
}
2014-03-14 14:13:41 -04:00
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Fail ) ;
NotificationItem - > SetHyperlink ( FSimpleDelegate : : CreateStatic ( & Local : : ShowCompileLog ) ) ;
2014-09-18 08:10:17 -04:00
NotificationItem - > SetExpireDuration ( 30.0f ) ;
2014-03-14 14:13:41 -04:00
}
NotificationItem - > ExpireAndFadeout ( ) ;
CompileNotificationPtr . Reset ( ) ;
}
}
2014-08-20 13:58:31 -04:00
void FMainFrameModule : : HandleHotReloadFinished ( bool bWasTriggeredAutomatically )
{
// Only play the notification for hot reloads that were triggered automatically. If the user triggered the hot reload, they'll
// have a different visual cue for that, such as the "Compiling Complete!" notification
if ( bWasTriggeredAutomatically )
{
FNotificationInfo Info ( LOCTEXT ( " HotReloadFinished " , " Hot Reload Complete! " ) ) ;
Info . Image = FEditorStyle : : GetBrush ( TEXT ( " LevelEditor.RecompileGameCode " ) ) ;
Info . FadeInDuration = 0.1f ;
Info . FadeOutDuration = 0.5f ;
Info . ExpireDuration = 1.5f ;
Info . bUseThrobber = false ;
Info . bUseSuccessFailIcons = true ;
Info . bUseLargeFont = true ;
Info . bFireAndForget = false ;
Info . bAllowThrottleWhenFrameRateIsLow = false ;
auto NotificationItem = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Success ) ;
NotificationItem - > ExpireAndFadeout ( ) ;
2015-11-04 16:14:13 -05:00
GEditor - > PlayEditorSound ( CompileSuccessSound ) ;
2014-08-20 13:58:31 -04:00
}
}
2014-04-23 19:19:51 -04:00
void FMainFrameModule : : HandleCodeAccessorLaunched ( const bool WasSuccessful )
2014-03-14 14:13:41 -04:00
{
2014-04-23 19:19:51 -04:00
TSharedPtr < SNotificationItem > NotificationItem = CodeAccessorNotificationPtr . Pin ( ) ;
2014-03-14 14:13:41 -04:00
if ( NotificationItem . IsValid ( ) )
{
2014-04-23 19:19:51 -04:00
ISourceCodeAccessModule & SourceCodeAccessModule = FModuleManager : : LoadModuleChecked < ISourceCodeAccessModule > ( " SourceCodeAccess " ) ;
const FText AccessorNameText = SourceCodeAccessModule . GetAccessor ( ) . GetNameText ( ) ;
2014-03-14 14:13:41 -04:00
if ( WasSuccessful )
{
2014-04-23 19:19:51 -04:00
NotificationItem - > SetText ( FText : : Format ( LOCTEXT ( " CodeAccessorLoadComplete " , " {0} loaded! " ) , AccessorNameText ) ) ;
2014-03-14 14:13:41 -04:00
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Success ) ;
}
else
{
2014-04-23 19:19:51 -04:00
NotificationItem - > SetText ( FText : : Format ( LOCTEXT ( " CodeAccessorLoadFailed " , " {0} failed to launch! " ) , AccessorNameText ) ) ;
2014-03-14 14:13:41 -04:00
NotificationItem - > SetCompletionState ( SNotificationItem : : CS_Fail ) ;
}
NotificationItem - > ExpireAndFadeout ( ) ;
2014-04-23 19:19:51 -04:00
CodeAccessorNotificationPtr . Reset ( ) ;
2014-03-14 14:13:41 -04:00
}
}
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3082391)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3051464 on 2016/07/15 by Nick.Darnell
Regression Testing - Several upgrades to the functional testing system, better tracking of failure cases, some source line failure detection, trying to make it easier to run a specific test on a map. Some UI improvements, easier access to the automation system. Lots more refactoring to come, lots of improvements are still needed in transmitting screenshots and just generally building a automation report we could dump from the build machines.
Change 3051465 on 2016/07/15 by Nick.Darnell
Adding the "Engine Test" project our one stop shope for running automation tests in the engine to try and reduce regressions.
Change 3051847 on 2016/07/15 by Matt.Kuhlenschmidt
Fixed material editor viewport messages being blocked by viewport toolbar
Change 3052025 on 2016/07/15 by Nick.Darnell
Moving the placement mode hooks out of functional testing module, moving them into the editor automation module.
Change 3053508 on 2016/07/18 by Stephan.Jiang
Copy,Cut,Paste tracks, not for mastertracks yet.
#UE-31808
Change 3054723 on 2016/07/18 by Stephan.Jiang
Small fixes for typo & comments
Change 3055996 on 2016/07/19 by Trung.Le
PIE: No longer auto resume game in PIE on focus received
Change 3056106 on 2016/07/19 by Trung.Le
Back out changelist 3055996. Build break.
Change 3056108 on 2016/07/19 by Stephan.Jiang
Updating "SoundConcurrency" asseticon
Change 3056389 on 2016/07/19 by Trung.Le
PIE: No longer auto resume game in PIE on focus received
#jira UE-33339
Change 3056396 on 2016/07/19 by Matt.Kuhlenschmidt
More perf selection improvements:
- Static meshes now go through the static draw path when rendered for selection outline instead of just rendering using the dynamic path
Change 3056758 on 2016/07/19 by Stephan.Jiang
Update SelectedWidgets in WidgetblueprintEditor to match the selected tracks in sequencer.
Change 3057519 on 2016/07/20 by Matt.Kuhlenschmidt
Another fix for selecting lots of objects taking forever. This one is due to repeated Modify calls if there are groups in the selection. Each group actor selected iterates through each object selected during USelection::Modify!
Change 3057635 on 2016/07/20 by Stephan.Jiang
Updating visual logger icon UI
Change 3057645 on 2016/07/20 by Richard.TalbotWatkin
Fixed single player PIE so the window position is correctly fetched and saved, even when running a dedicated server. This does not interfere with stored positions for multiple PIE, which uses ULevelEditorPlaySettings::MultipleInstancePositions.
#jira UE-33416 - New Editor PIE window does not center to screen when running with a dedicated server
Change 3057868 on 2016/07/20 by Richard.TalbotWatkin
Spline component improvements, both tools and runtime:
- SplineComponentVisualizer now works within the Blueprint editor. This works via a generic extension added to the base ComponentVisualizer class which correctly propagates modified properties from the preview actor to the archetype, and then on to any instances whose properties are at the default value.
- The above feature required a breaking change to USplineComponent - namely, the three FInterpCurve properties have been collected together into a struct and added as a single property. This is so that changes to the length of one of the FInterpCurves marks all three as dirty and needing rebuilding.
- Added a custom version for SplineComponent and provded serialization fixes.
- Added a details customization to SplineComponent to hide the raw FInterpCurve properties.
- Added a custom detail builder category which polls the SplineComponentVisualizer each tick and provides numerical editing for spline points which are selected in the visualizer.
- Relaxed the limitation that SplineComponent keys need to have an increment of 1.0. Now any SplineComponent key can be set. The details customization enforces that the sequence remains strictly ascending.
- Allowed an explicit loop point to be specified for closed splines.
- Allowed discontinuous splines by no longer forcing the ArriveTangent and LeaveTangent to be equal.
- Added some new Blueprintable methods for building splines with an FSplinePoint struct, which allows all of a spline point's properties to be specified, and added to the FInterpCurves sorted by the input key.
- Fixed the logic which determines whether the UCS has modified the spline curves.
- Added UActorComponent::RemoveUCSModifiedProperties, which allows a component to remove any properties from the cached list which it doesn't want to be considered as 'modified'. This is used to distinguish the case of properties preserved by the SplineInstanceDataCache from those genuinely modified by the UCS.
- Fixed "Apply Instance Changes to Blueprint" so that edited spline data can be applied to the archetype.
- Fixed some issues with the spline component visualizer to make it generate appropriate up vectors if scale and rotation are enabled.
#jira UETOOL-766 - Spline tool improvements
#jira UE-33049 - Transform widget visible in blueprint viewport when editing spline points in editor viewport
#jira UE-9062 - Spline editing: It would be nice to be able to type in a specific value for a point
#jira UE-7476 - Add ability to edit SplineComponent in BP editor (not just instance in level)
#jira UE-13082 - Users would like a snapping feature for splines
#jira UE-13568 - Additional Spline Component Functionality
#jira UE-17822 - It would be useful to be able to update a bp spline layout from the editor viewport.
Change 3057895 on 2016/07/20 by Richard.TalbotWatkin
Mesh paint bugfixes and improvements.
Changes to RerunConstructionScript so that OnObjectsReplaced is called correctly on all components, whether they have been created by the SCS or the UCS. Previously, components created by the UCS were not being handled, and components created by the SCS were not always being matched. Now a serialized index is maintained for UCS-created objects, which is matched after the construction scripts have been executed.
This will fix issues with the mesh paint tool, and any other editor tool which hooks into the OnObjectsReplaced callback in order to update its internal cache of component pointers, for example, the component visualizer render list.
#jira UE-33010 - Crash changing mesh paint material in blueprint, then changing to a different mode tab
#jira UE-32279 - Editor crashes when reselecting a mesh in paint mode
#jira UE-31763 - [CrashReport] UE4Editor_MeshPaint!FMulticastDelegateBase<FWeakObjectPtr>::RemoveAll() [multicastdelegatebase.h:75]
#jira UE-30661 - Vertex Painting changes collision complexity if the asset is saved while vertex painting
Change 3057966 on 2016/07/20 by Richard.TalbotWatkin
Renamed IsEditingArchetype to IsVisualizingArchetype in the ComponentVisualizer API.
#jira UE-33049 - Transform widget visible in blueprint viewport when editing spline points in editor viewport
Change 3058009 on 2016/07/20 by Richard.TalbotWatkin
Fixed build failure due to changes to FComponentVisualizer API, as of CL 3057868.
Change 3058047 on 2016/07/20 by Stephan.Jiang
Fixing error on previous CL: 3056758
(extra qualification)
Change 3058266 on 2016/07/20 by Nick.Darnell
Automation - Work continues on automation integrating some ideas form a licensee. Continuing to work on the usability aspects, I've made it possible for tests to provide custom open commands, as well as have complex subclasses that do different things. The functional tests now have a custom open command they emit that makes it so clicking on a test opens not the C++ location where the functional test macro lives, but instead the map, AND focuses the functional test actor.
Change 3058282 on 2016/07/20 by Matt.Kuhlenschmidt
PR #2611: Fix spurious component diff when properties are in subcategories (Contributed by CA-ADuran)
Change 3059214 on 2016/07/21 by Richard.TalbotWatkin
Further fixes to visualizers following Component Visualizer API change.
Change 3059260 on 2016/07/21 by Richard.TalbotWatkin
Template specialization not allowed in class scope, but Visual Studio allows it anyway. Fixed for clang.
Change 3059543 on 2016/07/21 by Stephan.Jiang
Changeing level details icon
Change 3059732 on 2016/07/21 by Stephan.Jiang
Directional Light icon update
Change 3060095 on 2016/07/21 by Stephan.Jiang
Directional Light editor icon asset changed
Change 3060129 on 2016/07/21 by Nick.Darnell
Automation - The session browser now attempts to select the app instance if no other thing is selected when it refreshes. This is to try and make it easier to use when you first bring it up and nothing is selected when most of the time you're going to use it on your own instance.
Change 3061735 on 2016/07/22 by Stephan.Jiang
Improve UMG replace with in HierarchyView function
#UE-33582
Change 3062059 on 2016/07/22 by Stephan.Jiang
Strip off "b" in propertyname in replace with function for tracks.
Change 3062146 on 2016/07/22 by Stephan.Jiang
checkin with CL: 3061735
Change 3062182 on 2016/07/22 by Stephan.Jiang
Change both animation bindings' widget name when renameing the widget so the slot content is still valid
Change 3062257 on 2016/07/22 by Stephan.Jiang
comments
Change 3062381 on 2016/07/22 by Nick.Darnell
Build - Adding #undef LOCTEXT_NAMESPACE to try and fix the build.
Change 3062924 on 2016/07/25 by Chris.Wood
Fix a crash in CrashReportClient that happens when the CrashReportReceiver is not responding to pings and there are no PendingReportDirectories.
This is a change in the UE4 stream depot based on a fix in the Fortnite stream depot -> JIRA FORT-27570
Change 3063017 on 2016/07/25 by Matt.Kuhlenschmidt
PR #2618: DebuggerCommand not recording PlayLocationString (Contributed by ungalyant)
Change 3063021 on 2016/07/25 by Matt.Kuhlenschmidt
PR #2619: added a search box to ModuleUI (Contributed by straymist)
Change 3063084 on 2016/07/25 by Matt.Kuhlenschmidt
Fix "YesToAll" when deleting referenced actors overriding the "YesToAll" state for other referenced messages.
https://jira.ol.epicgames.net/browse/UE-33651
#jira UE-33651
Change 3063091 on 2016/07/25 by Alex.Delesky
#jira UE-32949 - Truncating the hue inside the theme color block tooltip to only display whole numbers, to match how the color picker displays the hue value inside the hue scrubber.
Change 3063388 on 2016/07/25 by Matt.Kuhlenschmidt
Selection Perf:
- Fix large FName creation time when selecting thousands of objects
Change 3063568 on 2016/07/25 by Matt.Kuhlenschmidt
Selection Perf:
- Modified how USelection stores classes. Classes are now in a TSet and can be accessed efficiently using IsClassSelected. The old unused way of checking if a selection has a class by iterating through them is deprecated
- USelection no longer directly checks if an item is already selected with a costly n^2 search. The check is done by using the already existing UObject selected annotation
- Object property nodes no longer perform an n^2 check for object uniqueness when objects are added to details panels. This is now left up to the caller to avoid
- Eliminated useless work on FObjectPropertyNode::GetReadAddressUncached. If a read address list is not passed in we'll not attempt to the work to populate it
- Removed expensive checking for brush actors when any actor is selected
Change 3063749 on 2016/07/25 by Stephan.Jiang
Disallow naming the widgetanimation to the same name with a override function in uuserwidget, because it will trigger a breakpoint in Rename()
#jira UE-33711
Change 3064585 on 2016/07/26 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3064612 on 2016/07/26 by Alex.Delesky
#jira UE-33712 - Deleting many assets at once will now batch SourceControl commands rather than executing one for each asset.
Change 3064647 on 2016/07/26 by Alexis.Matte
#jira UE-33274 dont hash the same file over and over when importing multiple asset from one fbx file.
Change 3064739 on 2016/07/26 by Matt.Kuhlenschmidt
Fixed typo
Change 3064795 on 2016/07/26 by Jamie.Dale
Fixed typo in FLocalizationModule::GetLocalizationTargetByName
#jira UE-32961
Change 3066461 on 2016/07/27 by Jamie.Dale
Enabled stable localization keys
Change 3066463 on 2016/07/27 by Jamie.Dale
Set "Build Engine Localization" to upload all cultures to ensure we don't lose translation due to the archive keying changes
Change 3066467 on 2016/07/27 by Jamie.Dale
Updated internationalization archives to store translations per-identity
This allows translators to translate each instance of a piece of text based upon their context, rather than requiring a content producer to go back and give the entry a unique namespace. It also allows us to optionally compile out-of-date translations, as they are now mapped to their source identity (namespace + key) rather than their source text.
Major changes:
- Added FLocTextHelper. This acts as a high-level API for uncompiled localized text, and replaces all the old ad-hoc loading/saving of manifests and archives, ensuring that everything is consistently using source control, and that older archives can be upgraded correctly to the new format. It also takes care of some of the quirks of our archives, such as native translations. All major localization commandlets have been updated to use FLocTextHelper.
- Moved FTextLocalizationResourceGenerator from Core to Internationalization. This also allows IJsonInternationalizationManifestSerializer and IJsonInternationalizationArchiveSerializer to be removed, and for FJsonInternationalizationManifestSerializer and FJsonInternationalizationArchiveSerializer to have all their functions become static.
- FTextLocalizationResourceGenerator being moved from Core meant that FTextLocalizationManager::LoadFromManifestAndArchives was also removed. This functionality is now handled by FTextLocalizationResourceGenerator::GenerateAndUpdateLiveEntriesFromConfig.
- The RepairLocalizationData commandlet has been removed. This existed to fix a change that pre-dated 4.0 so no such data should exist in the wild, and the commandlet couldn't be updated to work with the new API (we handle format upgrades in-place now).
- Removed FInternationalizationArchive::FindEntryBySource as it is no-longer safe to use. All existing code has been updated to use FInternationalizationArchive::FindEntryByKey instead.
Workflow changes:
- Archive conditioning now only adds new entries if they don't exist in the archive. This allows us to persist any existing translations, even if they're for old source text (caveat: native archives still update existing entries if the source is changed).
- PO export now sets the msgctx for each entry to be "namespace,key", rather than only doing it when the entry had key meta-data.
- PO import will now update both the source and translation stored in the archive to match the current PO data. This is the primary method by which stale source->translation pairs are updated.
- LocRes compilation may now optionally compile stale translations. There's an option controlling this (defaulted to off) that can be changed via the Localization Dashboard (or added to an existing config file).
Format changes:
- The archive version was bumped to 2.
- Archive entries now use the "Key" entry to store the key from the source text. Previously this "Key" entry was used to store the key meta-data, but that now exists within a "MetaData" sub-object. Loading handles this correctly based upon the archive version.
#jira UETOOL-897
#jira UETOOL-898
#jira UE-29481
Change 3066487 on 2016/07/27 by Matt.Kuhlenschmidt
Attempt to fix linux compilation
Change 3066504 on 2016/07/27 by Matt.Kuhlenschmidt
Fixed data tables with structs crashing due to recent editor selection optimizations
Change 3066886 on 2016/07/27 by Jamie.Dale
Added required data to accurately detect TZ (needed for DST)
#jira UE-28511
Change 3067122 on 2016/07/27 by Jamie.Dale
Added AsTime, AsDateTime, and AsDate overrides to BP to let you format a UTC time in a given timezone (default is the local timezone).
Previously you could only format times using the "invariant" timezone, which assumed that the time was already specified in the correct timezone for display.
Change 3067227 on 2016/07/27 by Jamie.Dale
Added a test to verify that the ICU timezone is set correctly to produce local time (including DST)
Change 3067313 on 2016/07/27 by Richard.TalbotWatkin
Fixed SplineComponent constructor so that old assets (prior to the property changes) load correctly if they had properties at default values.
#jira UE-33669 - Crash in Dev-Editor
Change 3067736 on 2016/07/27 by Stephan.Jiang
Border changes for experimental classes warning
Change 3067769 on 2016/07/27 by Stephan.Jiang
HERE BE DRAGONS
for experimental class warning
#UE-33780
Change 3068192 on 2016/07/28 by Alexis.Matte
#jira UE-33586 make sure we remove any false warning when running fbx automation test.
Change 3068264 on 2016/07/28 by Jamie.Dale
Removed some code that was no longer needed and could cause a crash
#jira UE-33342
Change 3068293 on 2016/07/28 by Alex.Delesky
#jira UE-33620 - Comments on constant and parameter nodes in the Material Editor will now persist when converting them.
Change 3068481 on 2016/07/28 by Stephan.Jiang
Adding Options to show/hide soft & hard references & dependencies in References Viewer
#jira UE-33746
Change 3068585 on 2016/07/28 by Richard.TalbotWatkin
Fix to Spline Mesh collision building so that geometry does not default to being auto-inflated in PhysX.
Change 3068701 on 2016/07/28 by Matt.Kuhlenschmidt
Fixed some issues with the selected classes not updating when objects are deselected
Change 3069335 on 2016/07/28 by Jamie.Dale
Fixed unintended error when trying to load a manifest/archive that didn't exist
Fixed a warning when trying to load a PO file that didn't exist
Change 3069408 on 2016/07/28 by Alex.Delesky
#jira UE-33429 - The editor should no longer hit an ensure if the user attempts to drop a tab into a tab well before the tab well has a chance to acknowledge its been dragged into a tab well.
Change 3069878 on 2016/07/29 by Jamie.Dale
Fixed include casing
#jira UE-33910
Change 3071807 on 2016/08/01 by Matt.Kuhlenschmidt
PR #2654: Fix the spell'ing of "diff'ing" and "diff'd". (Contributed by geary)
Change 3071813 on 2016/08/01 by Jamie.Dale
Fixed include casing
#jira UE-33936
Change 3072043 on 2016/08/01 by Jamie.Dale
Fixed FText formatting of pre-Gregorian dates
We now convert to an ICU UDate via an ICU GregorianCalendar, as UE4 and ICU have a different time scale for pre-Gregorian dates.
#jira UE-14504
Change 3072066 on 2016/08/01 by Jamie.Dale
PR #2590: FEATURE: Collapse/expand folders in the outliner (Contributed by projectgheist)
Change 3072149 on 2016/08/01 by Jamie.Dale
We no longer use the editor culture when running with -game
Change 3072169 on 2016/08/01 by Richard.TalbotWatkin
A couple of changes to the BSP code:
* Fixed longstanding issue where sometimes BSP geometry is not rebuilt correctly after editing it. This was due to poly normals not being recalculated after translating vertices in Geometry Mode.
* Fixed corruption to FPoly::iLink as it is overloaded to have two meanings: when building BSP, it represents the surface index of the next coplanar surface (and adding a new BSP node uses this to determine whether a new surface needs to be added or not). In other operations it represents an FPoly index, in general this is used more in editor geometry operations. This fixes various crashes which arose from rebuilding BSP resulting in invalid FPoly indices.
#jira UE-12157 - BSP brushes break when non-standard subtractive bsp brushes are used
#jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume
Change 3072221 on 2016/08/01 by Jamie.Dale
Fixed "Launch On" not providing the correct cultures to StartCookByTheBookInEditor
#jira UE-33001
Change 3073389 on 2016/08/02 by Matt.Kuhlenschmidt
Added ability to vsync the editor. Disabled by default. Set r.VSyncEditor to 1 to enable it.
Reimplemented this change from the siggraph demo stream
Change 3073396 on 2016/08/02 by Matt.Kuhlenschmidt
Removed unused code as suggested by a pull request
Change 3073750 on 2016/08/02 by Richard.TalbotWatkin
Fixed formatting (broken in CL 3057895) in anticipation of merge from Main.
Change 3073789 on 2016/08/02 by Jamie.Dale
Added a way to mark text in text properties as culture invariant
This allows you to flag properties containing text that doesn't need to be gathered.
#jira UE-33713
Change 3073825 on 2016/08/02 by Stephan.Jiang
Material Editor: Highligh all Nodes connect to an input.
#jira UE-32502
Change 3073947 on 2016/08/02 by Stephan.Jiang
UMG Project settings to show/hide different classes and categories in Palette view.
--under Project Settings ->Editor->UMG Editor
Change 3074012 on 2016/08/02 by Stephan.Jiang
Minor changes and comments for CL: 3073947
Change 3074029 on 2016/08/02 by Jamie.Dale
Deleting folders in the Content Browser now removes the folder from disk
#jira UE-24303
Change 3074054 on 2016/08/02 by Matt.Kuhlenschmidt
Added missing stats to track pooled vertex and index buffer cpu memory
A new slate allocator was added to track memory usage for this case.
Change 3074056 on 2016/08/02 by Matt.Kuhlenschmidt
Renamed a few slate stats for consistency
Change 3074810 on 2016/08/02 by Matt.Kuhlenschmidt
Moved geometry cache asset type to the animation category. It is not a basic asset type
Change 3074826 on 2016/08/02 by Matt.Kuhlenschmidt
Fix a few padding and sizing issues
Change 3075322 on 2016/08/03 by Matt.Kuhlenschmidt
Settings UI improvements
* Added the ability to search through all settings at once
* Settings files which are not checked out are no longer grayed out. The editor now attempts to check out the file automatically if connected to source control and if that fails it marks the settings file writiable so it can save the setting properly
-------
* This change adds a refactor to the details panel to support multiple top level objects existing in the details panel at once instead of combining all passed in objects to a single common base class. This is disabled by default but can be turned on setting bAllowMultipleTopLevelObjects to true in FDetailsViewArgs when creating a details panel.
* Each top level object in a details panel will get their own customization instance. This made it necessary to deprecate a IDetailsView::GetBaseClass since there is no longer guaranteed to be one base class.
*Details panels can have their own customization for each "root object header" in order to customize the look of having multiple top level objects in the details panel.
Change 3075369 on 2016/08/03 by Matt.Kuhlenschmidt
Removed FBX scene as a top level option in asset filter menu in the content browser.
Change 3075556 on 2016/08/03 by Matt.Kuhlenschmidt
Mac warning fix
Change 3075603 on 2016/08/03 by Nick.Darnell
Adding two new plugins to engine, one for editor and one for runtime based testing. Currently the only consumer of these plugins is going to be the EngineTest project.
Change 3075605 on 2016/08/03 by Nick.Darnell
Functional Testing - Continued work on cleanup, reorganization, trying to improve the workflow for using the session browser.
Change 3076084 on 2016/08/03 by Jamie.Dale
Added basic support for localizing plugins
You can now localize plugins! There's no localization dashboard integration for this so it has to be done manually.
You need to define the localization targets your plugin uses in its .uplugin file, eg)
"LocalizationTargets": [
{
"Name": "Paper2D",
"LoadingPolicy": "Always"
}
]
"Name" should match a localization config under the Config/Localization folder for your plugin. These configs are set-up the same as any other localization config.
"LoadingPolicy" may be one of Never, Always, Editor, Game, PropertyNames, or ToolTips. This allows you to control under what conditions your localizations should be loaded (eg, if your plugin has both game and editor data, you can separate the editor data off into its own localization target that's only loaded by the editor).
UAT has been updated to support gathering from plugins. You can use the "IncludePlugins" flag to have it gather all plugins, or you can specify a whitelist of plugins to gather as an argument to "IncludePlugins", or alternatively, may blacklist certain plugins via "ExcludePlugins". It can now also support out-of-source gathering via the "UEProjectRoot" argument (previously it assumed that everything would be under the UE4 install/checkout directory).
UAT has been updated to support staging plugin LocRes files. It will stage any plugin targets that are enabled for a game/client build, and are also from a plugin that's enabled for your project.
#jira UE-4217
Change 3076123 on 2016/08/03 by Stephan.Jiang
Extend "Select all input nodes" function to general blueprint editor
Change 3077103 on 2016/08/04 by Jamie.Dale
Added support for underlined text rendering (including with drop-shadows)
FTextBlockStyle can now specify a brush to use to draw an underline for text (a suitable default would be "DefaultTextUnderline" from FCoreStyle). When a brush is specified here, we inject FSlateTextUnderlineLineHighlighter highlights into the text layout to draw the underline under the relevant pieces of text, using the correct color, position, and thickness.
FSlateFontCache::GetUnderlineMetrics and FSlateFontRenderer::GetUnderlineMetrics have been added to handle getting the underline metrics (which are slightly different to the baseline).
This change also adds FTextLayout::RemoveRunRenderer and FTextLayout::RemoveLineHighlight to fix some bad assumptions that FSlateEditableTextLayout and FTextBlockLayout were making about ownership of run renderers and line highlighters that could cause them to remove instances they didn't own (such as the new underline highlighter) when updating things like the cursor position or highlight.
Change 3077842 on 2016/08/04 by Jamie.Dale
Fixed fallout from API changes
Change 3077999 on 2016/08/04 by Jamie.Dale
Ensured that BULKDATA_SingleUse is only set by UFontBulkData::Serialize when loading
This prevents it being incorrectly set by other operations, such as counting memory used by font data.
#jira UE-34252
Change 3078000 on 2016/08/04 by Trung.Le
Categories VREditor-specific UMG widget assets as "VR Editor"
#jira UE-34134
Change 3078056 on 2016/08/04 by Nick.Darnell
Build - Fixing a mac compiler warning, reodering constructor initializers.
Change 3078813 on 2016/08/05 by Nick.Darnell
Reorganizing editor tests, establishing plugins in the EditorTest project that will house the tests.
Change 3078818 on 2016/08/05 by Nick.Darnell
Additional rename and cleanup associated with test moving.
Change 3078819 on 2016/08/05 by Nick.Darnell
Removing the Oculus performance automation test, not running, and was unclaimed.
Change 3078842 on 2016/08/05 by Nick.Darnell
Continued reorganizing tests.
Change 3078897 on 2016/08/05 by Nick.Darnell
Additional changes to get some moved tests compiling
Change 3079157 on 2016/08/05 by Nick.Darnell
Making it possible to browse provider names thorugh the source control module interface.
Change 3079176 on 2016/08/05 by Stephan.Jiang
Add shortcut Ctrl+Shift+Space to rotate through different viewport options
#jira UE-34140
Change 3079208 on 2016/08/05 by Stephan.Jiang
Fix new animation name check in UMG
Change 3079278 on 2016/08/05 by Nick.Darnell
Fixing the build
Change 3080555 on 2016/08/08 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3081155 on 2016/08/08 by Nick.Darnell
Fixing some issues with the editor tests / runtime tests under certain build configs.
Change 3081243 on 2016/08/08 by Stephan.Jiang
Add gesture in LevelViewport to switch between Top/Bottom...etc.
Change 3082226 on 2016/08/09 by Matt.Kuhlenschmidt
Work around animations not playing in paragon due to bsp rebuilds (UE-34391)
Change 3082254 on 2016/08/09 by Stephan.Jiang
DragTool_ViewportChange init changes
[CL 3082411 by Matt Kuhlenschmidt in Main branch]
2016-08-09 11:28:56 -04:00
void FMainFrameModule : : HandleCodeAccessorLaunching ( )
2014-03-14 14:13:41 -04:00
{
2014-04-23 19:19:51 -04:00
if ( CodeAccessorNotificationPtr . IsValid ( ) )
2014-03-14 14:13:41 -04:00
{
2014-04-23 19:19:51 -04:00
CodeAccessorNotificationPtr . Pin ( ) - > ExpireAndFadeout ( ) ;
2014-03-14 14:13:41 -04:00
}
2014-04-23 19:19:51 -04:00
ISourceCodeAccessModule & SourceCodeAccessModule = FModuleManager : : LoadModuleChecked < ISourceCodeAccessModule > ( " SourceCodeAccess " ) ;
const FText AccessorNameText = SourceCodeAccessModule . GetAccessor ( ) . GetNameText ( ) ;
FNotificationInfo Info ( FText : : Format ( LOCTEXT ( " CodeAccessorLoadInProgress " , " Loading {0} " ) , AccessorNameText ) ) ;
2014-03-14 14:13:41 -04:00
Info . bFireAndForget = false ;
2014-04-23 19:19:51 -04:00
CodeAccessorNotificationPtr = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
CodeAccessorNotificationPtr . Pin ( ) - > SetCompletionState ( SNotificationItem : : CS_Pending ) ;
2014-03-14 14:13:41 -04:00
}
2014-04-23 19:19:51 -04:00
void FMainFrameModule : : HandleCodeAccessorOpenFileFailed ( const FString & Filename )
2014-03-14 14:13:41 -04:00
{
Copying //UE4/Dev-Editor to //UE4/Dev-Main (Source: //UE4/Dev-Editor @ 3082391)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3051464 on 2016/07/15 by Nick.Darnell
Regression Testing - Several upgrades to the functional testing system, better tracking of failure cases, some source line failure detection, trying to make it easier to run a specific test on a map. Some UI improvements, easier access to the automation system. Lots more refactoring to come, lots of improvements are still needed in transmitting screenshots and just generally building a automation report we could dump from the build machines.
Change 3051465 on 2016/07/15 by Nick.Darnell
Adding the "Engine Test" project our one stop shope for running automation tests in the engine to try and reduce regressions.
Change 3051847 on 2016/07/15 by Matt.Kuhlenschmidt
Fixed material editor viewport messages being blocked by viewport toolbar
Change 3052025 on 2016/07/15 by Nick.Darnell
Moving the placement mode hooks out of functional testing module, moving them into the editor automation module.
Change 3053508 on 2016/07/18 by Stephan.Jiang
Copy,Cut,Paste tracks, not for mastertracks yet.
#UE-31808
Change 3054723 on 2016/07/18 by Stephan.Jiang
Small fixes for typo & comments
Change 3055996 on 2016/07/19 by Trung.Le
PIE: No longer auto resume game in PIE on focus received
Change 3056106 on 2016/07/19 by Trung.Le
Back out changelist 3055996. Build break.
Change 3056108 on 2016/07/19 by Stephan.Jiang
Updating "SoundConcurrency" asseticon
Change 3056389 on 2016/07/19 by Trung.Le
PIE: No longer auto resume game in PIE on focus received
#jira UE-33339
Change 3056396 on 2016/07/19 by Matt.Kuhlenschmidt
More perf selection improvements:
- Static meshes now go through the static draw path when rendered for selection outline instead of just rendering using the dynamic path
Change 3056758 on 2016/07/19 by Stephan.Jiang
Update SelectedWidgets in WidgetblueprintEditor to match the selected tracks in sequencer.
Change 3057519 on 2016/07/20 by Matt.Kuhlenschmidt
Another fix for selecting lots of objects taking forever. This one is due to repeated Modify calls if there are groups in the selection. Each group actor selected iterates through each object selected during USelection::Modify!
Change 3057635 on 2016/07/20 by Stephan.Jiang
Updating visual logger icon UI
Change 3057645 on 2016/07/20 by Richard.TalbotWatkin
Fixed single player PIE so the window position is correctly fetched and saved, even when running a dedicated server. This does not interfere with stored positions for multiple PIE, which uses ULevelEditorPlaySettings::MultipleInstancePositions.
#jira UE-33416 - New Editor PIE window does not center to screen when running with a dedicated server
Change 3057868 on 2016/07/20 by Richard.TalbotWatkin
Spline component improvements, both tools and runtime:
- SplineComponentVisualizer now works within the Blueprint editor. This works via a generic extension added to the base ComponentVisualizer class which correctly propagates modified properties from the preview actor to the archetype, and then on to any instances whose properties are at the default value.
- The above feature required a breaking change to USplineComponent - namely, the three FInterpCurve properties have been collected together into a struct and added as a single property. This is so that changes to the length of one of the FInterpCurves marks all three as dirty and needing rebuilding.
- Added a custom version for SplineComponent and provded serialization fixes.
- Added a details customization to SplineComponent to hide the raw FInterpCurve properties.
- Added a custom detail builder category which polls the SplineComponentVisualizer each tick and provides numerical editing for spline points which are selected in the visualizer.
- Relaxed the limitation that SplineComponent keys need to have an increment of 1.0. Now any SplineComponent key can be set. The details customization enforces that the sequence remains strictly ascending.
- Allowed an explicit loop point to be specified for closed splines.
- Allowed discontinuous splines by no longer forcing the ArriveTangent and LeaveTangent to be equal.
- Added some new Blueprintable methods for building splines with an FSplinePoint struct, which allows all of a spline point's properties to be specified, and added to the FInterpCurves sorted by the input key.
- Fixed the logic which determines whether the UCS has modified the spline curves.
- Added UActorComponent::RemoveUCSModifiedProperties, which allows a component to remove any properties from the cached list which it doesn't want to be considered as 'modified'. This is used to distinguish the case of properties preserved by the SplineInstanceDataCache from those genuinely modified by the UCS.
- Fixed "Apply Instance Changes to Blueprint" so that edited spline data can be applied to the archetype.
- Fixed some issues with the spline component visualizer to make it generate appropriate up vectors if scale and rotation are enabled.
#jira UETOOL-766 - Spline tool improvements
#jira UE-33049 - Transform widget visible in blueprint viewport when editing spline points in editor viewport
#jira UE-9062 - Spline editing: It would be nice to be able to type in a specific value for a point
#jira UE-7476 - Add ability to edit SplineComponent in BP editor (not just instance in level)
#jira UE-13082 - Users would like a snapping feature for splines
#jira UE-13568 - Additional Spline Component Functionality
#jira UE-17822 - It would be useful to be able to update a bp spline layout from the editor viewport.
Change 3057895 on 2016/07/20 by Richard.TalbotWatkin
Mesh paint bugfixes and improvements.
Changes to RerunConstructionScript so that OnObjectsReplaced is called correctly on all components, whether they have been created by the SCS or the UCS. Previously, components created by the UCS were not being handled, and components created by the SCS were not always being matched. Now a serialized index is maintained for UCS-created objects, which is matched after the construction scripts have been executed.
This will fix issues with the mesh paint tool, and any other editor tool which hooks into the OnObjectsReplaced callback in order to update its internal cache of component pointers, for example, the component visualizer render list.
#jira UE-33010 - Crash changing mesh paint material in blueprint, then changing to a different mode tab
#jira UE-32279 - Editor crashes when reselecting a mesh in paint mode
#jira UE-31763 - [CrashReport] UE4Editor_MeshPaint!FMulticastDelegateBase<FWeakObjectPtr>::RemoveAll() [multicastdelegatebase.h:75]
#jira UE-30661 - Vertex Painting changes collision complexity if the asset is saved while vertex painting
Change 3057966 on 2016/07/20 by Richard.TalbotWatkin
Renamed IsEditingArchetype to IsVisualizingArchetype in the ComponentVisualizer API.
#jira UE-33049 - Transform widget visible in blueprint viewport when editing spline points in editor viewport
Change 3058009 on 2016/07/20 by Richard.TalbotWatkin
Fixed build failure due to changes to FComponentVisualizer API, as of CL 3057868.
Change 3058047 on 2016/07/20 by Stephan.Jiang
Fixing error on previous CL: 3056758
(extra qualification)
Change 3058266 on 2016/07/20 by Nick.Darnell
Automation - Work continues on automation integrating some ideas form a licensee. Continuing to work on the usability aspects, I've made it possible for tests to provide custom open commands, as well as have complex subclasses that do different things. The functional tests now have a custom open command they emit that makes it so clicking on a test opens not the C++ location where the functional test macro lives, but instead the map, AND focuses the functional test actor.
Change 3058282 on 2016/07/20 by Matt.Kuhlenschmidt
PR #2611: Fix spurious component diff when properties are in subcategories (Contributed by CA-ADuran)
Change 3059214 on 2016/07/21 by Richard.TalbotWatkin
Further fixes to visualizers following Component Visualizer API change.
Change 3059260 on 2016/07/21 by Richard.TalbotWatkin
Template specialization not allowed in class scope, but Visual Studio allows it anyway. Fixed for clang.
Change 3059543 on 2016/07/21 by Stephan.Jiang
Changeing level details icon
Change 3059732 on 2016/07/21 by Stephan.Jiang
Directional Light icon update
Change 3060095 on 2016/07/21 by Stephan.Jiang
Directional Light editor icon asset changed
Change 3060129 on 2016/07/21 by Nick.Darnell
Automation - The session browser now attempts to select the app instance if no other thing is selected when it refreshes. This is to try and make it easier to use when you first bring it up and nothing is selected when most of the time you're going to use it on your own instance.
Change 3061735 on 2016/07/22 by Stephan.Jiang
Improve UMG replace with in HierarchyView function
#UE-33582
Change 3062059 on 2016/07/22 by Stephan.Jiang
Strip off "b" in propertyname in replace with function for tracks.
Change 3062146 on 2016/07/22 by Stephan.Jiang
checkin with CL: 3061735
Change 3062182 on 2016/07/22 by Stephan.Jiang
Change both animation bindings' widget name when renameing the widget so the slot content is still valid
Change 3062257 on 2016/07/22 by Stephan.Jiang
comments
Change 3062381 on 2016/07/22 by Nick.Darnell
Build - Adding #undef LOCTEXT_NAMESPACE to try and fix the build.
Change 3062924 on 2016/07/25 by Chris.Wood
Fix a crash in CrashReportClient that happens when the CrashReportReceiver is not responding to pings and there are no PendingReportDirectories.
This is a change in the UE4 stream depot based on a fix in the Fortnite stream depot -> JIRA FORT-27570
Change 3063017 on 2016/07/25 by Matt.Kuhlenschmidt
PR #2618: DebuggerCommand not recording PlayLocationString (Contributed by ungalyant)
Change 3063021 on 2016/07/25 by Matt.Kuhlenschmidt
PR #2619: added a search box to ModuleUI (Contributed by straymist)
Change 3063084 on 2016/07/25 by Matt.Kuhlenschmidt
Fix "YesToAll" when deleting referenced actors overriding the "YesToAll" state for other referenced messages.
https://jira.ol.epicgames.net/browse/UE-33651
#jira UE-33651
Change 3063091 on 2016/07/25 by Alex.Delesky
#jira UE-32949 - Truncating the hue inside the theme color block tooltip to only display whole numbers, to match how the color picker displays the hue value inside the hue scrubber.
Change 3063388 on 2016/07/25 by Matt.Kuhlenschmidt
Selection Perf:
- Fix large FName creation time when selecting thousands of objects
Change 3063568 on 2016/07/25 by Matt.Kuhlenschmidt
Selection Perf:
- Modified how USelection stores classes. Classes are now in a TSet and can be accessed efficiently using IsClassSelected. The old unused way of checking if a selection has a class by iterating through them is deprecated
- USelection no longer directly checks if an item is already selected with a costly n^2 search. The check is done by using the already existing UObject selected annotation
- Object property nodes no longer perform an n^2 check for object uniqueness when objects are added to details panels. This is now left up to the caller to avoid
- Eliminated useless work on FObjectPropertyNode::GetReadAddressUncached. If a read address list is not passed in we'll not attempt to the work to populate it
- Removed expensive checking for brush actors when any actor is selected
Change 3063749 on 2016/07/25 by Stephan.Jiang
Disallow naming the widgetanimation to the same name with a override function in uuserwidget, because it will trigger a breakpoint in Rename()
#jira UE-33711
Change 3064585 on 2016/07/26 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3064612 on 2016/07/26 by Alex.Delesky
#jira UE-33712 - Deleting many assets at once will now batch SourceControl commands rather than executing one for each asset.
Change 3064647 on 2016/07/26 by Alexis.Matte
#jira UE-33274 dont hash the same file over and over when importing multiple asset from one fbx file.
Change 3064739 on 2016/07/26 by Matt.Kuhlenschmidt
Fixed typo
Change 3064795 on 2016/07/26 by Jamie.Dale
Fixed typo in FLocalizationModule::GetLocalizationTargetByName
#jira UE-32961
Change 3066461 on 2016/07/27 by Jamie.Dale
Enabled stable localization keys
Change 3066463 on 2016/07/27 by Jamie.Dale
Set "Build Engine Localization" to upload all cultures to ensure we don't lose translation due to the archive keying changes
Change 3066467 on 2016/07/27 by Jamie.Dale
Updated internationalization archives to store translations per-identity
This allows translators to translate each instance of a piece of text based upon their context, rather than requiring a content producer to go back and give the entry a unique namespace. It also allows us to optionally compile out-of-date translations, as they are now mapped to their source identity (namespace + key) rather than their source text.
Major changes:
- Added FLocTextHelper. This acts as a high-level API for uncompiled localized text, and replaces all the old ad-hoc loading/saving of manifests and archives, ensuring that everything is consistently using source control, and that older archives can be upgraded correctly to the new format. It also takes care of some of the quirks of our archives, such as native translations. All major localization commandlets have been updated to use FLocTextHelper.
- Moved FTextLocalizationResourceGenerator from Core to Internationalization. This also allows IJsonInternationalizationManifestSerializer and IJsonInternationalizationArchiveSerializer to be removed, and for FJsonInternationalizationManifestSerializer and FJsonInternationalizationArchiveSerializer to have all their functions become static.
- FTextLocalizationResourceGenerator being moved from Core meant that FTextLocalizationManager::LoadFromManifestAndArchives was also removed. This functionality is now handled by FTextLocalizationResourceGenerator::GenerateAndUpdateLiveEntriesFromConfig.
- The RepairLocalizationData commandlet has been removed. This existed to fix a change that pre-dated 4.0 so no such data should exist in the wild, and the commandlet couldn't be updated to work with the new API (we handle format upgrades in-place now).
- Removed FInternationalizationArchive::FindEntryBySource as it is no-longer safe to use. All existing code has been updated to use FInternationalizationArchive::FindEntryByKey instead.
Workflow changes:
- Archive conditioning now only adds new entries if they don't exist in the archive. This allows us to persist any existing translations, even if they're for old source text (caveat: native archives still update existing entries if the source is changed).
- PO export now sets the msgctx for each entry to be "namespace,key", rather than only doing it when the entry had key meta-data.
- PO import will now update both the source and translation stored in the archive to match the current PO data. This is the primary method by which stale source->translation pairs are updated.
- LocRes compilation may now optionally compile stale translations. There's an option controlling this (defaulted to off) that can be changed via the Localization Dashboard (or added to an existing config file).
Format changes:
- The archive version was bumped to 2.
- Archive entries now use the "Key" entry to store the key from the source text. Previously this "Key" entry was used to store the key meta-data, but that now exists within a "MetaData" sub-object. Loading handles this correctly based upon the archive version.
#jira UETOOL-897
#jira UETOOL-898
#jira UE-29481
Change 3066487 on 2016/07/27 by Matt.Kuhlenschmidt
Attempt to fix linux compilation
Change 3066504 on 2016/07/27 by Matt.Kuhlenschmidt
Fixed data tables with structs crashing due to recent editor selection optimizations
Change 3066886 on 2016/07/27 by Jamie.Dale
Added required data to accurately detect TZ (needed for DST)
#jira UE-28511
Change 3067122 on 2016/07/27 by Jamie.Dale
Added AsTime, AsDateTime, and AsDate overrides to BP to let you format a UTC time in a given timezone (default is the local timezone).
Previously you could only format times using the "invariant" timezone, which assumed that the time was already specified in the correct timezone for display.
Change 3067227 on 2016/07/27 by Jamie.Dale
Added a test to verify that the ICU timezone is set correctly to produce local time (including DST)
Change 3067313 on 2016/07/27 by Richard.TalbotWatkin
Fixed SplineComponent constructor so that old assets (prior to the property changes) load correctly if they had properties at default values.
#jira UE-33669 - Crash in Dev-Editor
Change 3067736 on 2016/07/27 by Stephan.Jiang
Border changes for experimental classes warning
Change 3067769 on 2016/07/27 by Stephan.Jiang
HERE BE DRAGONS
for experimental class warning
#UE-33780
Change 3068192 on 2016/07/28 by Alexis.Matte
#jira UE-33586 make sure we remove any false warning when running fbx automation test.
Change 3068264 on 2016/07/28 by Jamie.Dale
Removed some code that was no longer needed and could cause a crash
#jira UE-33342
Change 3068293 on 2016/07/28 by Alex.Delesky
#jira UE-33620 - Comments on constant and parameter nodes in the Material Editor will now persist when converting them.
Change 3068481 on 2016/07/28 by Stephan.Jiang
Adding Options to show/hide soft & hard references & dependencies in References Viewer
#jira UE-33746
Change 3068585 on 2016/07/28 by Richard.TalbotWatkin
Fix to Spline Mesh collision building so that geometry does not default to being auto-inflated in PhysX.
Change 3068701 on 2016/07/28 by Matt.Kuhlenschmidt
Fixed some issues with the selected classes not updating when objects are deselected
Change 3069335 on 2016/07/28 by Jamie.Dale
Fixed unintended error when trying to load a manifest/archive that didn't exist
Fixed a warning when trying to load a PO file that didn't exist
Change 3069408 on 2016/07/28 by Alex.Delesky
#jira UE-33429 - The editor should no longer hit an ensure if the user attempts to drop a tab into a tab well before the tab well has a chance to acknowledge its been dragged into a tab well.
Change 3069878 on 2016/07/29 by Jamie.Dale
Fixed include casing
#jira UE-33910
Change 3071807 on 2016/08/01 by Matt.Kuhlenschmidt
PR #2654: Fix the spell'ing of "diff'ing" and "diff'd". (Contributed by geary)
Change 3071813 on 2016/08/01 by Jamie.Dale
Fixed include casing
#jira UE-33936
Change 3072043 on 2016/08/01 by Jamie.Dale
Fixed FText formatting of pre-Gregorian dates
We now convert to an ICU UDate via an ICU GregorianCalendar, as UE4 and ICU have a different time scale for pre-Gregorian dates.
#jira UE-14504
Change 3072066 on 2016/08/01 by Jamie.Dale
PR #2590: FEATURE: Collapse/expand folders in the outliner (Contributed by projectgheist)
Change 3072149 on 2016/08/01 by Jamie.Dale
We no longer use the editor culture when running with -game
Change 3072169 on 2016/08/01 by Richard.TalbotWatkin
A couple of changes to the BSP code:
* Fixed longstanding issue where sometimes BSP geometry is not rebuilt correctly after editing it. This was due to poly normals not being recalculated after translating vertices in Geometry Mode.
* Fixed corruption to FPoly::iLink as it is overloaded to have two meanings: when building BSP, it represents the surface index of the next coplanar surface (and adding a new BSP node uses this to determine whether a new surface needs to be added or not). In other operations it represents an FPoly index, in general this is used more in editor geometry operations. This fixes various crashes which arose from rebuilding BSP resulting in invalid FPoly indices.
#jira UE-12157 - BSP brushes break when non-standard subtractive bsp brushes are used
#jira UE-32087 - Crash occurs when creating Static Mesh from Trigger Volume
Change 3072221 on 2016/08/01 by Jamie.Dale
Fixed "Launch On" not providing the correct cultures to StartCookByTheBookInEditor
#jira UE-33001
Change 3073389 on 2016/08/02 by Matt.Kuhlenschmidt
Added ability to vsync the editor. Disabled by default. Set r.VSyncEditor to 1 to enable it.
Reimplemented this change from the siggraph demo stream
Change 3073396 on 2016/08/02 by Matt.Kuhlenschmidt
Removed unused code as suggested by a pull request
Change 3073750 on 2016/08/02 by Richard.TalbotWatkin
Fixed formatting (broken in CL 3057895) in anticipation of merge from Main.
Change 3073789 on 2016/08/02 by Jamie.Dale
Added a way to mark text in text properties as culture invariant
This allows you to flag properties containing text that doesn't need to be gathered.
#jira UE-33713
Change 3073825 on 2016/08/02 by Stephan.Jiang
Material Editor: Highligh all Nodes connect to an input.
#jira UE-32502
Change 3073947 on 2016/08/02 by Stephan.Jiang
UMG Project settings to show/hide different classes and categories in Palette view.
--under Project Settings ->Editor->UMG Editor
Change 3074012 on 2016/08/02 by Stephan.Jiang
Minor changes and comments for CL: 3073947
Change 3074029 on 2016/08/02 by Jamie.Dale
Deleting folders in the Content Browser now removes the folder from disk
#jira UE-24303
Change 3074054 on 2016/08/02 by Matt.Kuhlenschmidt
Added missing stats to track pooled vertex and index buffer cpu memory
A new slate allocator was added to track memory usage for this case.
Change 3074056 on 2016/08/02 by Matt.Kuhlenschmidt
Renamed a few slate stats for consistency
Change 3074810 on 2016/08/02 by Matt.Kuhlenschmidt
Moved geometry cache asset type to the animation category. It is not a basic asset type
Change 3074826 on 2016/08/02 by Matt.Kuhlenschmidt
Fix a few padding and sizing issues
Change 3075322 on 2016/08/03 by Matt.Kuhlenschmidt
Settings UI improvements
* Added the ability to search through all settings at once
* Settings files which are not checked out are no longer grayed out. The editor now attempts to check out the file automatically if connected to source control and if that fails it marks the settings file writiable so it can save the setting properly
-------
* This change adds a refactor to the details panel to support multiple top level objects existing in the details panel at once instead of combining all passed in objects to a single common base class. This is disabled by default but can be turned on setting bAllowMultipleTopLevelObjects to true in FDetailsViewArgs when creating a details panel.
* Each top level object in a details panel will get their own customization instance. This made it necessary to deprecate a IDetailsView::GetBaseClass since there is no longer guaranteed to be one base class.
*Details panels can have their own customization for each "root object header" in order to customize the look of having multiple top level objects in the details panel.
Change 3075369 on 2016/08/03 by Matt.Kuhlenschmidt
Removed FBX scene as a top level option in asset filter menu in the content browser.
Change 3075556 on 2016/08/03 by Matt.Kuhlenschmidt
Mac warning fix
Change 3075603 on 2016/08/03 by Nick.Darnell
Adding two new plugins to engine, one for editor and one for runtime based testing. Currently the only consumer of these plugins is going to be the EngineTest project.
Change 3075605 on 2016/08/03 by Nick.Darnell
Functional Testing - Continued work on cleanup, reorganization, trying to improve the workflow for using the session browser.
Change 3076084 on 2016/08/03 by Jamie.Dale
Added basic support for localizing plugins
You can now localize plugins! There's no localization dashboard integration for this so it has to be done manually.
You need to define the localization targets your plugin uses in its .uplugin file, eg)
"LocalizationTargets": [
{
"Name": "Paper2D",
"LoadingPolicy": "Always"
}
]
"Name" should match a localization config under the Config/Localization folder for your plugin. These configs are set-up the same as any other localization config.
"LoadingPolicy" may be one of Never, Always, Editor, Game, PropertyNames, or ToolTips. This allows you to control under what conditions your localizations should be loaded (eg, if your plugin has both game and editor data, you can separate the editor data off into its own localization target that's only loaded by the editor).
UAT has been updated to support gathering from plugins. You can use the "IncludePlugins" flag to have it gather all plugins, or you can specify a whitelist of plugins to gather as an argument to "IncludePlugins", or alternatively, may blacklist certain plugins via "ExcludePlugins". It can now also support out-of-source gathering via the "UEProjectRoot" argument (previously it assumed that everything would be under the UE4 install/checkout directory).
UAT has been updated to support staging plugin LocRes files. It will stage any plugin targets that are enabled for a game/client build, and are also from a plugin that's enabled for your project.
#jira UE-4217
Change 3076123 on 2016/08/03 by Stephan.Jiang
Extend "Select all input nodes" function to general blueprint editor
Change 3077103 on 2016/08/04 by Jamie.Dale
Added support for underlined text rendering (including with drop-shadows)
FTextBlockStyle can now specify a brush to use to draw an underline for text (a suitable default would be "DefaultTextUnderline" from FCoreStyle). When a brush is specified here, we inject FSlateTextUnderlineLineHighlighter highlights into the text layout to draw the underline under the relevant pieces of text, using the correct color, position, and thickness.
FSlateFontCache::GetUnderlineMetrics and FSlateFontRenderer::GetUnderlineMetrics have been added to handle getting the underline metrics (which are slightly different to the baseline).
This change also adds FTextLayout::RemoveRunRenderer and FTextLayout::RemoveLineHighlight to fix some bad assumptions that FSlateEditableTextLayout and FTextBlockLayout were making about ownership of run renderers and line highlighters that could cause them to remove instances they didn't own (such as the new underline highlighter) when updating things like the cursor position or highlight.
Change 3077842 on 2016/08/04 by Jamie.Dale
Fixed fallout from API changes
Change 3077999 on 2016/08/04 by Jamie.Dale
Ensured that BULKDATA_SingleUse is only set by UFontBulkData::Serialize when loading
This prevents it being incorrectly set by other operations, such as counting memory used by font data.
#jira UE-34252
Change 3078000 on 2016/08/04 by Trung.Le
Categories VREditor-specific UMG widget assets as "VR Editor"
#jira UE-34134
Change 3078056 on 2016/08/04 by Nick.Darnell
Build - Fixing a mac compiler warning, reodering constructor initializers.
Change 3078813 on 2016/08/05 by Nick.Darnell
Reorganizing editor tests, establishing plugins in the EditorTest project that will house the tests.
Change 3078818 on 2016/08/05 by Nick.Darnell
Additional rename and cleanup associated with test moving.
Change 3078819 on 2016/08/05 by Nick.Darnell
Removing the Oculus performance automation test, not running, and was unclaimed.
Change 3078842 on 2016/08/05 by Nick.Darnell
Continued reorganizing tests.
Change 3078897 on 2016/08/05 by Nick.Darnell
Additional changes to get some moved tests compiling
Change 3079157 on 2016/08/05 by Nick.Darnell
Making it possible to browse provider names thorugh the source control module interface.
Change 3079176 on 2016/08/05 by Stephan.Jiang
Add shortcut Ctrl+Shift+Space to rotate through different viewport options
#jira UE-34140
Change 3079208 on 2016/08/05 by Stephan.Jiang
Fix new animation name check in UMG
Change 3079278 on 2016/08/05 by Nick.Darnell
Fixing the build
Change 3080555 on 2016/08/08 by Matt.Kuhlenschmidt
Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
Change 3081155 on 2016/08/08 by Nick.Darnell
Fixing some issues with the editor tests / runtime tests under certain build configs.
Change 3081243 on 2016/08/08 by Stephan.Jiang
Add gesture in LevelViewport to switch between Top/Bottom...etc.
Change 3082226 on 2016/08/09 by Matt.Kuhlenschmidt
Work around animations not playing in paragon due to bsp rebuilds (UE-34391)
Change 3082254 on 2016/08/09 by Stephan.Jiang
DragTool_ViewportChange init changes
[CL 3082411 by Matt Kuhlenschmidt in Main branch]
2016-08-09 11:28:56 -04:00
auto * Info = new FNotificationInfo ( FText : : Format ( LOCTEXT ( " FileNotFound " , " Could not find code file, {0} " ) , FText : : FromString ( Filename ) ) ) ;
2014-03-14 14:13:41 -04:00
Info - > ExpireDuration = 3.0f ;
FSlateNotificationManager : : Get ( ) . QueueNotification ( Info ) ;
}
# undef LOCTEXT_NAMESPACE
IMPLEMENT_MODULE ( FMainFrameModule , MainFrame ) ;