2016-12-08 08:52:44 -05:00
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
2014-06-24 12:11:51 -04:00
# include "EditorLiveStreaming.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/Application/SlateApplication.h"
# include "Widgets/Images/SImage.h"
# include "Settings/EditorExperimentalSettings.h"
# include "Engine/Texture2D.h"
2014-06-24 12:11:51 -04:00
# include "EditorLiveStreamingSettings.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 "Features/IModularFeatures.h"
# include "Features/ILiveStreamingService.h"
# include "Interfaces/IMainFrameModule.h"
2014-06-24 12:11:51 -04:00
# include "Runtime/GameLiveStreaming/Public/IGameLiveStreaming.h"
2014-10-27 07:53:18 -04:00
# include "ISettingsModule.h"
Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3209340 on 2016/11/23 by Ben.Marsh
Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.
Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.
* Every header now includes everything it needs to compile.
* There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
* There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
* Every .cpp file includes its matching .h file first.
* This helps validate that each header is including everything it needs to compile.
* No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
* You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
* There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
* No engine code explicitly includes a precompiled header any more.
* We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
* PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.
Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.
[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
# include "Framework/Notifications/NotificationManager.h"
# include "Widgets/Notifications/SNotificationList.h"
2014-06-24 12:11:51 -04:00
2014-10-27 07:53:18 -04:00
2014-06-24 13:47:05 -04:00
IMPLEMENT_MODULE ( FEditorLiveStreaming , EditorLiveStreaming ) ;
2014-06-24 12:11:51 -04:00
# define LOCTEXT_NAMESPACE "EditorLiveStreaming"
2014-10-27 07:53:18 -04:00
2014-06-24 12:11:51 -04:00
FEditorLiveStreaming : : FEditorLiveStreaming ( )
: bIsBroadcasting ( false ) ,
LiveStreamer ( nullptr ) ,
SubmittedVideoFrameCount ( 0 ) ,
ReadbackBufferIndex ( 0 )
{
Copying //UE4/Dev-Editor to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2756103 on 2015/11/05 by Jamie.Dale
Implemented UFont::GetResourceSize to work correctly with the Size Map tool
Change 2756104 on 2015/11/05 by Jamie.Dale
Changed the font used when a font is missing or invalid to be the last resort font, rather than the localized fallback font
The localized fallback font could cause different results based on your culture, and the last resort font makes it clearer that something is set-up incorrectly as it just draws invalid glyph markers for all of the text.
Change 2756105 on 2015/11/05 by Jamie.Dale
Fixed a crash when using an empty FKey property with a Data Table
FKeyStructCustomization was asserting because there were no objects being edited, due to a newly added Data Table containing zero rows.
I've removed this assert, and also updated SKeySelector to no longer require a separate argument to say whether multiple keys with different values are selected (this is now calculated from the call to get the current key, which will return an empty TOptional for multiple values).
#jira UE-22897
Change 2757015 on 2015/11/06 by Joe.Tidmarsh
SSProgressBar marquee tint. Accounts for widget color and opacity.
PR #1698
Change 2757156 on 2015/11/06 by Joe.Tidmarsh
Implemented "Go to Variable" functionality for widgets in Widget Blueprint Editor.
When we switch modes in UMG from Designer to Graph. We select the variable (In "My Blueprint"), if one exists, for the currently selected widget. Additionally we update the details panel.
* Added SelectGraphActionItemByName to FBlueprintEditor. This selects an item in My Blueprint and also displays it in the details panel of graph mode. SMyBlueprint is not available to FWidgetBlueprintEditor in UMGEditor module as it's privately implemented within Kismet.
#rb Ben.Cosh
#jira UE-20170
Change 2757181 on 2015/11/06 by Jamie.Dale
Cleaned up some duplication in UMG text widgets, and exposed the text shaping options
The common properties used by all text widgets that are text layout based have been moved into a UTextLayoutWidget base class, and all text layout based widgets now derive from this.
The options needed to control the text shaping method used by a text based widget have been exposed via the FShapedTextOptions struct. This contains a way to manage these optional (and advanced) overrides. You typically wouldn't change these from the default unless you knew exactly what you were doing (eg, you have a text block containing only numbers).
This change also updates SRichTextBlock to work with an invalidation panel in the same way that STextBlock does
Change 2757734 on 2015/11/06 by David.Nikdel
#UE4 #Editor
- Added support for meta=(TitleProperty="StructPropertyNameHere") on properties of type TArray<FSomeStruct>.
- This changes the editor rolled-up display of these values from "{0} members" to a stringified version of the specified property (if found).
#CodeReview: Matt.Kuhlenschmidt
Change 2758786 on 2015/11/09 by Joe.Tidmarsh
Border widget now correctly synchronizes padding property
#jira UE-23070
Change 2758791 on 2015/11/09 by Joe.Tidmarsh
Shadow of FCanvasTextItem should be drawn before the outline color. Consulted with Bruce.N who believes this is not the intended behavior and was an oversight when refactoring FCanvas (CL 1695138)
#jira UE-21623
#1608
#rb Simon.Tovey, Bruce.Nesbit
Change 2758813 on 2015/11/09 by Joe.Tidmarsh
UMG: Attempting to parent multiple widgets (in Hierarchy tree) to a widget that can't have multiple children will notify the user and ignore the operation.
[UE-22921] [CrashReport] Parenting multiple actors under border crashes editor
#jira UE-22921
Change 2759234 on 2015/11/09 by Nick.Darnell
Slate - Improving the way we track references to materials in slate to better keep things alive until they're no longer needed for rendering. Additionally, making it so the we use the material and texture free list when possible when cleaning up things as to not allocate new memory if not required. Concidentually this can help with problems with corrupted memory on destruct as well, because it means the memory isn't really going to become garbage any more.
#codereview Matt.Kuhlenschmidt, Bob.Tellez
Change 2760954 on 2015/11/10 by Nick.Darnell
Slate - A bug in the introduction of custom rendered elements accidentally broke filling out the texture coordinates for standard material usage. Materials should once again tile correctly just like images do.
#jira UE-23118
Change 2761129 on 2015/11/10 by Nick.Darnell
Slate - Removing the Pre-Multiply alpha path the way it was added, introducing it in a way that doesn't require changes inside the shader. Continuing to improve the SRetainerWidget to no longer have a frame delay between resizes and painting, also working on getting it handle clipping correctly but still not there yet.
Change 2761391 on 2015/11/10 by Alexis.Matte
jira UE-20281 and UE-22259
Fbx scene Re-import workflow
- First draft of the reimport workflow using a reimport asset in the content browser
#codereview nick.darnell
Change 2762323 on 2015/11/11 by Alexis.Matte
fix build compilation
Change 2762407 on 2015/11/11 by Jamie.Dale
UDataTable::SaveStructData now writes out dummy data when RowStruct is null
This didn't used to happen, which would cause a miss-match between what UDataTable::LoadStructData was expecting, and would result in a Data Table that could never be loaded again.
This change also improves the error message when editing a Data Table with a null row struct, and adds the editor-only RowStructName property to cache the name of the last used struct (for error reporting).
#jira UE-22789
Change 2762508 on 2015/11/11 by Nick.Darnell
UMG - Making it more obvious what keys do special stuff with anchors in UMG. Fixing the way snapping to anchors works with Control, it now only zeros out the side you're dragging instead of the entire widget, which was silly. Enhancing the designer message system to no longer be based on an enum and instead let arbitrary systems push and pop FText messages. Fixing animations in the anchor drop down to properly animate, broke when we introduced active timers.
Change 2763241 on 2015/11/11 by Nick.Darnell
Slate - We no longer allow popup windows to be larger than the primary display window for windows where max width/height is unspecified. This is to prevent accidential creation of tooltip windows that are larger than the driver allows causing crashes.
#jira UE-20336
2015-12-12 08:54:23 -05:00
ReadbackBuffers [ 0 ] . Reset ( ) ;
ReadbackBuffers [ 1 ] . Reset ( ) ;
2014-06-24 12:11:51 -04:00
}
void FEditorLiveStreaming : : StartupModule ( )
{
// Register settings
2014-10-27 07:53:18 -04:00
ISettingsModule * SettingsModule = FModuleManager : : GetModulePtr < ISettingsModule > ( " Settings " ) ;
2014-06-24 12:11:51 -04:00
if ( ensure ( SettingsModule ! = nullptr ) )
{
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
SettingsModule - > RegisterSettings ( " Editor " , " Advanced " , " EditorLiveStreaming " ,
2014-06-24 12:11:51 -04:00
LOCTEXT ( " EditorLiveStreamingSettingsName " , " Live Streaming " ) ,
LOCTEXT ( " EditorLiveStreamingSettingsDescription " , " Settings for broadcasting live from the editor " ) ,
GetMutableDefault < UEditorLiveStreamingSettings > ( )
) ;
}
}
void FEditorLiveStreaming : : ShutdownModule ( )
{
// Unregister settings
2014-10-27 07:53:18 -04:00
ISettingsModule * SettingsModule = FModuleManager : : GetModulePtr < ISettingsModule > ( " Settings " ) ;
2014-06-24 12:11:51 -04:00
if ( SettingsModule ! = nullptr )
{
SettingsModule - > UnregisterSettings ( " Editor " , " General " , " EditorLiveStreaming " ) ;
}
}
bool FEditorLiveStreaming : : IsLiveStreamingAvailable ( ) const
{
bool bIsAvailable = false ;
2015-10-06 15:59:09 -04:00
// This feature is currently "experimental" and disabled by default, even if you have a valid live streaming plugin installed
if ( GetDefault < UEditorExperimentalSettings > ( ) - > bLiveStreamingFromEditor )
2014-06-24 12:11:51 -04:00
{
2015-10-06 15:59:09 -04:00
// We are not available if the game is already streaming
if ( ! IGameLiveStreaming : : Get ( ) . IsBroadcastingGame ( ) )
2014-06-24 12:11:51 -04:00
{
2015-10-06 15:59:09 -04:00
static const FName LiveStreamingFeatureName ( " LiveStreaming " ) ;
if ( IModularFeatures : : Get ( ) . IsModularFeatureAvailable ( LiveStreamingFeatureName ) )
{
// Only if not already broadcasting
bIsAvailable = true ;
}
2014-06-24 12:11:51 -04:00
}
}
2015-10-06 15:59:09 -04:00
2014-06-24 12:11:51 -04:00
return bIsAvailable ;
}
bool FEditorLiveStreaming : : IsBroadcastingEditor ( ) const
{
return bIsBroadcasting ;
}
void FEditorLiveStreaming : : StartBroadcastingEditor ( )
{
if ( ! IsBroadcastingEditor ( ) & & IsLiveStreamingAvailable ( ) )
{
// Select a live streaming service
{
static const FName LiveStreamingFeatureName ( " LiveStreaming " ) ;
2014-07-02 11:33:24 -04:00
LiveStreamer = & IModularFeatures : : Get ( ) . GetModularFeature < ILiveStreamingService > ( LiveStreamingFeatureName ) ;
2014-06-24 12:11:51 -04:00
}
// Register to find out about status changes
LiveStreamer - > OnStatusChanged ( ) . AddRaw ( this , & FEditorLiveStreaming : : BroadcastStatusCallback ) ;
2014-07-02 11:33:24 -04:00
// @todo livestream: Allow connection to chat independently from broadcasting? (see removing delegate too)
LiveStreamer - > OnChatMessage ( ) . AddRaw ( this , & FEditorLiveStreaming : : OnChatMessage ) ;
2014-06-24 12:11:51 -04:00
// Tell our live streaming plugin to start broadcasting
{
const auto & Settings = * GetDefault < UEditorLiveStreamingSettings > ( ) ;
FSlateRenderer * SlateRenderer = FSlateApplication : : Get ( ) . GetRenderer ( ) . Get ( ) ;
const FIntRect VirtualScreen = SlateRenderer - > SetupVirtualScreenBuffer ( Settings . bPrimaryMonitorOnly , Settings . ScreenScaling , LiveStreamer ) ;
bIsBroadcasting = true ;
SubmittedVideoFrameCount = 0 ;
// @todo livestream: What about if virtual screen size changes while we are still broadcasting? For example, if the user changes their
// desktop resolution while the editor is running. We'd need to stop and restart the broadcast.
FBroadcastConfig BroadcastConfig ;
BroadcastConfig . VideoBufferWidth = VirtualScreen . Width ( ) ;
BroadcastConfig . VideoBufferHeight = VirtualScreen . Height ( ) ;
BroadcastConfig . FramesPerSecond = Settings . FrameRate ;
BroadcastConfig . PixelFormat = FBroadcastConfig : : EBroadcastPixelFormat : : R8G8B8A8 ;
BroadcastConfig . bCaptureAudioFromComputer = Settings . bCaptureAudioFromComputer ;
BroadcastConfig . bCaptureAudioFromMicrophone = Settings . bCaptureAudioFromMicrophone ;
LiveStreamer - > StartBroadcasting ( BroadcastConfig ) ;
if ( Settings . bEnableWebCam )
{
FWebCamConfig WebCamConfig ;
switch ( Settings . WebCamResolution )
{
case EEditorLiveStreamingWebCamResolution : : Normal_320x240 :
WebCamConfig . DesiredWebCamWidth = 320 ;
WebCamConfig . DesiredWebCamHeight = 240 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_320x180 :
WebCamConfig . DesiredWebCamWidth = 320 ;
WebCamConfig . DesiredWebCamHeight = 180 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_640x480 :
WebCamConfig . DesiredWebCamWidth = 640 ;
WebCamConfig . DesiredWebCamHeight = 480 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_640x360 :
WebCamConfig . DesiredWebCamWidth = 640 ;
WebCamConfig . DesiredWebCamHeight = 360 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_800x600 :
WebCamConfig . DesiredWebCamWidth = 800 ;
WebCamConfig . DesiredWebCamHeight = 600 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_800x450 :
WebCamConfig . DesiredWebCamWidth = 800 ;
WebCamConfig . DesiredWebCamHeight = 450 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_1024x768 :
WebCamConfig . DesiredWebCamWidth = 1024 ;
WebCamConfig . DesiredWebCamHeight = 768 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_1024x576 :
WebCamConfig . DesiredWebCamWidth = 1024 ;
WebCamConfig . DesiredWebCamHeight = 576 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_1080x810 :
WebCamConfig . DesiredWebCamWidth = 1080 ;
WebCamConfig . DesiredWebCamHeight = 810 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_1080x720 :
WebCamConfig . DesiredWebCamWidth = 1080 ;
WebCamConfig . DesiredWebCamHeight = 720 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_1280x960 :
WebCamConfig . DesiredWebCamWidth = 1280 ;
WebCamConfig . DesiredWebCamHeight = 960 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_1280x720 :
WebCamConfig . DesiredWebCamWidth = 1280 ;
WebCamConfig . DesiredWebCamHeight = 720 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Normal_1920x1440 :
WebCamConfig . DesiredWebCamWidth = 1920 ;
WebCamConfig . DesiredWebCamHeight = 1440 ;
break ;
case EEditorLiveStreamingWebCamResolution : : Wide_1920x1080 :
WebCamConfig . DesiredWebCamWidth = 1920 ;
WebCamConfig . DesiredWebCamHeight = 1080 ;
break ;
default :
check ( 0 ) ;
break ;
}
// @todo livestream: Allow web cam to be started/stopped independently from the broadcast itself, so users can setup their web cam
LiveStreamer - > StartWebCam ( WebCamConfig ) ;
}
}
}
}
void FEditorLiveStreaming : : StopBroadcastingEditor ( )
{
if ( IsBroadcastingEditor ( ) )
{
CloseBroadcastStatusWindow ( ) ;
LiveStreamer - > StopWebCam ( ) ;
LiveStreamer - > StopBroadcasting ( ) ;
// Unregister for status changes
LiveStreamer - > OnStatusChanged ( ) . RemoveAll ( this ) ;
2014-07-02 11:33:24 -04:00
LiveStreamer - > OnChatMessage ( ) . RemoveAll ( this ) ;
2014-06-24 12:11:51 -04:00
LiveStreamer = nullptr ;
// Tell our notification to start expiring
TSharedPtr < SNotificationItem > Notification ( NotificationWeakPtr . Pin ( ) ) ;
if ( Notification . IsValid ( ) )
{
Notification - > ExpireAndFadeout ( ) ;
}
bIsBroadcasting = false ;
for ( int32 BufferIndex = 0 ; BufferIndex < 2 ; + + BufferIndex )
{
Copying //UE4/Dev-Editor to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2756103 on 2015/11/05 by Jamie.Dale
Implemented UFont::GetResourceSize to work correctly with the Size Map tool
Change 2756104 on 2015/11/05 by Jamie.Dale
Changed the font used when a font is missing or invalid to be the last resort font, rather than the localized fallback font
The localized fallback font could cause different results based on your culture, and the last resort font makes it clearer that something is set-up incorrectly as it just draws invalid glyph markers for all of the text.
Change 2756105 on 2015/11/05 by Jamie.Dale
Fixed a crash when using an empty FKey property with a Data Table
FKeyStructCustomization was asserting because there were no objects being edited, due to a newly added Data Table containing zero rows.
I've removed this assert, and also updated SKeySelector to no longer require a separate argument to say whether multiple keys with different values are selected (this is now calculated from the call to get the current key, which will return an empty TOptional for multiple values).
#jira UE-22897
Change 2757015 on 2015/11/06 by Joe.Tidmarsh
SSProgressBar marquee tint. Accounts for widget color and opacity.
PR #1698
Change 2757156 on 2015/11/06 by Joe.Tidmarsh
Implemented "Go to Variable" functionality for widgets in Widget Blueprint Editor.
When we switch modes in UMG from Designer to Graph. We select the variable (In "My Blueprint"), if one exists, for the currently selected widget. Additionally we update the details panel.
* Added SelectGraphActionItemByName to FBlueprintEditor. This selects an item in My Blueprint and also displays it in the details panel of graph mode. SMyBlueprint is not available to FWidgetBlueprintEditor in UMGEditor module as it's privately implemented within Kismet.
#rb Ben.Cosh
#jira UE-20170
Change 2757181 on 2015/11/06 by Jamie.Dale
Cleaned up some duplication in UMG text widgets, and exposed the text shaping options
The common properties used by all text widgets that are text layout based have been moved into a UTextLayoutWidget base class, and all text layout based widgets now derive from this.
The options needed to control the text shaping method used by a text based widget have been exposed via the FShapedTextOptions struct. This contains a way to manage these optional (and advanced) overrides. You typically wouldn't change these from the default unless you knew exactly what you were doing (eg, you have a text block containing only numbers).
This change also updates SRichTextBlock to work with an invalidation panel in the same way that STextBlock does
Change 2757734 on 2015/11/06 by David.Nikdel
#UE4 #Editor
- Added support for meta=(TitleProperty="StructPropertyNameHere") on properties of type TArray<FSomeStruct>.
- This changes the editor rolled-up display of these values from "{0} members" to a stringified version of the specified property (if found).
#CodeReview: Matt.Kuhlenschmidt
Change 2758786 on 2015/11/09 by Joe.Tidmarsh
Border widget now correctly synchronizes padding property
#jira UE-23070
Change 2758791 on 2015/11/09 by Joe.Tidmarsh
Shadow of FCanvasTextItem should be drawn before the outline color. Consulted with Bruce.N who believes this is not the intended behavior and was an oversight when refactoring FCanvas (CL 1695138)
#jira UE-21623
#1608
#rb Simon.Tovey, Bruce.Nesbit
Change 2758813 on 2015/11/09 by Joe.Tidmarsh
UMG: Attempting to parent multiple widgets (in Hierarchy tree) to a widget that can't have multiple children will notify the user and ignore the operation.
[UE-22921] [CrashReport] Parenting multiple actors under border crashes editor
#jira UE-22921
Change 2759234 on 2015/11/09 by Nick.Darnell
Slate - Improving the way we track references to materials in slate to better keep things alive until they're no longer needed for rendering. Additionally, making it so the we use the material and texture free list when possible when cleaning up things as to not allocate new memory if not required. Concidentually this can help with problems with corrupted memory on destruct as well, because it means the memory isn't really going to become garbage any more.
#codereview Matt.Kuhlenschmidt, Bob.Tellez
Change 2760954 on 2015/11/10 by Nick.Darnell
Slate - A bug in the introduction of custom rendered elements accidentally broke filling out the texture coordinates for standard material usage. Materials should once again tile correctly just like images do.
#jira UE-23118
Change 2761129 on 2015/11/10 by Nick.Darnell
Slate - Removing the Pre-Multiply alpha path the way it was added, introducing it in a way that doesn't require changes inside the shader. Continuing to improve the SRetainerWidget to no longer have a frame delay between resizes and painting, also working on getting it handle clipping correctly but still not there yet.
Change 2761391 on 2015/11/10 by Alexis.Matte
jira UE-20281 and UE-22259
Fbx scene Re-import workflow
- First draft of the reimport workflow using a reimport asset in the content browser
#codereview nick.darnell
Change 2762323 on 2015/11/11 by Alexis.Matte
fix build compilation
Change 2762407 on 2015/11/11 by Jamie.Dale
UDataTable::SaveStructData now writes out dummy data when RowStruct is null
This didn't used to happen, which would cause a miss-match between what UDataTable::LoadStructData was expecting, and would result in a Data Table that could never be loaded again.
This change also improves the error message when editing a Data Table with a null row struct, and adds the editor-only RowStructName property to cache the name of the last used struct (for error reporting).
#jira UE-22789
Change 2762508 on 2015/11/11 by Nick.Darnell
UMG - Making it more obvious what keys do special stuff with anchors in UMG. Fixing the way snapping to anchors works with Control, it now only zeros out the side you're dragging instead of the entire widget, which was silly. Enhancing the designer message system to no longer be based on an enum and instead let arbitrary systems push and pop FText messages. Fixing animations in the anchor drop down to properly animate, broke when we introduced active timers.
Change 2763241 on 2015/11/11 by Nick.Darnell
Slate - We no longer allow popup windows to be larger than the primary display window for windows where max width/height is unspecified. This is to prevent accidential creation of tooltip windows that are larger than the driver allows causing crashes.
#jira UE-20336
2015-12-12 08:54:23 -05:00
ReadbackBuffers [ BufferIndex ] . Reset ( ) ;
2014-06-24 12:11:51 -04:00
}
ReadbackBufferIndex = 0 ;
SubmittedVideoFrameCount = 0 ;
}
}
void FEditorLiveStreaming : : BroadcastEditorVideoFrame ( )
{
if ( ensure ( IsBroadcastingEditor ( ) ) )
{
// Check to see if we're streaming live video. If so, we'll want to push new frames to be broadcast.
if ( LiveStreamer - > IsBroadcasting ( ) )
{
// Is this live streamer ready to accept new frames?
if ( LiveStreamer - > IsReadyForVideoFrames ( ) )
{
FSlateRenderer * SlateRenderer = FSlateApplication : : Get ( ) . GetRenderer ( ) . Get ( ) ;
Copying //UE4/Dev-Editor to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2756103 on 2015/11/05 by Jamie.Dale
Implemented UFont::GetResourceSize to work correctly with the Size Map tool
Change 2756104 on 2015/11/05 by Jamie.Dale
Changed the font used when a font is missing or invalid to be the last resort font, rather than the localized fallback font
The localized fallback font could cause different results based on your culture, and the last resort font makes it clearer that something is set-up incorrectly as it just draws invalid glyph markers for all of the text.
Change 2756105 on 2015/11/05 by Jamie.Dale
Fixed a crash when using an empty FKey property with a Data Table
FKeyStructCustomization was asserting because there were no objects being edited, due to a newly added Data Table containing zero rows.
I've removed this assert, and also updated SKeySelector to no longer require a separate argument to say whether multiple keys with different values are selected (this is now calculated from the call to get the current key, which will return an empty TOptional for multiple values).
#jira UE-22897
Change 2757015 on 2015/11/06 by Joe.Tidmarsh
SSProgressBar marquee tint. Accounts for widget color and opacity.
PR #1698
Change 2757156 on 2015/11/06 by Joe.Tidmarsh
Implemented "Go to Variable" functionality for widgets in Widget Blueprint Editor.
When we switch modes in UMG from Designer to Graph. We select the variable (In "My Blueprint"), if one exists, for the currently selected widget. Additionally we update the details panel.
* Added SelectGraphActionItemByName to FBlueprintEditor. This selects an item in My Blueprint and also displays it in the details panel of graph mode. SMyBlueprint is not available to FWidgetBlueprintEditor in UMGEditor module as it's privately implemented within Kismet.
#rb Ben.Cosh
#jira UE-20170
Change 2757181 on 2015/11/06 by Jamie.Dale
Cleaned up some duplication in UMG text widgets, and exposed the text shaping options
The common properties used by all text widgets that are text layout based have been moved into a UTextLayoutWidget base class, and all text layout based widgets now derive from this.
The options needed to control the text shaping method used by a text based widget have been exposed via the FShapedTextOptions struct. This contains a way to manage these optional (and advanced) overrides. You typically wouldn't change these from the default unless you knew exactly what you were doing (eg, you have a text block containing only numbers).
This change also updates SRichTextBlock to work with an invalidation panel in the same way that STextBlock does
Change 2757734 on 2015/11/06 by David.Nikdel
#UE4 #Editor
- Added support for meta=(TitleProperty="StructPropertyNameHere") on properties of type TArray<FSomeStruct>.
- This changes the editor rolled-up display of these values from "{0} members" to a stringified version of the specified property (if found).
#CodeReview: Matt.Kuhlenschmidt
Change 2758786 on 2015/11/09 by Joe.Tidmarsh
Border widget now correctly synchronizes padding property
#jira UE-23070
Change 2758791 on 2015/11/09 by Joe.Tidmarsh
Shadow of FCanvasTextItem should be drawn before the outline color. Consulted with Bruce.N who believes this is not the intended behavior and was an oversight when refactoring FCanvas (CL 1695138)
#jira UE-21623
#1608
#rb Simon.Tovey, Bruce.Nesbit
Change 2758813 on 2015/11/09 by Joe.Tidmarsh
UMG: Attempting to parent multiple widgets (in Hierarchy tree) to a widget that can't have multiple children will notify the user and ignore the operation.
[UE-22921] [CrashReport] Parenting multiple actors under border crashes editor
#jira UE-22921
Change 2759234 on 2015/11/09 by Nick.Darnell
Slate - Improving the way we track references to materials in slate to better keep things alive until they're no longer needed for rendering. Additionally, making it so the we use the material and texture free list when possible when cleaning up things as to not allocate new memory if not required. Concidentually this can help with problems with corrupted memory on destruct as well, because it means the memory isn't really going to become garbage any more.
#codereview Matt.Kuhlenschmidt, Bob.Tellez
Change 2760954 on 2015/11/10 by Nick.Darnell
Slate - A bug in the introduction of custom rendered elements accidentally broke filling out the texture coordinates for standard material usage. Materials should once again tile correctly just like images do.
#jira UE-23118
Change 2761129 on 2015/11/10 by Nick.Darnell
Slate - Removing the Pre-Multiply alpha path the way it was added, introducing it in a way that doesn't require changes inside the shader. Continuing to improve the SRetainerWidget to no longer have a frame delay between resizes and painting, also working on getting it handle clipping correctly but still not there yet.
Change 2761391 on 2015/11/10 by Alexis.Matte
jira UE-20281 and UE-22259
Fbx scene Re-import workflow
- First draft of the reimport workflow using a reimport asset in the content browser
#codereview nick.darnell
Change 2762323 on 2015/11/11 by Alexis.Matte
fix build compilation
Change 2762407 on 2015/11/11 by Jamie.Dale
UDataTable::SaveStructData now writes out dummy data when RowStruct is null
This didn't used to happen, which would cause a miss-match between what UDataTable::LoadStructData was expecting, and would result in a Data Table that could never be loaded again.
This change also improves the error message when editing a Data Table with a null row struct, and adds the editor-only RowStructName property to cache the name of the last used struct (for error reporting).
#jira UE-22789
Change 2762508 on 2015/11/11 by Nick.Darnell
UMG - Making it more obvious what keys do special stuff with anchors in UMG. Fixing the way snapping to anchors works with Control, it now only zeros out the side you're dragging instead of the entire widget, which was silly. Enhancing the designer message system to no longer be based on an enum and instead let arbitrary systems push and pop FText messages. Fixing animations in the anchor drop down to properly animate, broke when we introduced active timers.
Change 2763241 on 2015/11/11 by Nick.Darnell
Slate - We no longer allow popup windows to be larger than the primary display window for windows where max width/height is unspecified. This is to prevent accidential creation of tooltip windows that are larger than the driver allows causing crashes.
#jira UE-20336
2015-12-12 08:54:23 -05:00
const FMappedTextureBuffer & CurrentBuffer = ReadbackBuffers [ ReadbackBufferIndex ] ;
if ( CurrentBuffer . IsValid ( ) )
2014-06-24 12:11:51 -04:00
{
Copying //UE4/Dev-Editor to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2756103 on 2015/11/05 by Jamie.Dale
Implemented UFont::GetResourceSize to work correctly with the Size Map tool
Change 2756104 on 2015/11/05 by Jamie.Dale
Changed the font used when a font is missing or invalid to be the last resort font, rather than the localized fallback font
The localized fallback font could cause different results based on your culture, and the last resort font makes it clearer that something is set-up incorrectly as it just draws invalid glyph markers for all of the text.
Change 2756105 on 2015/11/05 by Jamie.Dale
Fixed a crash when using an empty FKey property with a Data Table
FKeyStructCustomization was asserting because there were no objects being edited, due to a newly added Data Table containing zero rows.
I've removed this assert, and also updated SKeySelector to no longer require a separate argument to say whether multiple keys with different values are selected (this is now calculated from the call to get the current key, which will return an empty TOptional for multiple values).
#jira UE-22897
Change 2757015 on 2015/11/06 by Joe.Tidmarsh
SSProgressBar marquee tint. Accounts for widget color and opacity.
PR #1698
Change 2757156 on 2015/11/06 by Joe.Tidmarsh
Implemented "Go to Variable" functionality for widgets in Widget Blueprint Editor.
When we switch modes in UMG from Designer to Graph. We select the variable (In "My Blueprint"), if one exists, for the currently selected widget. Additionally we update the details panel.
* Added SelectGraphActionItemByName to FBlueprintEditor. This selects an item in My Blueprint and also displays it in the details panel of graph mode. SMyBlueprint is not available to FWidgetBlueprintEditor in UMGEditor module as it's privately implemented within Kismet.
#rb Ben.Cosh
#jira UE-20170
Change 2757181 on 2015/11/06 by Jamie.Dale
Cleaned up some duplication in UMG text widgets, and exposed the text shaping options
The common properties used by all text widgets that are text layout based have been moved into a UTextLayoutWidget base class, and all text layout based widgets now derive from this.
The options needed to control the text shaping method used by a text based widget have been exposed via the FShapedTextOptions struct. This contains a way to manage these optional (and advanced) overrides. You typically wouldn't change these from the default unless you knew exactly what you were doing (eg, you have a text block containing only numbers).
This change also updates SRichTextBlock to work with an invalidation panel in the same way that STextBlock does
Change 2757734 on 2015/11/06 by David.Nikdel
#UE4 #Editor
- Added support for meta=(TitleProperty="StructPropertyNameHere") on properties of type TArray<FSomeStruct>.
- This changes the editor rolled-up display of these values from "{0} members" to a stringified version of the specified property (if found).
#CodeReview: Matt.Kuhlenschmidt
Change 2758786 on 2015/11/09 by Joe.Tidmarsh
Border widget now correctly synchronizes padding property
#jira UE-23070
Change 2758791 on 2015/11/09 by Joe.Tidmarsh
Shadow of FCanvasTextItem should be drawn before the outline color. Consulted with Bruce.N who believes this is not the intended behavior and was an oversight when refactoring FCanvas (CL 1695138)
#jira UE-21623
#1608
#rb Simon.Tovey, Bruce.Nesbit
Change 2758813 on 2015/11/09 by Joe.Tidmarsh
UMG: Attempting to parent multiple widgets (in Hierarchy tree) to a widget that can't have multiple children will notify the user and ignore the operation.
[UE-22921] [CrashReport] Parenting multiple actors under border crashes editor
#jira UE-22921
Change 2759234 on 2015/11/09 by Nick.Darnell
Slate - Improving the way we track references to materials in slate to better keep things alive until they're no longer needed for rendering. Additionally, making it so the we use the material and texture free list when possible when cleaning up things as to not allocate new memory if not required. Concidentually this can help with problems with corrupted memory on destruct as well, because it means the memory isn't really going to become garbage any more.
#codereview Matt.Kuhlenschmidt, Bob.Tellez
Change 2760954 on 2015/11/10 by Nick.Darnell
Slate - A bug in the introduction of custom rendered elements accidentally broke filling out the texture coordinates for standard material usage. Materials should once again tile correctly just like images do.
#jira UE-23118
Change 2761129 on 2015/11/10 by Nick.Darnell
Slate - Removing the Pre-Multiply alpha path the way it was added, introducing it in a way that doesn't require changes inside the shader. Continuing to improve the SRetainerWidget to no longer have a frame delay between resizes and painting, also working on getting it handle clipping correctly but still not there yet.
Change 2761391 on 2015/11/10 by Alexis.Matte
jira UE-20281 and UE-22259
Fbx scene Re-import workflow
- First draft of the reimport workflow using a reimport asset in the content browser
#codereview nick.darnell
Change 2762323 on 2015/11/11 by Alexis.Matte
fix build compilation
Change 2762407 on 2015/11/11 by Jamie.Dale
UDataTable::SaveStructData now writes out dummy data when RowStruct is null
This didn't used to happen, which would cause a miss-match between what UDataTable::LoadStructData was expecting, and would result in a Data Table that could never be loaded again.
This change also improves the error message when editing a Data Table with a null row struct, and adds the editor-only RowStructName property to cache the name of the last used struct (for error reporting).
#jira UE-22789
Change 2762508 on 2015/11/11 by Nick.Darnell
UMG - Making it more obvious what keys do special stuff with anchors in UMG. Fixing the way snapping to anchors works with Control, it now only zeros out the side you're dragging instead of the entire widget, which was silly. Enhancing the designer message system to no longer be based on an enum and instead let arbitrary systems push and pop FText messages. Fixing animations in the anchor drop down to properly animate, broke when we introduced active timers.
Change 2763241 on 2015/11/11 by Nick.Darnell
Slate - We no longer allow popup windows to be larger than the primary display window for windows where max width/height is unspecified. This is to prevent accidential creation of tooltip windows that are larger than the driver allows causing crashes.
#jira UE-20336
2015-12-12 08:54:23 -05:00
//TODO PushVideoFrame Needs to Take Width and Height
LiveStreamer - > PushVideoFrame ( ( FColor * ) CurrentBuffer . Data /*, CurrentBuffer.Width, CurrentBuffer.Height*/ ) ;
2014-06-24 12:11:51 -04:00
+ + SubmittedVideoFrameCount ;
// If this is the first frame we've submitted, then we can fade out our notification UI, since broadcasting is in progress
if ( SubmittedVideoFrameCount = = 1 )
{
TSharedPtr < SNotificationItem > Notification ( NotificationWeakPtr . Pin ( ) ) ;
if ( Notification . IsValid ( ) )
{
Notification - > ExpireAndFadeout ( ) ;
}
}
SlateRenderer - > UnmapVirtualScreenBuffer ( ) ;
}
TArray < FString > UnusedKeypressBuffer ;
SlateRenderer - > CopyWindowsToVirtualScreenBuffer ( UnusedKeypressBuffer ) ;
Copying //UE4/Dev-Editor to //UE4/Main
==========================
MAJOR FEATURES + CHANGES
==========================
Change 2756103 on 2015/11/05 by Jamie.Dale
Implemented UFont::GetResourceSize to work correctly with the Size Map tool
Change 2756104 on 2015/11/05 by Jamie.Dale
Changed the font used when a font is missing or invalid to be the last resort font, rather than the localized fallback font
The localized fallback font could cause different results based on your culture, and the last resort font makes it clearer that something is set-up incorrectly as it just draws invalid glyph markers for all of the text.
Change 2756105 on 2015/11/05 by Jamie.Dale
Fixed a crash when using an empty FKey property with a Data Table
FKeyStructCustomization was asserting because there were no objects being edited, due to a newly added Data Table containing zero rows.
I've removed this assert, and also updated SKeySelector to no longer require a separate argument to say whether multiple keys with different values are selected (this is now calculated from the call to get the current key, which will return an empty TOptional for multiple values).
#jira UE-22897
Change 2757015 on 2015/11/06 by Joe.Tidmarsh
SSProgressBar marquee tint. Accounts for widget color and opacity.
PR #1698
Change 2757156 on 2015/11/06 by Joe.Tidmarsh
Implemented "Go to Variable" functionality for widgets in Widget Blueprint Editor.
When we switch modes in UMG from Designer to Graph. We select the variable (In "My Blueprint"), if one exists, for the currently selected widget. Additionally we update the details panel.
* Added SelectGraphActionItemByName to FBlueprintEditor. This selects an item in My Blueprint and also displays it in the details panel of graph mode. SMyBlueprint is not available to FWidgetBlueprintEditor in UMGEditor module as it's privately implemented within Kismet.
#rb Ben.Cosh
#jira UE-20170
Change 2757181 on 2015/11/06 by Jamie.Dale
Cleaned up some duplication in UMG text widgets, and exposed the text shaping options
The common properties used by all text widgets that are text layout based have been moved into a UTextLayoutWidget base class, and all text layout based widgets now derive from this.
The options needed to control the text shaping method used by a text based widget have been exposed via the FShapedTextOptions struct. This contains a way to manage these optional (and advanced) overrides. You typically wouldn't change these from the default unless you knew exactly what you were doing (eg, you have a text block containing only numbers).
This change also updates SRichTextBlock to work with an invalidation panel in the same way that STextBlock does
Change 2757734 on 2015/11/06 by David.Nikdel
#UE4 #Editor
- Added support for meta=(TitleProperty="StructPropertyNameHere") on properties of type TArray<FSomeStruct>.
- This changes the editor rolled-up display of these values from "{0} members" to a stringified version of the specified property (if found).
#CodeReview: Matt.Kuhlenschmidt
Change 2758786 on 2015/11/09 by Joe.Tidmarsh
Border widget now correctly synchronizes padding property
#jira UE-23070
Change 2758791 on 2015/11/09 by Joe.Tidmarsh
Shadow of FCanvasTextItem should be drawn before the outline color. Consulted with Bruce.N who believes this is not the intended behavior and was an oversight when refactoring FCanvas (CL 1695138)
#jira UE-21623
#1608
#rb Simon.Tovey, Bruce.Nesbit
Change 2758813 on 2015/11/09 by Joe.Tidmarsh
UMG: Attempting to parent multiple widgets (in Hierarchy tree) to a widget that can't have multiple children will notify the user and ignore the operation.
[UE-22921] [CrashReport] Parenting multiple actors under border crashes editor
#jira UE-22921
Change 2759234 on 2015/11/09 by Nick.Darnell
Slate - Improving the way we track references to materials in slate to better keep things alive until they're no longer needed for rendering. Additionally, making it so the we use the material and texture free list when possible when cleaning up things as to not allocate new memory if not required. Concidentually this can help with problems with corrupted memory on destruct as well, because it means the memory isn't really going to become garbage any more.
#codereview Matt.Kuhlenschmidt, Bob.Tellez
Change 2760954 on 2015/11/10 by Nick.Darnell
Slate - A bug in the introduction of custom rendered elements accidentally broke filling out the texture coordinates for standard material usage. Materials should once again tile correctly just like images do.
#jira UE-23118
Change 2761129 on 2015/11/10 by Nick.Darnell
Slate - Removing the Pre-Multiply alpha path the way it was added, introducing it in a way that doesn't require changes inside the shader. Continuing to improve the SRetainerWidget to no longer have a frame delay between resizes and painting, also working on getting it handle clipping correctly but still not there yet.
Change 2761391 on 2015/11/10 by Alexis.Matte
jira UE-20281 and UE-22259
Fbx scene Re-import workflow
- First draft of the reimport workflow using a reimport asset in the content browser
#codereview nick.darnell
Change 2762323 on 2015/11/11 by Alexis.Matte
fix build compilation
Change 2762407 on 2015/11/11 by Jamie.Dale
UDataTable::SaveStructData now writes out dummy data when RowStruct is null
This didn't used to happen, which would cause a miss-match between what UDataTable::LoadStructData was expecting, and would result in a Data Table that could never be loaded again.
This change also improves the error message when editing a Data Table with a null row struct, and adds the editor-only RowStructName property to cache the name of the last used struct (for error reporting).
#jira UE-22789
Change 2762508 on 2015/11/11 by Nick.Darnell
UMG - Making it more obvious what keys do special stuff with anchors in UMG. Fixing the way snapping to anchors works with Control, it now only zeros out the side you're dragging instead of the entire widget, which was silly. Enhancing the designer message system to no longer be based on an enum and instead let arbitrary systems push and pop FText messages. Fixing animations in the anchor drop down to properly animate, broke when we introduced active timers.
Change 2763241 on 2015/11/11 by Nick.Darnell
Slate - We no longer allow popup windows to be larger than the primary display window for windows where max width/height is unspecified. This is to prevent accidential creation of tooltip windows that are larger than the driver allows causing crashes.
#jira UE-20336
2015-12-12 08:54:23 -05:00
SlateRenderer - > MapVirtualScreenBuffer ( & ReadbackBuffers [ ReadbackBufferIndex ] ) ;
2014-06-24 12:11:51 -04:00
// Ping pong between buffers
ReadbackBufferIndex = ( ReadbackBufferIndex + 1 ) % 2 ;
}
}
else
{
// If our streaming service has stopped broadcasting for some reason, then we'll cancel our broadcast
StopBroadcastingEditor ( ) ;
}
}
}
void FEditorLiveStreaming : : BroadcastStatusCallback ( const FLiveStreamingStatus & Status )
{
TSharedPtr < SNotificationItem > Notification ( NotificationWeakPtr . Pin ( ) ) ;
if ( Notification . IsValid ( ) )
{
// Don't bother clobbering existing message with text about web cam starting/stopping, unless we're already broadcasting.
// We want to make sure people see the persistent text about login state.
if ( SubmittedVideoFrameCount > 0 | |
( Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : WebCamStarted & &
Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : WebCamStopped & &
Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : WebCamTextureNotReady & &
2014-07-02 11:33:24 -04:00
Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : WebCamTextureReady & &
Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : ChatConnected & &
Status . StatusType ! = FLiveStreamingStatus : : EStatusType : : ChatDisconnected ) )
2014-06-24 12:11:51 -04:00
{
Notification - > SetText ( Status . CustomStatusDescription ) ;
}
}
else
{
// Only spawn a notification if we're actually still trying to broadcast, not if we're stopping broadcasting. We don't want
// to revive our notification that we intentionally expired.
if ( bIsBroadcasting )
{
FNotificationInfo Info ( Status . CustomStatusDescription ) ;
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 ;
NotificationWeakPtr = FSlateNotificationManager : : Get ( ) . AddNotification ( Info ) ;
}
}
Notification = NotificationWeakPtr . Pin ( ) ;
if ( Notification . IsValid ( ) )
{
SNotificationItem : : ECompletionState State = SNotificationItem : : CS_Pending ;
if ( Status . StatusType = = FLiveStreamingStatus : : EStatusType : : Failure )
{
State = SNotificationItem : : CS_Fail ;
}
else if ( Status . StatusType = = FLiveStreamingStatus : : EStatusType : : BroadcastStarted | |
2014-07-02 11:33:24 -04:00
Status . StatusType = = FLiveStreamingStatus : : EStatusType : : WebCamStarted | |
Status . StatusType = = FLiveStreamingStatus : : EStatusType : : ChatConnected )
2014-06-24 12:11:51 -04:00
{
State = SNotificationItem : : CS_Success ;
}
Notification - > SetCompletionState ( State ) ;
}
// If the web cam just turned on, then we'll go ahead and show it
if ( Status . StatusType = = FLiveStreamingStatus : : EStatusType : : WebCamTextureReady )
{
2014-07-16 07:43:42 -04:00
bool bIsImageFlippedHorizontally = false ;
bool bIsImageFlippedVertically = false ;
UTexture2D * WebCamTexture = LiveStreamer - > GetWebCamTexture ( bIsImageFlippedHorizontally , bIsImageFlippedVertically ) ;
2014-06-24 12:11:51 -04:00
if ( ensure ( WebCamTexture ! = nullptr ) )
{
IMainFrameModule & MainFrameModule = FModuleManager : : LoadModuleChecked < IMainFrameModule > ( TEXT ( " MainFrame " ) ) ;
check ( MainFrameModule . IsWindowInitialized ( ) ) ;
auto RootWindow = MainFrameModule . GetParentWindow ( ) ;
check ( RootWindow . IsValid ( ) ) ;
2014-07-16 07:43:42 -04:00
// Allow the user to customize the image mirroring, too!
const auto & Settings = * GetDefault < UEditorLiveStreamingSettings > ( ) ;
if ( Settings . bMirrorWebCamImage )
{
bIsImageFlippedHorizontally = ! bIsImageFlippedHorizontally ;
}
2014-06-24 12:11:51 -04:00
// How many pixels from the edge of the main frame window to where the broadcast status window appears
const int WindowBorderPadding = 50 ;
// @todo livestream: Currently this window is not created as "topmost". We don't really want it to be OS-topmost, but we do want it to be the most
// topmost "regular" window in our application (not on top of tooltips, etc.)
// Create a window that will show the web cam video feed
BroadcastStatusWindow = SNew ( SWindow )
. Title ( LOCTEXT ( " StreamingWindowTitle " , " Web Camera " ) )
. ClientSize ( FVector2D ( WebCamTexture - > GetSizeX ( ) , WebCamTexture - > GetSizeY ( ) ) )
. ScreenPosition ( FVector2D (
RootWindow - > GetRectInScreen ( ) . Right - WebCamTexture - > GetSizeX ( ) - WindowBorderPadding ,
RootWindow - > GetRectInScreen ( ) . Top + WindowBorderPadding ) )
// @todo livestream: Ideally the user could freely resize the window, but it gets a bit tricky to preserve the web cam aspect. Plus, we don't really like how letterboxing/columnboxing looks with this.
. SizingRule ( ESizingRule : : FixedSize )
. AutoCenter ( EAutoCenter : : None )
. bDragAnywhere ( true )
. SupportsMaximize ( true )
. SupportsMinimize ( true )
. FocusWhenFirstShown ( false )
Copying //UE4/Portal-Staging to Dev-Main (//UE4/Dev-Main) (Source: //Portal/Main @ 3352026)
#lockdown Nick.Penwarden
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3351920 on 2017/03/17 by Leigh.Swift
#jira OPP-6870: [Crash] Assertion failed: ctx->ReadOffset + length <= (uint32)ctx->CompressedData.Num() [File:D:\Build\++Portal+Release-Live+Compile\Sync\Engine\Source\Runtime\ImageWrapper\Private\PngImageWrapper.cpp] [Line: 420]
Instead of asserting for an incorrect data size for png image being loaded, set an error on the wrapper object.
This will result in the slate brush rendering as white box, and errors going to the log which include the png resource path.
Change 3350561 on 2017/03/16 by Justin.Sargent
Updated the Slate standalone D3D renderer to be more fault tolerant.
Added new HasLostDevice() function to SlateRenderer.
If the launcher detects that it has lost the device context it will attempt to perform a full rebuild of the UI and Presentation layers, but also a full reboot of slate application and the renderer.
The launcher will attempt to re-establish the device context for 5 minutes if not interrupted by the user. If the user interacts with the launcher while attempting to re-establish the device context it will instead pop up a system dialog explaining it is having issues with the video card and then will close the application.
Change 3341299 on 2017/03/10 by Richard.Fawcett
Validate JSON files as we're pushing to EMS
Added a flexible validation framework to the system files (EMS) sync operation.
Implemented a JSON validator which by default will validate .json files.
Adds a "ValidationRules" property to the EMS sync config file to allow each product to define its own regex patterns for filenames which should be validated with each validator.
Configured launcher's EMS to validate .product, .v?product, .layout, .sdmeta and .panel files as JSON.
The great news is that this validation actually discovered a minor syntactical issue with Wex.v2product during testing, which is also fixed with this submission. \o/
#epicfriday
Change 3336908 on 2017/03/08 by Leigh.Swift
#jira OPP-5126: All disk size checks for BPS installations should be handled internally to BPS, the Portal code should not need to check this and can only do so less accurately.
Removing disk space checks from portal code which block installers from running. NB: There is still a check in selective download code which provides tooltip information only.
Moving BuildPatchInstaller disk size check to the file constructor, which is the class that most accurately knows the required amount of space. The disk check now occurs after resume and just before we start to write data.
A secondary disk check is also made if a file fails to construct so that we can detect problems caused by change in available disk space.
Disk space error message extended to include useful information for the user.
Change 3323366 on 2017/02/27 by Richard.Fawcett
Fix reference to Newtonsoft in Publishing.Automation.
Change 3323205 on 2017/02/27 by Wes.Fudala
Adding language support to the windows installer.
Significantly expandes OneSky upload functionality.
OPP-5438 Launcher installer should support the same language set supported by the launcher.
Change 3316926 on 2017/02/22 by Richard.Fawcett
Prevent Amazon S3 download glitches from issuing warnings until half of the maximum retries have been attempted.
In practice, when we download thousands of files, we _do_ get failures which need to be retried. This means that pretty much all jobs result in warnings, which isn't appropriate. This should turn jobs green again, and only warn us when things look unusual.
#jira OPP-6607
Change 3315996 on 2017/02/21 by Justin.Sargent
Incrementing Portal version number
I'm incrementing this earlier than normal due to a need to depend on a new version number for EMS layout change versioning.
Change 3312760 on 2017/02/20 by Wes.Fudala
Users can now select desired environment/region from the UI.
New login screen.
Adds slid out settings menu to login screen.
Adds region and language selection to the settings menu.
Adds support for PortalRegions ini.
Adds DefaultPortalRegions ini.
Adds RegionRepository, RegionPublisher, RegionSelectService, and RegionIdentificationService.
Adds region select option in debugtools general section.
Adds RegionSelectService unit test with associated mocks.
Changes the way all backend connections are configured so that values are now pulled from config files.
Renames product region selector files to avoid some confusion with portal region files.
Updated EmsConfigUpdater and HotfixManager so they support optional overwrite and save of ini files.
Region publisher now restricts regions that require permissions in shipping builds.
Fixes a bug causing items to get stuck in the download queue UI after we failed to obtain a manifest when reaching out the the backend.
#jira OPP-6121, OPP-5809
Change 3311664 on 2017/02/20 by Andrew.Brown
Added GetTypeHash support for FDelegateHandle
Change 3311505 on 2017/02/20 by Richard.Fawcett
Rename/move file(s)
Change 3309004 on 2017/02/17 by Chad.Garyet
adding in additional platforms for the BuildPlugin commandline
Change 3299188 on 2017/02/13 by Leigh.Swift
#jira OPP-6711: [CRASH] Assertion failed: IsComplete()
Race condition in portal hack allowed an installer to attempt to execute complete delegate before being complete.
Change 3294197 on 2017/02/09 by Richard.Fawcett
Adding ValidPrereqIds.json
This is needed now because the script to enforce correct prereq ids reaches out to Perforce to access this file!
#jira OPP-6583
Change 3294059 on 2017/02/09 by Richard.Fawcett
Fix comment on PostBuild parameter to reference correct name of "Manifest" property.
Change 3293377 on 2017/02/08 by Richard.Fawcett
Remove need for a metadata file containing name of generated manifest when using randomized manifest filenames.
Change 3282865 on 2017/02/02 by Richard.Fawcett
Simplify params to BuildGraph's ChunkTask / PostBuildTask
Also, downgrade warnings to simple log messages when falling back to legacy manifest filename construction to ease transition into randomized manifest filenames for game teams.
#jira OPP-6435
Change 3282809 on 2017/02/02 by Leigh.Swift
#jira OPP-6564: BPT will crash if the FileIgnoreList input instructs the build streamer to ignore every build file.
A race condition for getting to the first scanner creation code, vs the build stream exiting with no data. If the former wins, a scanner will be created without enough data to scan.
Scanners are now no longer created if the buildstream provided no data.
Change 3280848 on 2017/02/01 by Leigh.Swift
#jira OPP-3864: BuildPatchServices will log a FATAL error on shutdown even if it's fine to be shutting down.
When BPS is shutdown, it will only set error states and cancellation logic if any installers are actually created.
Change 3280839 on 2017/02/01 by Leigh.Swift
Fixing whitespace damage incoming from Dev-Staging
Change 3280820 on 2017/02/01 by Andrew.Brown
Copying //Portal/Dev-Main-Staging to Main (//Portal/Main)
Change 3280797 on 2017/02/01 by Leigh.Swift
#jira OPP-6649: BPS sends undocumented analytics events.
Adding documentation for the following events:
Patcher.Error.Download
Patcher.Warning.ChunkAborted
Patcher.Error.Cache
Patcher.Error.Construction
Patcher.Error.Prerequisites
Change 3278887 on 2017/01/31 by Richard.Fawcett
Downgrade cleanup warnings to normal log output.
The conditions which used to trigger these warnings are now considered to be normal behavior, in a world in which we carry out cross-app game promotions.
This results in a perma-yellow state for cleanup, which is unhelpful.
#nojira
Change 3278738 on 2017/01/31 by Richard.Fawcett
Tweak Conan launch parameters
Change 3277066 on 2017/01/30 by Richard.Fawcett
Remove temporary code which cleans up P:\Builds\UnrealEngineLauncher\BuildGraph, as the location no longer exists.
Change 3274907 on 2017/01/27 by Leigh.Swift
#jira OPP-6615: Receiving a whisper while in game may minimize game client.
Refactoring SWindow ActivateOnFirstShown bool to be ActivationPolicy to give more accurate control.
This also allows fixing of misuses of previous ActivateOnFirstShown variables in the implementations, which appear to mostly be interpreting it as 'AlwaysActivate'.
The upgrade path is therefore ActivateOnFirstShown true/false becomes ActivationPolicy Always/Never.
Moving initial minimize and maximise logic for FWindowsWindow into the Show() call on first show to gain control of activation and respect the provided policy.
Refactoring existing uses to use the new variables/functions instead.
The refactor of existing code is focused on preserving current always activate behaviour as opposed to changing behaviour to actually only activate on first show.
Change 3273466 on 2017/01/26 by Alex.Fennell
New build of OpenSSL libraries #JIRA OPP-6408
PriceEngine configuration and fixes for bugs it introduced.
Change 3268045 on 2017/01/23 by Richard.Fawcett
Re-adding Funcom folk to Conan chunk notification emails
Change 3267709 on 2017/01/23 by Richard.Fawcett
Fix launch arguments for Conan Exiles editor.
Temporarily remove FunCom recipients from notification list to avoid spamming.
Change 3265774 on 2017/01/20 by Chad.Garyet
Merge of Engine/Build/Buildfarm over to //Portal from Dev-Build
Change 3264674 on 2017/01/19 by Alex.Fennell
On demand catalog requests
Change 3263654 on 2017/01/19 by Leigh.Swift
#jira OPP6562: Support looking up tagging and sdmeta info and using it in build diff output
Adding tag use understanding to the manifest diff tool of BPT.
Adding Selective Download feature support to PPT for it's diff tool, making use of portal's metadata for the feature.
Change 3263623 on 2017/01/19 by Richard.Fawcett
Fix issue where ManifestFilename is not always available at post build time.
#jira OPP-6606
Change 3262013 on 2017/01/18 by Richard.Fawcett
Remote potential for success email being sent on third party chunk failure
Change 3261914 on 2017/01/18 by Richard.Fawcett
Fix for user content generation job not specifying a manifest filename.
Change 3261800 on 2017/01/18 by Richard.Fawcett
Implement streaming S3 downloads to disk, rather than just to memory
This is needed because C# has a 2 billion maximum array dimension, so files > 2GB can't be downloaded using the existing code.
Change 3261675 on 2017/01/18 by Richard.Fawcett
Support for overriding, or generating randomized unique manifest filenames to avoid automated harvesting from CDN
BuildGraph's ChunkTask takes three new parameters ...
* ManifestFilename (string) - The filename of the manifest to produce. If omitted, the value of RandomizeManifestFilename will determine how the manifest filename is determined.
* RandomizeManifestFilename (bool) - If true, we'll generate a random, unique manifest filename. If false (default), we'll use legacy behavior of combining app name and build version.
* LocalManifestDir (string) - Required if RandomizedManifestFilename is true. This directory will receive local copies of any manifest file produced, and a metadata file containing the name of the most recently produced manifest
BuildGraph's PostBuildTask takes two new parameters ...
* ManifestFilename (string) - The filename of the manifest to post. If omitted, we'll use the value from the metadat file in LocalManifestDir is this is set, otherwise use legacy behavior.
* LocalManifestDir (string) - A directory containing local copies of manifest files, along with a metadata file containing the name of the manifest file produced by the most recent ChunkTask operation.
Support added to the launcher build script's to use the new parameters to randomize its manifest filename, and post the randomized filename to MCP.
Use of a contructor of BuildPatchToolStagingInfo which does not specify a manifest filename is now considered deprecated, and will output a warning.
Remove requirement of having a BuildPatchToolStagingInfo when performing a chunking operation, instead just passing in the specific values we need from it as parameters in their own right.
Remove support for non-chunk based manifests from C# wrapper, as these are no longer supported in BuildPatchTool itself.
#jira OPP-6432
Change 3261647 on 2017/01/18 by Leigh.Swift
Adding some cleanup to the end of some BPT functional tests so that they do not affect proceeding tests and cause red-herring warning output.
Change 3261639 on 2017/01/18 by Richard.Fawcett
Update app name of Conan to ConanExiles to match back-end catalog.
Fix Conan launch exe and args so that launcher can detect when product is running. Was previously using a batch file which terminates after launching editor.
Change 3258815 on 2017/01/16 by Wes.Fudala
UTM and product info will be parsed from installer name and passed to the launcher. UTM info will be passed along as part of all analytics events.
#jira OPP-6404: Add user funnel tracking
Change 3258809 on 2017/01/16 by Wes.Fudala
Back out changelist 3258800.
Backing out changes that were intended to be made in a different stream.
Change 3258800 on 2017/01/16 by Wes.Fudala
App version is now also appended to user agent string.
Change 3256999 on 2017/01/13 by Richard.Fawcett
Fix issue where JSON file included in Publishing csproj is not reliably copied to output folder on build farm.
Change 3256941 on 2017/01/13 by Richard.Fawcett
Move configuration for Third Party build pipeline out of code and into its own configuration file.
#epicfriday
Change 3255072 on 2017/01/12 by Richard.Fawcett
Add additional logging around multithreaded upload of files to S3.
Fix bug ensuring that the failure of any single part of multi-part upload results in the whole file being failed.
#jira OPP-6392
Change 3253672 on 2017/01/11 by Richard.Fawcett
Add support for third-party Conan editor.
Alter third party process so it doesn't crash if version.txt doesn't already exist in the third party S3 bucket, to allow us to setup in advance of third party publishing their first version.
Change 3251901 on 2017/01/10 by Barnabas.McManners
Compile fix on mac, fix for hidden method in AutomationTest define. Without this GoogleMock.spec.cpp wont compile on mac.
#nojira
#ReviewedBy Leigh.Swift
Change 3250907 on 2017/01/09 by Justin.Sargent
Changed the automation controller to uses a non-zero exit code when performing a 'quit' command if tests failed.
Change 3245328 on 2017/01/03 by Justin.Sargent
Enabling the logic to lowercase all C++ members exposed to javascript.
Added additional to-lowering behavior to UObject binding.
#jira OPP-6494
Change 3240667 on 2016/12/20 by Andrew.Brown
Copying //Tasks/Portal/Dev-OPP-6109-DedicatedServer to Dev-Main (//Portal/Dev-Main)
Change 3236972 on 2016/12/15 by Bob.Ferreira
Updating compliation changes for AutomationDriver
Change 3236567 on 2016/12/15 by Richard.Fawcett
Ensure that third party product chunking uses latest CL across our P4 depot in its version number.
Change 3236188 on 2016/12/15 by Richard.Fawcett
Combine all launcher purchases into single workflow using the new quickPurchase API call as the initial request.
#jira OPP-6257
Change 3231134 on 2016/12/12 by Alex.Fennell
Improving fail case handling for the waiting room service
#jira OPP-5648
Change 3228514 on 2016/12/09 by Richard.Fawcett
Change filetype
Change 3227080 on 2016/12/08 by Barnabas.McManners
Merging CL 3226840 from Dev Editor
Fixing a bug in FText formatting where it would ignore the rebuild and Rebuild as Source arguments for the format string itself
#jira OPP-6485
Change 3219810 on 2016/12/02 by Ben.Marsh
UAT: Fix unzip output being completely discarded. Switch it to just be verbose instead.
Change 3219602 on 2016/12/02 by Ben.Marsh
Add the -q (quiet) option to the Mac unzip command, since it's creating too much log output to be useful.
[CL 3355309 by Justin Sargent in Main branch]
2017-03-20 18:49:23 -04:00
. ActivationPolicy ( EWindowActivationPolicy : : Never )
2014-06-24 12:11:51 -04:00
. SaneWindowPlacement ( false ) ;
WebCamDynamicImageBrush = MakeShareable ( new FSlateDynamicImageBrush (
WebCamTexture ,
FVector2D ( WebCamTexture - > GetSizeX ( ) , WebCamTexture - > GetSizeY ( ) ) ,
WebCamTexture - > GetFName ( ) ) ) ;
2014-07-16 07:43:42 -04:00
// If the web cam image is coming in flipped, we'll apply mirroring to the Slate brush
if ( bIsImageFlippedHorizontally & & bIsImageFlippedVertically )
{
WebCamDynamicImageBrush - > Mirroring = ESlateBrushMirrorType : : Both ;
}
else if ( bIsImageFlippedHorizontally )
{
WebCamDynamicImageBrush - > Mirroring = ESlateBrushMirrorType : : Horizontal ;
}
else if ( bIsImageFlippedVertically )
{
WebCamDynamicImageBrush - > Mirroring = ESlateBrushMirrorType : : Vertical ;
}
2014-06-24 12:11:51 -04:00
// @todo livestream: Currently if the user closes the window, the camera is deactivated and it doesn't turn back on unless the broadcast is restarted. We could allow the camera to be reactivated though.
BroadcastStatusWindow - > SetOnWindowClosed (
FOnWindowClosed : : CreateStatic ( [ ] ( const TSharedRef < SWindow > & Window , FEditorLiveStreaming * This )
{
// User closed the broadcast status window, so go ahead and shut down the web cam
This - > LiveStreamer - > StopWebCam ( ) ;
This - > BroadcastStatusWindow . Reset ( ) ;
This - > WebCamDynamicImageBrush . Reset ( ) ;
} ,
this ) ) ;
BroadcastStatusWindow - > SetContent (
SNew ( SImage )
. Image ( WebCamDynamicImageBrush . Get ( ) )
) ;
FSlateApplication : : Get ( ) . AddWindowAsNativeChild (
BroadcastStatusWindow . ToSharedRef ( ) ,
RootWindow . ToSharedRef ( ) ) ;
}
}
else if ( Status . StatusType = = FLiveStreamingStatus : : EStatusType : : WebCamTextureNotReady )
{
CloseBroadcastStatusWindow ( ) ;
}
}
void FEditorLiveStreaming : : CloseBroadcastStatusWindow ( )
{
if ( BroadcastStatusWindow . IsValid ( ) )
{
FSlateApplication : : Get ( ) . DestroyWindowImmediately ( BroadcastStatusWindow . ToSharedRef ( ) ) ;
BroadcastStatusWindow . Reset ( ) ;
WebCamDynamicImageBrush . Reset ( ) ;
}
}
2014-07-02 11:33:24 -04:00
void FEditorLiveStreaming : : OnChatMessage ( const FText & UserName , const FText & ChatMessage )
{
// @todo livestream: Currently no chat UI is supported in the editor
}
2014-06-24 12:11:51 -04:00
# undef LOCTEXT_NAMESPACE