This is required for c++ modules/header units in order to decide if constexpr/const value should be available to outside module
#preflight 635c0b5c1803be35c767e0ea
#rb none
[CL 22835882 by henrik karlsson in ue5-main branch]
When setting the input device connection state, only call the delegate that there was a connection state change if the state is actually different than the existing one.
#rb david.harvey
#rnx
#preflight 634dd24f9c29024c9853f17e
[CL 22619965 by ben hoffman in ue5-main branch]
Memory improvements on top of performance improvements in 11535961.
Allow the hash allocation to shrink for calls to Empty(), Shrink(), Compact() and CompactStable().
Let TSparseArray::Compact() shrink the data array just as for Shrink() and CompactStable().
Note: The private function TSet::ShouldRehash() is only called from Empty() and ConditionalRehash(), and ConditionalRehash() with bAllowShrinking=true is only called from Relax() via Shrink(), so there should be no impact on other/growth scenarios.
Modify GetAllocatedSize() for TSet, TMap and TSparseArray to only return any dynamically allocated size from the underlying allocators and change return type from uint32 to SIZE_T (just as for TArray and FContainerAllocatorInterface).
#rb johan.torp,steve.robb
#preflight 634952f4ce524ed356dafde7, 63496f80f622f6c4bb1c0321, 634d65df9c29024c982ecf26
[CL 22595144 by pj kack in ue5-main branch]
-Stereo sounds can be used to provide two-channel haptics, provided the platform supports that.
#jira UE-165614
#rb Robert.Srinivasiah
#preflight 63372027f76de2d4d5bb1f84
[CL 22286550 by jeff fisher in ue5-main branch]
- Replaced delegates to communicate from StoreKit to C++ by an internal Objective-C proxy type that sequences requests/notifications on the proper thread
- StoreKit calls are made on main thread. There is no documentation about thread safety on SKPaymentQueue API so I did not want to take risks. All notifications to the observer are already made on the main thread
- C++ plugin code is expected to be run on game thread
- SKRequests delegate methods are received in a worker thread so they need to be sequenced to the game thread
- Reduced the amount of notification functions between C++ and Objective-C layers
- Remove receipts for finalized purchases
- Removed per user cached transactions because iOS/StoreKit is single user. It was confusing and was already lead to some bugs
- Product quantity was ignored (it is possible to buy several items of the same type in one purchase)
- Hidden some private types
- Added C++ RAII wrapper for Objective-C instances to automatically handle manual retain/release
Tested using StoreKit testing in Xcode: https://developer.apple.com/documentation/xcode/setting-up-storekit-testing-in-xcode
Was able to test consumable, non consumable, interrupted and deferred transactions
#jira UE-163490
#review @Bertrand.Carre, @Axel.Riffard, @Jack.Porter, @Adam.Kinge, @Roman.Dzieciol, @Josh.Markewicz
#preflight 6335cd81a852bd922cf47e33
[CL 22266047 by Rafa Lecina in ue5-main branch]
#jira UE-161578 - Game stuck on splash screen
#rb Vincent.Gauthier
#preflight 632b651a7b582f58abe53440
[CL 22140481 by patrick laflamme in ue5-main branch]
- Moved boilerplate program startup code into a shared Obj-C class, MacProgramDelegate
#rb zack.neyland
#fyi brandon.schaefer,robert.seiver
#preflight 632b45dba4769ad71456b18b
[CL 22116672 by Josh Adams in ue5-main branch]