Introduce versioning system to GENERATED_*BODY macros
Search for existing functions using case sensitive and whole word match.
Move checks for existing of *_Validate and *_Implementation functions to *generated.cpp to allow changing that code in hotfixes.
#codereview Robert.Manuszewski
[CL 2508131 by Mikolaj Sieluzycki in Main branch]
- 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]
- Added support for circle/sphere collision shapes
- Added support for rotating the collision/rendering shapes
- Added more specific statistics about baked collision geometry (splitting it out by primitive type, etc...)
- Added automatic identification of custom geometry that forms a rectangle, generating more efficient collision shapes than treating them as convex would
- Changed collision rendering color to be blue instead of yellow, moving further from the selection color white which helps with comprehension of what items are selected
- Added a subdued background for shapes, allowing the entire shape to be selected with a click
- Hid 'Add Polygon' button when not in a geometry editing mode
- Added an 'Add Box' toolbar button (visible when editing geometry)
- Added an 'Add Circle' toolbar button (only visible when editing collision geometry)
- Prevented an unnecessary texture analysis pass from being done each frame when editing sprites (although it now triangulates the shapes each frame, which can be cached in the future)
- Prevented hit testing on the pivot display widget, avoiding a 'missed click' feeling if you tried to select a shape or edge that overlapped with it
Internal details:
- Renamed FSpritePolygon to FSpriteGeometryShape
- Renamed FSpritePolygonCollection to FSpriteGeometryCollection (and renamed Polygons to Shapes inside of it)
- Changed definition of FSpriteGeometryShape::BoxPosition to be the center of the shape instead of the top-left corner
- Changed definition of FSpriteGeometryShape::Vertices to be defined in shape local space, relative to BoxPosition with no rotation applied, and added conversion methods to move to and from texture space
- Most references to polygons have been replaced with shapes
- Changed how selection state is tracked in the viewport editor client, WIP
- Started to move geometry editing/rendering code out of the sprite editor viewport client, so it can be shared with other tools in the future, WIP
[UE-5696]
[CL 2498160 by Michael Noland in Main branch]
FriendlyName metadata is now deprecated and all uses have been removed, a metadata redirector has been setup.
Changed most/all current instances of FriendlyName metadata over to DisplayName.
#jira UE-12048 - Ability to translate Blueprint node names (UFunction names)
[CL 2494033 by Michael Schoell in Main branch]
*because of tons of changes, I will supply the changelists in the email because it was too large for this checkin*
[CL 2483008 by Todd Eckert in Main branch]
Adding Texture LOD settings to Device Profiles
- this will improve how we currently edit and override lod settings on a per device type bases.
- LOD Settings can now be set in the Device Profile Editor
- Any device profiles with no values set for LOD Settings, will use the default objects.
- These can be found in BaseDeviceProfiles.ini in the /Script/Engine.TextureLODSettings section
- Appropriate defaults set for those groups not listed.
-Other fixes
- - Incorrect with_editor check in HTML5 target platform, changed to with_engine
[CL 2481510 by Terence Burns in Main branch]
#ttp 345815 - NUX: MVP: Quality pass on viewport gizmos (esp rotation)
#ttp 345479 - NUX:Level Viewport: Frustratingly glitchy input when trying to drag gizmos after right clicking (moves camera instead of actor!)
#jira UE-8762 - Extrude BSP on certain faces does not move in the corresponding direction of the mouse
#reviewedby Matt.Kuhlenschmidt
[CL 2476880 by Richard TalbotWatkin in Main branch]
#jira UE-10039 - The state of "Show Collections" in the Content Browser is not saved with the Editor layout
#reviewedby Matt.Kuhlenschmidt
[CL 2472013 by Richard TalbotWatkin in Main branch]