#rb Francis.Hurteau
#jira UE-223781
#lockdown mark.lintott
- This issue was originally fixed in CL 23787156 but since then the editor has changed it's loading path and the 'LOAD_RegenerateBulkDataGuids' flag was no longer being passed to all of the packages being loaded as part of the map template.
- Taking a step back, the problem here is that the .umap package is correctly marked as being instanced but it's associated _BuiltData.uasset is not, so this time we will try fixing that instead by adding info about the _BuiltData.uasset package to the FLinkerInstancingContext being passed into the ::LoadPackage request. FEditorBulkData should then be made aware that it needs to generate new guids for the textures within that package.
- Deprecated LOAD_RegenerateBulkDataGuids as it is no longer needed as this was our only usecase.
- Deprecated FLinkerLoad::ShouldRegenerateGuids and removed the code using it from FEditorBulkData.
[CL 37221263 by paul chipchase in 5.5 branch]
#rb Francis.Hurteau, Maxime.Mercier
#ushell-cherrypick of 36789053 by nick.verigakis
#jira UE-226624
[FYI] scott.nelson
[RN] Encapsulated the property data argument of PropertyVisitor callbacks to an object that also includes the parent struct data.
[CL 36898819 by nick verigakis in 5.5 branch]
This fixes a bunch of race conditions occuring in runtime when we load Blueprints in the async thread
#rb ben.zeigler, danny.couture, Lukasz.Furman
#ushell-cherrypick of 36869223 by Dominic.Couture
[CL 36877655 by dominic couture in 5.5 branch]
* Can now get/set structs and objects
* Can now modify arrays and sets
* Needed to expose a new function for mutable sets
* Update tests
#rnx
#rb igor.dallavanzi, julien.lheureux, ryan.buehler
#jira UE-224563
[CL 36762554 by adrien logut in 5.5 branch]
This fixes a blueprint component data corruption problem where placed instances and subclass templates could lose their property changes when compiling the component class, and replaces the partial fix in 36403142.
This is the 5.5 version of CL 36629032
#jira UE-222390
#rb dan.oconnor
[CL 36761530 by ben zeigler in 5.5 branch]
While deadzone handling should always be done on the game's side, some device libraries also do some input filtering themselves so that noisy unintended input doesn't prevent power-saving modes from activating.
Since a game may allow players to set deadzones lower than the device defaults, we've added a way to inform the device of the player's deadzone settings.
#tests PIE, affected controllers, minimum, maximum, and default deadzone settings, among others.
#rb ben.woodhouse
[CL 36760458 by jibb smart in 5.5 branch]
Refactor CookByTheBookFinishedInternal to move all optional writes into the per-platform forloop so we can share data calculated for each platform between ReferencedSet.txt and the AssetRegistry.
Remove the no-longer-used SCOPED_BOOT_TIMING macros; we profile cook times using UE_SCOPED_HIERARCHICAL_COOKTIMER now.
#rnx
#rb Zousar.Shaker
[CL 36759205 by matt peters in 5.5 branch]
- Calls to OnPluginUnload (one GC call for all plugins)
- Calls to FCollectionManager::HandleObjectDeleted (one UpdateCaches call at the end)
#rb Dave.Belanger, Francis.Hurteau
[FYI] Rex.Hill
#rnx
[CL 36757086 by nick verigakis in 5.5 branch]
The underlying FSoftObjectPath has a GetLongPackageFName, which is sometimes useful to call via the owning soft pointer.
#rb francis.hurteau
[CL 36755375 by dave jones2 in 5.5 branch]
#rb Per.Larsson, Pere.Rifa
#jira UE-222974
- To enable the feature call FBulkData::SetCookedIndex with a FBulkDataCookedIndex set to a value between 1 - 255. Zero is currently reserved as the default/off state and can be quickly accessed via FBulkDataCookedIndex::Default.
-- Note that we might change the default value in the future, the main reason to keep it as zero for now is that it means FChunkId values will remain unchanged for bulkdata files not using the feature.
- When a bulkdata object has a cooked index it will output to a file with that value based on the following format <packagename>.CookedIndex.<extension> so a normal bulkdata payload with a cooked index of 5 would end up writing to <packagename>.005.ubulk.
-- This allows the calling systems to control which bulkdata payloads go to which sub files.
- We currently do not support memory mapped payloads or payloads with the duplicate non optional flags. Support and testing for this will be added later.
- Tested saving/editing/loading packages with bulkdata in the editor (vector fields), build/cook/run normal builds, build/cook/run with feature enabled then running the new code with data produced from non modified code and running non modified exe on data generated with the new code.
### IPackageResourceManager
- Added overloads for most methods that take EPackageSegment that also take a FBulkDataCookedIndex and deprecated the older versions.
- Not all methods have been ported over, just the ones I could test but the rest will need the same treatment at some point.
### FLinkerSave
- Now stores each set of bulkdata, optional bulkdata and memory mapped payloads in separate archives, one per cooked index.
- Added a method ::HasCookedIndexBulkData that returns if any of the normal bulkdata payloads contain a non default cooked index. This is used for some paranoid checks when saving packages to the workspace domain.
[CL 36754477 by paul chipchase in 5.5 branch]