Commit Graph

144 Commits

Author SHA1 Message Date
Jack Porter
4a2d4cafbd Fix issues with landscape ES2 data being overwriting PC data causing issues with component weightmaps when launching or using the mobile previewer multiple times. (UE-10421 / UE-12441)
[CL 2529858 by Jack Porter in Main branch]
2015-04-29 03:18:59 -04:00
Richard TalbotWatkin
d5dfb01a15 Fix to FInterpCurve serialization, and fixed overly strict check in Eval, EvalDerivative and EvalSecondDerivative.
[CL 2527049 by Richard TalbotWatkin in Main branch]
2015-04-27 12:04:01 -04:00
Dmitry Rekman
fc4fe7522b Work around for compilation problems with clang 3.6.0
- Authored by Steve Robb.

#codereview Steve.Robb, Josh.Adams

[CL 2524922 by Dmitry Rekman in Main branch]
2015-04-24 16:31:37 -04:00
Gil Gribb
e631ac5ea3 UE4 - support for dithered LOD transitions on static meshes (that don't move) -- also fixed parallel render thread updates for spline meshes
[CL 2524405 by Gil Gribb in Main branch]
2015-04-24 11:20:23 -04:00
Richard TalbotWatkin
a3cfc2f2bb Big revamp to SplineComponent (continuing work-in-progress).
#jira UE-11822 - Add up vector, roll and scale properties to USplineComponent which can be used when calculating rotations/transforms at a point on the spline
#jira UE-13333 - BP spline components do not update when setting points
#jira UE-3637 - SplineComponent: Add a get transform at distance accessor

Summary of changes:
- FInterpCurve now natively understands looping. A input key can be set, at which point the spline will loop back to its start point.  Adjusted FInterpCurve methods to take looped curves into account.
- Fixed bugs in FInterpCurve regarding returning default values (T(ForceInit) instead of T() otherwise FVectors and FQuats are not initialized correctly).
- SplineComponent now holds three separate splines (location, rotation and scale).
- The SplineReparamTable is no longer transient, but is built and saved as part of the asset.
- Changed the SplineComponent API. All methods now take a ESplineCoordinateSpace value which specifies whether the values are intended for use in local or world space. The old methods have been deprecated but not removed (for now).
- bAllowSplineEditingPerInstance is deprecated. A new member (bSplineHasBeenEdited) has superseded it, and is set automatically when editing the spline with the visualizer. Added "Reset to Default" option in the visualizer, which restores the archetype defaults.
- SplineComponentVisualizer determines if spline points have been initialized by the user construction script, and, if so, will disallow editing. This is to conform with the general idea that the UCS always overrides property values.
- Fixed a number of bugs in the visualizer, and added new facilities to allow the scale and rotation to be edited (still work-in-progress).

[CL 2524087 by Richard TalbotWatkin in Main branch]
2015-04-24 06:25:50 -04:00
Michael Noland
1695ced6e8 Blueprints: Added native serialization in UFunction for ubergraph fast calls [UE-10415]
#codereview nick.whiting

[CL 2518222 by Michael Noland in Main branch]
2015-04-20 16:42:17 -04:00
Ori Cohen
af1be1bf82 Added support for binary serialization of physx rigid actors. Helps components that have many body instances like InstancedStaticMeshComponent
[CL 2517839 by Ori Cohen in Main branch]
2015-04-20 13:12:01 -04:00
Andrew Rodham
8ff0d8b98b Added config migration path for newer versions of the engine.
Newly installed versions of the engine will now attempt to copy the project-agnostic config settings from a previous engine installation. This happens by way of a versioned manifest that copies old versions when the manifest does not exist, or is a different version. This code path is benign for non-installed versions of the engine (or FPaths::ShouldSaveToUserDir() is false).

EditorGameAgnosticSettings and EditorUserSettings ini paths have been renamed to EditorSettings and EditorPerProjectUserSettings respectively to better convey their purpose. In general, most settings should be saved in EditorSettings (project-agnostic) so that they apply regardless of which project is open. We have some way to go migrating existing settings for this to be the case, however.

Some previously per-project configuration files are now project-agnostic (such as Editor.ini, EditorKeyBindings.ini, and EditorLayout.ini)

GEditor->Access...Settings and GEditor->Get...Settings have been removed in favor of direct access of the CDO through GetMutableDefault<> and GetDefault<> respectively. Global config ini filenames that are not set up are now neither loaded nor saved on build machines, to handle the problem of indeterminate state more generically.

This addresses UETOOL-270 (Most editor preferences should be project-agnostic)

[CL 2517558 by Andrew Rodham in Main branch]
2015-04-20 10:12:55 -04:00
Saul Abreu
cf45f5dbc1 Relocated PropertyPortFlags to its own header in Core from UnrealTypes.h in CoreUObject. This allows the PortFlags on FArchive to be checked without a dependency on CoreUObject.
[CL 2514695 by Saul Abreu in Main branch]
2015-04-16 14:29:13 -04:00
Dan Hertzka
a0739d08ca Re-adding CL 2508810 with the previously missing FoliageTypeObjectCustomization files
[CL 2510599 by Dan Hertzka in Main branch]
2015-04-13 14:46:31 -04:00
Marc Audy
480433474b Fix memory overwrite caused by UWorld::EditorViews being too small for number of possible view types
Made EditorViews dynamic so future changes in size should not have similar issues
Made EditorViews editor only data
#codereview Matt.Kuhlenschmidt, Richard.TalbotWatkin

[CL 2510506 by Marc Audy in Main branch]
2015-04-13 13:40:31 -04:00
Dan Oconnor
6ab92e9057 Back out changelist 2508810 - there was a missing file
[CL 2509228 by Dan Oconnor in Main branch]
2015-04-10 19:17:10 -04:00
Dan Hertzka
ecd5c212b9 [UETOOL-269] - Foliage type assets now work with procedural foliage in addition to BP subclasses
- Renamed FProceduralFoliageTypeData to FFoliageTypeObject
- Added property customization for FFoliageTypeObject
- Can contain either a FoliageType asset or BP subclass

[CL 2508810 by Dan Hertzka in Main branch]
2015-04-10 15:45:53 -04:00
Nick Darnell
bac9c4f154 UMG - Reworking Custom and Desired sizes in the designer. You can now preview any custom or desired size in the context of the screen as well. So there's now a seperate dropdown for choosing screen size, vs. how the widget preview should fill that screen.
[CL 2499036 by Nick Darnell in Main branch]
2015-04-01 16:12:49 -04:00
Robert Manuszewski
8fe5db30e3 Merging UE4-Streaming to UE4
- Linkers are no longer UObjects. Renamed ULinker, ULinkerLoad and ULinkerSave to FLinker, FLinkerLoad, FLinkerSave respectively
- Linkers are now associated with their UPackages
- Linker version is now stored in UPackages
- Async loading is now performed on a separate thread (if platform supports it and only in cooked builds), with the exception of PostLoad which is still done on the game thread
- Added UObject::IsPostLoadThreadSafe() function to determine if PostLoad is thread safe and can be executed on the async loading thread (defaults to false)
- UObject creation is now thread safe and can be performed on any thread
- Move many of the linker/UObject globals into FUObjectThreadContext (TLS)
- GetAsyncLoadPercentage() now takes PostLoad into account
- More async loading stats
- Added AtomicallySetFlags/ClearFlags to UObject
- Made FModuleManager thread safe.
- Added FGCScopeGuard as means of preventing GC from executing from non-game thread
- It's possible to disable async loading thread through ini settings.
- Cancelling async loading will now also trigger GC
- Implemented a basic version of async streaming priorities.

Change 2410813 by Mikolaj Sieluzycki:
	Change Sleep in while loop to ConditionalSleep in FMultiReaderSingleWriterGT
Change 2410734 by Mikolaj Sieluzycki:
	Make FModuleManager thread safe.
Change 2399879 by Mikolaj Sieluzycki:
	Basic version of async streaming priorities.
Change 2410707 by Mikolaj Sieluzycki:
	Implement conditional and no stat versions of sleep.
Change 2371939 by Robert Manuszewski:
	Async Loading Improvements: adding more stats (accumulators)
Change 2372403 by Robert Manuszewski:
	Fixing compile errors when STATs are not enabled
Change 2371526 by Robert Manuszewski:
	AsyncLoading Improvements (WIP)
Change 2407198 by Robert Manuszewski:
	Re-implementing delegate fixes for Async Loading
Change 2407425 by Robert Manuszewski:
	Re-implementing cancelling async loading in the async loading branch.
Change 2484362 by Robert Manuszewski:
	Making it possible to disable async loading thread through ini settings.
Change 2484744 by Robert Manuszewski:
	Minimizing locks in GC and other threads when handling UObjects
Change 2480190 by Robert Manuszewski:
	Fixing infinite stall after canceling async loading in non-cooked builds
Change 2484268 by Robert Manuszewski:
	Fixing crash when allocating permanent object pool.
Change 2489761 by Robert Manuszewski:
	Fixing BulkData using linker archive on the main thread even if the linker was created on the async loading thread.
Change 2493624 by Robert Manuszewski:
	Cancelling async loading will now also trigger GC
Change 2487881 by Robert Manuszewski:
	Making ShaderIdMap operations thread safe.
Change 2488067 by Robert Manuszewski:
	Fixing GetAsyncLoadPercentage. It will now also respect PostLoad.
Change 2458640 by Robert Manuszewski:
	Fixing crash in PIE
Change 2458825 by Robert Manuszewski:
	Fixing a few crashes when streaming and the package is missing.
Change 2476935 by Robert Manuszewski:
	Fixing crash while async loading ANavigationData
Change 2477361 by Robert Manuszewski:
	Fixing crashes in cooked game
Change 2480095 by Robert Manuszewski:
	Making FUObjectArray more thread safe
Change 2475443 by Robert Manuszewski:
	Re-enabling single-threaded async loading path for the editor and platforms that don't support multithreading.
Change 2475458 by Robert Manuszewski:
	Making sure bulk data is only loaded on a separate thread if it's not being loaded on the async loading thread.
Change 2476661 by Robert Manuszewski:
	Fixing FlushAsyncLoading not flushing everything
Change 2401089 by Jaroslaw Surowiec:
	Core - Added AtomicallySetFlags/ClearFlags to UObject, added a comment to ThisThreadAtomicallyClearedRFUnreachable

[CL 2498249 by Robert Manuszewski in Main branch]
2015-04-01 03:03:18 -04:00
Marc Audy
f055de1993 Use more optimized Compare for FName< operator
[CL 2493684 by Marc Audy in Main branch]
2015-03-27 09:54:52 -04:00
Gareth Martin
3464c297bb New feature: Landscape splines can store their meshes in landscape streaming levels
[CL 2489554 by Gareth Martin in Main branch]
2015-03-24 13:53:46 -04:00
Gareth Martin
205ab68312 Fix clang compile of TAutoPointer
[CL 2489481 by Gareth Martin in Main branch]
2015-03-24 12:59:19 -04:00
Gareth Martin
96c00adb85 Massively simplify (and comment!) TAutoPointer
[CL 2489467 by Gareth Martin in Main branch]
2015-03-24 12:43:14 -04:00
Marc Audy
9cc24ed248 Enable BP component editing on a per-actor instance basis
Add ability to prevent prevent inherited versions of components from editing the properties set at a higher level

[CL 2477265 by Marc Audy in Main branch]
2015-03-12 15:11:32 -04:00
Ben Marsh
0dd7eaebff Add a specific "compatible with engine version" field to the package file summary, to make it possible to share packages between Rocket and Perforce builds in hotfixes.
[CL 2475326 by Ben Marsh in Main branch]
2015-03-11 13:18:45 -04:00
Steve Robb
6f5860606b Unicast delegate lookup/removal no longer creates a delegate to do that.
static_asserts to ensure that TScriptDelegate and TWeakObjectPtr are constructed with the expected base classes.
Missing FWeakObjectPtr::GetEvenIfUnreachable implementation added.
TWeakObjectPtr::Get and TWeakObjectPtr::GetEvenIfUnreachable forwarded instead of being reimplemented.
New TScriptDelegate::IsBoundToObjectEvenIfUnreachable and TScriptDelegate::GetUObjectEvenIfUnreachable functions.
Some TScriptDelegate implementation changed to use TArray algorithms.

#codereview robert.manuszewski,max.preussner

[CL 2473694 by Steve Robb in Main branch]
2015-03-10 09:42:50 -04:00
Gil Gribb
fd3c212541 UE4 - occlusion queries for foliage and grass
[CL 2468748 by Gil Gribb in Main branch]
2015-03-04 09:58:16 -05:00
Daniel Lamb
68474716f3 Removed UPolys from non editor only data builds.
[CL 2466309 by Daniel Lamb in Main branch]
2015-03-02 10:32:16 -05:00
Maciej Mroz
52b4073f68 UE-8676 Crash when changing a Blueprint's vector variable to a transform variable
UE-9089 Better handling for UDS rename

Problem: When a property was of type on native struct (that is serialized binary) and the type was change to user defined struct (that is serialized using tags): the new structure tries to serialize tag from binary data of the old struct.
Solution: Use persistent guid to identify user defined structures (even after they are renamed).

#codereview Nick.Whiting, Robert.Manuszewski

[CL 2464813 by Maciej Mroz in Main branch]
2015-02-27 18:33:47 -05:00