Commit Graph

22 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
6c75b4032c Merging //UE4/Release-4.11 to //UE4/Main (up to CL#2835147)
==========================
MAJOR FEATURES + CHANGES
==========================

Change 2817214 on 2016/01/06 by mason.seay
	Adjusted Walkable Slope Override for mesh

	#jira UE-24473

Change 2817384 on 2016/01/06 by Michael.Schoell
	Crash fix when selecting a variable node for a variable that is not owned by a Blueprint.

	#jira UE-24958 - Crash when getting the sequence player in level blueprint

Change 2817438 on 2016/01/06 by Max.Chen

	Sequencer: Add option to specify position of material name from the movie scene capture interface. For example, MovieCapture_{material}_{width}x{height}.{frame} will create files like this: MovieCapture_FinalImage_1920x1080.0010.exr

	#rb Andrew.Rodham
	#jira UE-24926

Change 2817459 on 2016/01/06 by Marc.Audy

	 PR #1679: Move MinRespawnDelay to virtual method AController::GetMinRespawnDelay() (Contributed by bozaro)
	#jira UE-22309

Change 2817472 on 2016/01/06 by Ben.Marsh

	Always run UHT in unattended mode from UBT; we don't want it opening any dialogs. Match3 is currently missing a plugin, and it's causing builds to time out.

Change 2817473 on 2016/01/06 by Marc.Audy

	 PR #1644: Improve "SpawnActor failed because the spawned actor IsPendingKill" error message (Contributed by slonopotamus)
	#jira UE-21911

Change 2817533 on 2016/01/06 by Lauren.Ridge

	Fixing Match3 not compiling in Debug (removed two checks on TileLibrary)

	#jira UE-25004

Change 2817625 on 2016/01/06 by Taizyd.Korambayil

	#jira UE-19659 Reimported Template Animations with Proper Skeletons

Change 2817647 on 2016/01/06 by Lukasz.Furman

	replaced ensure during initialization of blackboard based behavior tree task with log warning
	#ue4
	#jira UE-24448
	#rb Mieszko.Zielinski

Change 2817648 on 2016/01/06 by Lukasz.Furman

	fixed broken rendering component of navmesh actor after delete-undo operation
	#ue4
	#jira UE-24446
	#rb Mieszko.Zielinski

Change 2817688 on 2016/01/06 by Taizyd.Korambayil

	#jira UE-22347 Fixed Message Warnings on Startup

Change 2817815 on 2016/01/06 by Jamie.Dale

	Multiple fixes when editing right-to-left text

	- Text is now shaped over the entire line to allow rich-text and selected text to be shaped correctly across block boundaries.
	- Text layout highlights are now able to correctly handle bi-directional and right-to-left text.
	- Text picking can now handle bi-directional and right-to-left text.
	- Text picking can now pick the individual characters that make up a ligature glyph.
	- The caret now draws on the logical (rather than visual) side of the glyph (to handle right-to-left text).
	- Glyph clusters (multiple glyphs produced from a single character) are now treated as a single logical glyph.
	- Optimized some of the FShapedGlyphSequence to allow an early out once they've found and processed the start and end glyphs.

	#jira UE-25013

Change 2817828 on 2016/01/06 by Nick.Darnell

	Editor - Fixing the OpenLauncher call to be take a structure to allow us to customize it more, and to properly handle the silent command the way we're planning to handle it in the launcher.

	#jira UE-24563

Change 2818052 on 2016/01/06 by Nick.Darnell

	Editor - Adding another application check for the launcher to catch the current app name on mac.

	#jira UE-24563

Change 2818149 on 2016/01/06 by Taizyd.Korambayil

	#jira UE-19097 Adjusted FirstPerson Pawn, so that Camera doesnt clip the Arm Mesh

Change 2818360 on 2016/01/06 by Chris.Babcock

	Fix reading from ini sections not cached after build system changes for 4.11
	#jira UE-25027
	#ue4
	#android

Change 2818369 on 2016/01/06 by Ryan.Vance

	#jira UE-24976
	Adding tessellation support to instanced stereo

Change 2818999 on 2016/01/07 by Robert.Manuszewski

	UHT will no longer try to load game-only plugins.

	#jira UE-25032

	- Changed module type RuntimeNoProgram to RuntimeAndProgram so that bu default Runtime plugin modules won't be loaded by programs
	- Added better error message when UHT's PreInit fails

Change 2819064 on 2016/01/07 by Richard.Hinckley

	#jira UE-24694
	Fixing array usage in 4.11 stream.

Change 2819067 on 2016/01/07 by Ori.Cohen

	When editor tries to spawn a physics asset we automatically load the needed skeletal mesh

	#rb Matt.K
	#JIRA UE-24165
2016-01-22 08:13:18 -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
ac05f885af Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main)
#lockdown Nick.Penwarden

[CL 2754371 by Nick Darnell in Main branch]
2015-11-04 16:14:13 -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
Jamie Dale
2c059a6a68 Fixed some shadow offset issues
UE-4766 - Text actors don't render on mobile devices

Fixed places where the baseline was being converted between signed and unsigned values. Baselines are typically negative, and there was a case where arithmetic was being performed on an unsigned baseline value that was causing the text to be entirely clipped on mobile platforms.

The baseline adjustment was also the wrong way around, and were letting positive shadow offsets clip the text off the top of its clipping region. This should only be done for negative shadow offsets (to move the baseline to compensate for the shadow). This was causing noticable clipping issues in UMG.

Shadow offsets also weren't repecting scale, which was most noticable when zooming in UMG. The shadow offset now takes scale into account so that it remains consistent at different zoom levels.

ReviewedBy Justin.Sargent

[CL 2345276 by Jamie Dale in Main branch]
2014-10-30 17:05:23 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Jamie Dale
0eb6d819e1 Fixed some clipping issues with text shadows
FSlateTextRun and FSlateHyperlinkRun now support negative shadow offsets.

This also fixes the maximum size of a text run being reported incorrectly when it was using a shadow offset.

ReviewedBy Justin.Sargent

[CL 2322437 by Jamie Dale in Main branch]
2014-10-08 05:42:44 -04:00
Jamie Dale
86316a18a2 Fixed "flickering" when selecting the text inside a hyperlink in the multiline editable text
Because FTextSelectionRunRenderer is a run renderer, it causes the hyperlink run to get split into multiple blocks when the selection is changed, and because FSlateHyperlinkRun contains a nested widget, it was possible that the widgets inside the new blocks hadn't had a Slate prepass called on them before they were presented for painting (causing a flicker while the STextBlock widget inside the hyperlink was empty).

The FSlateHyperlinkRun now calls SlatePrepass() itself when the blocks are created. This is a similar solution to FSlateWidgetRun, and ensures that the hyperlink is ready to be painted, thus removing the flickering.

ReviewedBy Justin.Sargent

[CL 2302322 by Jamie Dale in Main branch]
2014-09-18 08:10:53 -04:00
Thomas Sarkanen
6f1d963577 Adding image support to tutorial rich text
Improved text layout support when inserting runs/text or splitting lines on runs that were non-text (images or widgets). The text layout now inserts an extra text run when splitting a non-text run, which avoids issues where text was either being inserted into a non-text run (and vanishing), or an image run was being cloned (and appearing twice).

This also fixes the cursor movement in the multiline editable text when selecting over images or widgets (the cursor would jump to the start of the document as GetTextIndexAt hadn't been implemented. Additionally, it also fixes an issue where Measure was always trying to place the cursor at the end of an image run (ignoring the values of BeginIndex and EndIndex) which made the cursor offset draw in the wrong place.

These changes required the text layout to be able to create a default text run, which involved refactoring the text marshallers as the Slate text run now knows about the default text style, taking that responsibility away from the marshallers

Added tutorial-specific image decorator that accepts a content-relative or engine relative image path.

Added button to tutorial rich text editor to add new images.

All previously-imported images should still 'work'.

reviewed by Jamie.Dale,Nick.Atamas,Justin.Sargent

[CL 2302278 by Thomas Sarkanen in Main branch]
2014-09-18 08:09:29 -04:00
Thomas Sarkanen
465d6fef0c Cleaned up hyperlink tooltip API a little
Post-code review, removed accessors & moved delegates into constructor.

[CL 2294987 by Thomas Sarkanen in Main branch]
2014-09-12 06:48:53 -04:00
Thomas Sarkanen
a37b84b8c8 Rich tooltips for tutorial hyperlinks
Refactored handling of decorators into new utility class FTutorialText.
Added tooltip (and rich tooltip) support to hyperlink runs.

#codereview Jamie.Dale

[CL 2294907 by Thomas Sarkanen in Main branch]
2014-09-12 05:28:34 -04:00
Wes Hunt
d2434e97f7 Made the Slate text layout respect layout transforms
Converted some code which was creating FPaintGeometry the old way (so losing the render transforms) to use the new way instead.
#codereview jaime.dale, Justin.Sargent, nick.darnell, nick.atamas

[CL 2284993 by Wes Hunt in Main branch]
2014-09-04 15:41:07 -04:00
Jamie Dale
dbc7090d00 Added support for SMultiLineEditableText to edit rich-text
TTP# 336464 - Editor: Finish the Multiline Editable Text Block

Abstracted away the SetEditableText and GetEditableText functions from SMultiLineEditableText into "text marshallers" which handle converting text to and from a TextLayout.

There are three types of text marshallers currently implemented:
 * Plain-text
 * Rich-text
 * Syntax highlighting

Text marshallers also have the ability to inject formatting "live" (as the text changes), which is how the syntax highlighting marshaller works.

Added the ability for a run to query the information it was created with. This allows the rich-text marshaller to reconstruct the original rich-text from the styled runs.

To test this out, I've implemented a simple WYSIWYG rich-text editor demo with the following features:
 * Two SMultiLineEditableText widgets showing the same source text, one using a rich-text marshaller, and one using a syntax highlighter marshaller.
 * A toolbar to allow you to control the style of the selected text.
 * A button to allow you to insert a hyperlink into the document.

The demo also makes use of the meta-data stored in the runs (the same information used to reconstruct the original rich-text) to read the text style of whatever is currently under the cursor, live, as the cursor is moved.

Miscellaneous fixes:
 * Fixed an issue where deleting text that spanned multiple runs could leave the remaining runs in a bad state, leading to phantom text appearing (see FTextLayout::RemoveAt).
 * Fixed an issue where new-lines at the end of a rich-text document would be lost (see CalculateLineRanges).
 * Fixed an issue where \\r\\n line endings werenÆt being handled correctly by the rich-text parser (see CalculateLineRanges).
 * Fixed an issue where the rich-text parser would treat an empty run as plain-text (see FRichTextMarkupProcessing::ParseLineRanges).
 * Fixed an issue where inserting a line break when the cursor was at the end of a line containing multiple runs could sometimes fail (see FTextLayout::SplitLineAt).
 * Fixed mouse cursor movement not working correctly with a FSlateHyperlinkRun (see FSlateHyperlinkRun::GetTextIndexAt).

ReviewedBy Justin.Sargent

[CL 2246838 by Jamie Dale in Main branch]
2014-08-07 06:46:11 -04:00
Nick Atamas
badf62c330 Slate slots now use a common base class, which has a private '.Widget' member; use GetWidget() instead.
Slate TPanelChildren, TSlotlessChildren are no longer full-fledged arrays; removed any unused Array API.
Fixed up a lot of improper use cases.

This better encapsulates the action of adding/removing Slate Widgets from the runtime tree as a Slate Core concern.
Alows us to add parent pointers in the future with significantly less effort.

#codereview Wes.Hunt
#codereview Nick.Darnell
#codereview Matt.Kuhlendschmidt
#codereview Justin.Sargent

[CL 2234301 by Nick Atamas in Main branch]
2014-07-28 06:53:40 -04:00
Nick Atamas
978a62ee0f Slate Hittesting 2.0 : Hittesting no longer bound to logical widget hierarchy.
Merged from usr/Nick.Atamas/UE4_SlateDev => /UE4

[CL 2228155 by Nick Atamas in Main branch]
2014-07-23 08:23:21 -04:00
Jamie Dale
4a52145b8b Fixed some cursor movement/placement issues in the multi-line editable text
TTP# 336464 - Editor: Finish the Multiline Editable Text Block

The fact that the end of a soft-wrapped line has the same FTextLocation as the start of the next soft-wrapped line leads to ambiguity when moving the cursor, as the cursor is always positioned based upon the line model (FTextLocation) rather than the line view.

I'd previously attempted to fix this when placing the cursor with the mouse by moving the cursor back one place (and aligning the cursor to the right) if it matched the end of a soft-line boundary. This worked for the end of the lines, but caused another issue where the clicking to the left of the start of a soft-line would move the cursor back to the previous line.

I've removed that code, and instead added code which allows the text layout (and text run) to report where on the line the given position has hit (either within the line itself, or inside the left or right gutter). This lets me adjust the cursor only if the click landed in the right gutter.

I also had to fix some issues with PreferredCursorScreenOffsetInLine as it was sometimes being set to a different position to the cursor, which could lead to it jumping around.

I also changed the code which converts a position into a line view location (GetLineViewIndexForTextLocation) to perform a non-exclusive range check - this ensures that the FTextLocation will match the start of a line view, rather than the end of a line view (which is correct due to the way I move the cursor back). The only exception to this is when the cursor has been placed to the right of a character, as this is assumed to mean that the cursor is at the end of a line view, and therefore we want to return the line view index for end of that line.

ReviewedBy Andrew.Rodham, Justin.Sargent

[CL 2225429 by Jamie Dale in Main branch]
2014-07-21 06:48:45 -04:00
Jamie Dale
b4a2958ef4 Added support for "lightweight highlighters"
TTP# 336464 - Editor: Finish the Multiline Editable Text Block

These are a kind of highlighter that exist at the line level, rather than the run level. This means that they can't do the more complex things like adjusting the run rendering (eg, changing the text color), but it does mean that they can be overlapped and don't require a re-flow of the entire layout when they're added or removed.

To avoid confusion with the existing "highlighter" concept, and to better describe what the classes do, the existing IRunHighlighter has been renamed to IRunRenderer, and the newly added "lightweight highlighters" are called ILineHighlighter.

FTextLayout has been updated to flow the lightweight highlighters separately to the main layout flow, and the dirty flag has been split so that we can skip the layout re-flow if only the highlighters have been changed.

FSlateTextLayout has been updated to first paint any "underlay" highlighters, then the line view blocks (potentially with a custom run renderer), then any "overlay" highlighters.

The GetChildren and OnArrangeChildren have been removed from ISlateRunRenderer (and not added to ISlateLineHighlighter) because they were never being used (FSlateTextLayout wasn't calling them), and were seemingly just adding complexity.

ReviewedBy Justin.Sargent

[CL 2222209 by Jamie Dale in Main branch]
2014-07-17 11:00:01 -04:00
Jamie Dale
af3cc2d605 Initial support for multiline editable text
TTP# 336464 - Editor: Finish the Multiline Editable Text Block

Most of this work was done by JustinS; I just finished off some remaining whitespace, wrapping, cursor movement, and scaling issues.

ReviewedBy Justin.Sargent

[CL 2099039 by Jamie Dale in Main branch]
2014-06-09 11:14:37 -04:00
Wes Hunt
c7ba265891 Slate API Updates
* Paint is now the non-virtual entry point to OnPaint to support required pre/post functionality. Widgets override OnPaint as usual, but calls to tell a widget to paint should be "Paint" not "OnPaint".
* ArrangeChildren -> OnArrangeChildren. ArrangeChildren is now the non-virtual entry point for the same reason as Paint/OnPain.
* OnPaint and OnArrageChildren are now private so they are not accidentally called.
* Added Stats for Paint time and ArrangeChildren time.
#BUN
#codereview:nick.atamas,max.preussner

[CL 2086158 by Wes Hunt in Main branch]
2014-05-29 17:18:37 -04:00
Max Preussner
dde6e568e1 Slate: Reorganized private Slate files; proper pre-compiled header for all files.
Notes:
- LandscapeEditor pulls in private MultiBox include files; temporarily made those public

[CL 2057183 by Max Preussner in Main branch]
2014-04-26 20:23:08 -04:00