- 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 back button to tutorials.
(Also fixed overridable text on next button and provided same for back button)
[CL 2448653 by Matthew Griffin in Main branch]
API break: added a new pure virtual to IAssetEditorInstance - InvokeTab().
Tutorials were attempting to load a bogus asset for editing for each stage, causing stalls each time the user clicked Next.
Re-arranged code that attempted to open asset editor tabs so that it wasnt attempting ot open a bogus asset (used the correct member).
Order of tab manager preference is now Per-stage Blueprint asset editor->Per-'tutorial asset' editor->level editor.
Added new function to allow us to open tabs in asset editors. This avoids a dangerous up-cast to FAssetEditorToolkit to access its tab manager.
#codereview Bruce.Nesbit
[CL 2403225 by Thomas Sarkanen in Main branch]
Rearranged layout/padding a little to compensate for larger apparent button size.
Kept larger button hitbox, which required some custom border handling for the button.
TTP# 348109 - EDITOR: TUTORIALS: Add green buttons to tutorials
[CL 2314257 by Thomas Sarkanen in Main branch]
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]
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]
Disabled floating navigation widget (but have not removed it yet).
Built navigation controls into the content widget.
[CL 2299461 by Thomas Sarkanen in Main branch]
Expanded tagging system to more general metadata. Supplied a base class with simple RTTI as well as a simple tagging metadata that will be used in place of the FName tag. Once all tags are converted the Tag field will be deprecated.
reviewed by Nick.Atamas
[CL 2275842 by Thomas Sarkanen in Main branch]
Tutorials can now be created using the right-click asset menu->Misc->Tutorial Blueprint.
Importer allows you to pick a UDN file, which will then be converted into a new Tutorial Asset.
Adapted UDN parser to also output rich text format for the purposes of this importer. This may be deprecated at some point soon, once existing tutorials have been imported.
Rich text editor added to tutorial details customization. Features; font, color, size & hyperlinks for now.
Rich text display also added to content widgets.
Added option to optionally show the widget highlight if only the bubble widget is required.
#codereview Bruce.Nesbit
[CL 2256027 by Thomas Sarkanen in Main branch]