Commit Graph

31 Commits

Author SHA1 Message Date
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
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
Marc Audy
b612760508 Copying //UE4/Dev-Framework to //UE4/Main @ 2830052
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2807479 on 2015/12/17 by Zak.Middleton

	#ue4 - Optimize allocations in FFinalPostProcessSettings. Fix bug skipping an element when updating the ContributingCubemaps array if one is removed during an iteration.

	#rb Aaron.Mcleran
	#codereview Martin.Mittring
	#jira UE-24485

Change 2807695 on 2015/12/17 by Aaron.McLeran

	Changing the VolumeScale sound concurrency implementation to be a volume scalar on older sounds in a concurrency group rather than scale new sounds.

	#rb zak.middleton

Change 2808628 on 2015/12/18 by Thomas.Sarkanen

	Minor optimization: Dont call GetWorld() 3 times in a row in USceneComponent::ShouldRender()

	#rb Martin.Wilson

Change 2810090 on 2015/12/21 by Ori.Cohen

	Allow collision and trail particles to run off the game thread.
	Clean up missing marshelled AsyncComponentToWorld

Change 2814518 on 2016/01/04 by Marc.Audy

	Use Reset instead of Empty

Change 2814530 on 2016/01/04 by James.Golding

	UE-2689 Hook up lots of new icons for component classes
	#rb thomas.sarkanen

Change 2814665 on 2016/01/04 by Marc.Audy

	PR #1860:Fix ChildActorComponent linking issue when extended from game (Contributed by lion03)

Change 2814686 on 2016/01/04 by Benn.Gallagher

	Fix for radial force components applying impulses multiple times to destructible components
	#rb Ori.Cohen

Change 2815221 on 2016/01/04 by Aaron.McLeran

	UE-24528 Fixing focus-distance scaling and focus priority scaling working with concurrency settings.

	USoundAttenuation:
	- Added methods to SoundAttenuation to get focus, attenuation, and distance scale based on focus factor.
	- Added NonFocusDistanceScale parameter to attenuation settings customization so its setable by users

	USoundBase:
	- Added function on USoundBase which checks IsLooping, which checks the duration
	- Removed functions IsAudible and IsAudibleSimple from USoundBase since that functionality is accomplished differently and takes into account focus-distance scaling now.

	FActiveSound:
	- Caching values of FocusPriorityScale and FocusDistanceScale to Active sound so that can be used for audibility checks
	- Included FocusDistanceScale when computing bIsAudible in Active sound
	- Moved GetAttenuationListenerData and the accompanying private struct FAttenuationListenerData to FAudioDevice since the audio device and moved code which computes focus factor and geometry into FAudioDevice::GetFocusFactor since it needs to be computed before an active sound exist

	FAudioDevice:
	- Added SoundIsAudible function which queries a particular sound if its audible based on attenuation settings, focus factor, etc. Will optionally return computed MaxDistance to avoid recomputing it in certain cases.
	- Added a few helper functions: FindClosestListenerIndex, GetAttenuationListenerData
	- Added GetFocusFactor, which performs the vector math to determine focus factor (0.0 is in-focus, 1.0 is out of focus) for a given sound and listener and attenuation focus settings.
	- Updated CreateComponent and PlaySoundAtLocation functions to use the new SoundIsAudible function rather than the old IsAudibleSimple

	#rb zak.middleton

Change 2815694 on 2016/01/05 by thomas.sarkanen

	Added test texture

Change 2815695 on 2016/01/05 by thomas.sarkanen

	Modified test texture

Change 2815709 on 2016/01/05 by James.Golding

	PR #1778 : New BP-callablle function AActor::WasRecentlyRendered, with optional tolerance in seconds
	https://github.com/EpicGames/UnrealEngine/pull/1778
	#github 1778
	#jira UE-23674
	#rb jurre.debaare

Change 2815711 on 2016/01/05 by James.Golding

	PR #1534 : Add missing default tolerance value for FVector2D::Equal
	https://github.com/EpicGames/UnrealEngine/pull/1534
	#github 1534
	#jira UE-20838
	#rb jurre.debaare

Change 2815714 on 2016/01/05 by James.Golding

	PR #1887 : Added 'Thickness' Parameter to all valid options in Draw Debug Helper
	https://github.com/EpicGames/UnrealEngine/pull/1887
	#github 1887
	#jira UE-24802
	#rb jurre.debaare

Change 2815725 on 2016/01/05 by James.Golding

	Added comment that USkeletalMeshComponent::bEnablePhysicsOnDedicatedServer cannot be changed at runtime
	#jira UE-20439

Change 2815813 on 2016/01/05 by Marc.Audy

	Move dispatch of transition functions to new OnMatchStateSet virtual which is called from SetMatchState allowing subclasses to insert their own handling between the set of the variable and dispatch to GameState and Blueprints rather than having to override the entire function.
	#codereview Peter.Knepley

Change 2815884 on 2016/01/05 by James.Golding

	- Avoid PSC iterating over all particle emitters each tick to check for changes in DetailMode. Now remember global DetailMode when we last checked, and only iterate again if that has changed.
	- Add 'WarmupTime' and 'CPUCollision' to Asset Registry Tags for Particle Systems
	#rb simon.tovey
	#codereview gil.gribb

Change 2816306 on 2016/01/05 by Marc.Audy

	(4.11) Pass boolean to OnComponentDestroyed that indicates if the entire Actor's hierarchy is being destroyed. If so we can avoid doing a lot of expensive tear down, particularly detaching each component one at a time from the hierarchy and causing massive position/bounds updates.
	#rb Zak.Middleton, James.Golding
2016-01-15 13:01:30 -05:00
Matthew Griffin
984342ca17 Merging //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) post CL#2804086 to CL#2817167
CL#2805395 resolved as target to avoid copying 2015 changes
#lockdown Nick.Penwarden

[CL 2819197 by Matthew Griffin in Main branch]
2016-01-07 11:21:22 -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
Jaroslaw Palczynski
2c16d2b417 FStringAssetReference fixes.
All changes regarding e-mail discussion titled "Asset registry shenanigans".

Changes:
1. Engine now actively is getting rid of short asset paths in FStringAssetReference during saving (for all packages) and loading (only for older packages).
2. Deprecated direct access to FStringAssetReference.AssetLongPathname and exposed it via ToString and SetPath -- SetPath is making sure the path is in correct format. If the path can't be found on disk, the path is cleared.
3. Also access to FStringAssetReference.AssetLongPathnam via Blueprints is guarded using custom Make node function that uses SetPath instead of simple assign.
4. StringAssetReferenceMap will now contain only paths to packages (not objects) and ini references
5. GetDependencies now has additional parameter that lets you chose if it should resolve ini references or not. It was left not as default to keep old behaviour.

[CL 2630589 by Jaroslaw Palczynski in Main branch]
2015-07-23 10:49:29 -04:00
Richard Hinckley
41a00ec0ab Added a feature to in-engine tutorials that enables platform-specific screen skipping.
[CL 2604350 by Richard Hinckley in Main branch]
2015-06-29 14:06:00 -04:00
Richard Hinckley
4ba3b8b2f1 [UE-9586] The "Back" button in tutorials can be linked to a different tutorial, like the "Next" button. Tutorials assigned to the "Previous Tutorial" field (new) will be used for this, and will activate the button for this purpose on stage 0. Tutorials started in this way will begin on their final stage. The Launch Tutorial functionality (in code) now uses an enum for startup instead of a bool, so we can force a restart, continue from where we left off (default), or start at the final stage.
[CL 2500370 by Richard Hinckley in Main branch]
2015-04-02 16:56:18 -04:00
Thomas Sarkanen
5bf7af11b3 Fixed tutorial analytics when returning to browser via 'Home' button
This needs to use a seperate path now so we cant rely on the 'closed' event firing.

AN-93 - Tutorial Event Not Sending?

[CL 2468643 by Thomas Sarkanen in Main branch]
2015-03-04 06:27:23 -05:00
Ben Marsh
1da42a80f2 [INTEGRATE] Change 2422514 by Richard.Hinckley@Richard.Hinckley_Z3230_Releases on 2015/01/28 13:45:27
UE-8101 - CurrentTutorial wasn't being cleared when a tutorial ended, so some effects of tutorial stages could still happen after the user exited a tutorial.

[CL 2425864 by Ben Marsh in Main branch]
2015-01-30 11:04:45 -05:00
Richard Hinckley
af4e486a74 UE-7990 - Fixed with a decent Slate widget.
[CL 2420847 by Richard Hinckley in Main branch]
2015-01-27 14:54:15 -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
Thomas Sarkanen
819d171331 Restructured tutorial analytics events
Where dynamic event names were being constructed from tutorial assets, now reworked events to add a dynamic parameter.

UE-4978 - Restructure Tutorial Analytic Events

[CL 2377327 by Thomas Sarkanen in Main branch]
2014-12-05 05:33:09 -05:00
bruce nesbit
8fb1204d2e Added code to save current tutorial progress when tutorials are closed. (Fixes recurring welcome bubble)
[CL 2354482 by bruce nesbit in Main branch]
2014-11-10 09:44:22 -05:00
Thomas Sarkanen
9d65f80e73 Tutorial Blueprint fixes
Tutorials now return a valid UWorld, enabling audio playback, timers and all sorts of good stuff.
Stage started event now fires on first stage.
Skipping a stage from BP now rebuilds content properly.
Added events for tutorial launch and close.

[CL 2330093 by Thomas Sarkanen in Main branch]
2014-10-15 09:37:16 -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
Thomas Sarkanen
3014bfc0df Moving tutorial browser to an editor nomad tab
Tweaked styles and layout to better suit a tab.
Also fixed browser not showing some tutorials if all assets are not yet loaded.
Progress is now updated periodically as the browser can be now open while a tutorial is in progress.

TTP# 347956 - TUTORIALS: Selecting More Tutorials can hide Tutorial Browser

[CL 2327011 by Thomas Sarkanen in Main branch]
2014-10-13 06:46:06 -04:00
Thomas Sarkanen
cf68744ac8 Tutorials are now restarted when taken if they were previously completed
Override parameter passed in to LaunchTutorial when the tutorial has been completed already.

TTP# 348110 - EDITOR: TUTORIALS: Completed tutorials should always restart when re-taken

[CL 2315684 by Thomas Sarkanen in Main branch]
2014-10-01 05:57:50 -04:00
Thomas Sarkanen
dfc9addd05 Tearing off a highlighted widget no longer results in duplicate content being displayed
Tutorials browser now always appears on the mainframe. This avoids the browser appearing on small torn-off windows if content is torn off while a tutorial is in progress.
Also fixed crash when opening a browser from a widget that used to be docked to anotehr tab (weak window pointer was invalid at this point).

TTP# 347014 - EDITOR: TUTORIAL: If a tab is undocked while being referenced in the "welcome to the unreal editor" tutorial, there will be two instances of the tutorial text

[CL 2305366 by Thomas Sarkanen in Main branch]
2014-09-22 09:42:52 -04:00
Thomas Sarkanen
f9b46bc4d6 Correctly open tutorial when opening an asset for a tutorial.
Make sure we have an overlay constructed for the window we just created for the asset.

TTP# 347174 - TUTORIAL: When clicking on a sub editor tutorial, the tutorial does not automatically popup if the sub editor is not already opened

[CL 2305305 by Thomas Sarkanen in Main branch]
2014-09-22 09:41:50 -04:00
James Golding
8469b0fc89 Fix tutorial not displaying if NULL window was passed in
#codereview thomas.sarkanen

[CL 2302957 by James Golding in Main branch]
2014-09-18 16:42:40 -04:00
Thomas Sarkanen
304d700746 Added/edited extra tutorial contexts & added analytics
Tutorial contexts for IOS/Android/Whatever are now hooked up (console setup ones are still missing).

Analytics added for tutorial usage in various places.

Added ability to reset tutorial state with -ResetTutorials command-line flag.

Cleaned up some unused code (still a lot more to come here!).

[CL 2302314 by Thomas Sarkanen in Main branch]
2014-09-18 08:10:29 -04:00
Thomas Sarkanen
5ac251775a CIS fix - non-unity build
[CL 2300834 by Thomas Sarkanen in Main branch]
2014-09-17 08:30:32 -04:00