Commit Graph

19 Commits

Author SHA1 Message Date
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f 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
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Nick Darnell
b98c648c14 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
PaulEremeeff
3d878d5a79 PR #996: Fixing PVS-Studio warnings (Contributed by PaulEremeeff)
I have reviewed each change carefully, but it is a large change and I could have missed something! Here is a summary of the types of changes in this CL:
 * Made nullptr checks consistent (the plurality of the changes are of this type)
 * Completed switch statements (IE, switch did not explicitly handle default case, but had unhandled enum entries - this is the second most popular type of fix)
 * Removed unused variables
 * Removed redundant initializations
 * WidgetNavigationCustomization.cpp was fixed by the owner
 * integers converted to floats where result was stored in a float
 * Removed redundent null checks (e.g. before delete statements)
 * Renamed variables to prevent non-obvious shadowing
 * Fixed use of bitwise & when checking for equality to an enum entry (which is often 0)
 * Fixes for some copy paste errors (e.g. FoliageEdMode.cpp)

[CL 2498053 by Dan Oconnor in Main branch]
2015-03-31 20:12:31 -04:00
Dan Hertzka
1ce19a5ffa Full rename of the Slate "active tick" system to "active timer"
[CL 2394301 by Dan Hertzka in Main branch]
2014-12-19 17:44:49 -05:00
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev branch ----
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.

While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
    1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
        - Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
    2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.

- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
    - Examples include animation, async operations that update periodically, progress updates, loading bars, etc.

- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.

- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
    - There are THREE ways to unregister an active tick:
        1. Return EActiveTickReturnType::StopTicking from the active tick function
        2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
        3. Destroy the widget responsible for the active tick

- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
    - The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)

- The FCurveSequence API has been updated to work with the active tick system
    - Playing a curve sequence now requires that you pass the widget being animated by the sequence
    - The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
    - GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.

[CL 2391669 by Dan Hertzka in Main branch]
2014-12-17 16:07:57 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Nick Darnell
9b5481490b UMG - Fixing an intermittent crash in the canvas slot customization that occurs during compile, the object in the property grid can become null for a frame.
[CL 2360233 by Nick Darnell in Main branch]
2014-11-14 11:58:40 -05:00
Marc Audy
e9c81cd4d8 Fix variable shadowing
[CL 2328994 by Marc Audy in Main branch]
2014-10-14 15:03:01 -04:00
Mikolaj Sieluzycki
050cf02d86 UMGEditor private PCH cleanup.
#codereview Robert.Manuszewski

[CL 2321071 by Mikolaj Sieluzycki in Main branch]
2014-10-07 07:01:31 -04:00
Nick Darnell
81a68e8751 UMG - Cleaning up some things in the anchors menu.
[CL 2314746 by Nick Darnell in Main branch]
2014-09-30 15:09:10 -04:00
Nick Darnell
aaa16631a4 UMG - Improving the anchors drop down menu to show a preview of the effect it has. Adding new button styles to the editor, fixing several bugs with making widgets design time flagged. No longer asserting on incorrect visibility flags. Adding major (0.1) snapping to the anchor widget. Making several addChild functions specific to their widgets.
[CL 2302716 by Nick Darnell in Main branch]
2014-09-18 13:44:34 -04:00
Nick Darnell
b9775ae8f3 UMG - Continuing to work on styles, exposing more logic to blueprints, and making it easier to get slots for different types of widgets, starting with a few. Will add more in the future.
[CL 2289646 by Nick Darnell in Main branch]
2014-09-08 13:46:36 -04:00
Nick Darnell
e3124a5534 UMG - Now changing the text on the offsets property to match what they represent.
[CL 2289236 by Nick Darnell in Main branch]
2014-09-08 09:05:26 -04:00
Matt Kuhlenschmidt
1ad8b4fcd5 UMG Sequencer keying:
- Added ability to key into UMG animations via the details panel
- Fixed some undo/redo issues in sequencer related to autokey
- Fixed auto-key causing property migration

[CL 2231142 by Matt Kuhlenschmidt in Main branch]
2014-07-24 23:52:28 -04:00
Nick Darnell
45d8150fec UMG - Designer revamp, how properties are migrated, which objects are changed...etc. Widget selection is now better at handling previews disappearing. Lots of cleanup. The designer now live edits the preview, and the changes are migrated back to the templates, probably a bit buggy right now. All widgets must now implement SyncronizeProperties so that the designer can update the visuals without completely regenerating the GUI.
[CL 2097096 by Nick Darnell in Main branch]
2014-06-06 09:38:31 -04:00
Nick Darnell
8e8d44e186 UMG - Customizing the way slots are displayed, flattened, hiding the editinline look, everything just appears as a layout property.
[CL 2094388 by Nick Darnell in Main branch]
2014-06-04 10:11:11 -04:00
Nick Darnell
f164bd35b3 UMG - Organizing widget templates. Working on customizations for the canvas.
[CL 2093681 by Nick Darnell in Main branch]
2014-06-03 17:27:08 -04:00