Update SonyControllers to use the known user index as the platform user, this way we will allocate a new platform user for different input devices.
#jira UE-147796
#rb trivial
#rnx
#preflight 629910378f4373181f425f6e
[CL 20474934 by ben hoffman in ue5-main branch]
Fall back to using the first logged in account on beacon connection when no other player is found.
Fix resource leak in windows splash screen.
[REVIEW] [at]chris.gagnon, [at]eric.knapik, [at]sam.zamani
#preflight 628e6f2982597362d1061d09
#ROBOMERGE-AUTHOR: michael.atchison
#ROBOMERGE-SOURCE: CL 20372471 via CL 20372807 via CL 20373493 via CL 20373519
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)
[CL 20374253 by michael atchison in ue5-main branch]
Add a callback to OnUserLoginChangedEvent to the device mapper. This will provide platforms a hook for when a platform user is logged in or out and allow you to remap any previously paired input devices away from the now logged out user.
#jira UE-147792
#rb david.harvey
#preflight 628d2d25347b7778b6ceb043
[CL 20363459 by ben hoffman in ue5-main branch]
The previous default of CanBeUsedOnAnyThread() proved unsafe since some output devices can safely be used on any thread but cannot safely be used during a crash. CanBeUsedOnAnyThread() was used pre-5.1 to control serialization to an output device during a crash, but optimizations in 5.1 have uncovered that some of these were never safe.
#preflight 62856506614041edb7a6de4b
#rb Zousar.Shaker
#rnx
[CL 20280354 by Devin Doucette in ue5-main branch]
Moved Math forward declarations from CoreFwd.h to Math/MathFwd.h
#rb steve.robb
#preflight 62837df43c1cdc59e2b07dd5
[CL 20240602 by Andrew Davidson in ue5-main branch]
Replace uses of the old "int32 ControllerID" in favor of the new platform input device mapper. The new input device mapper will still call the old CoreDelegates until they are deprecated/removed, so there is no behavioral change here. Using the platform input device mapper will allow us to pass specific Input Device ID's around to slate and the game, so that we can properly route input events to and from specific devices.
#jira UE-147796
#rb david.harvey
#rb Chris.Babcock
#preflight 6273ebe6ca0ad32a967fbd5e
[CL 20144897 by ben hoffman in ue5-main branch]
Move the FPlatformInputDeviceState and EInputDeviceConnectionState declarations to the CoreMiscDefines file so that they can be correctly exported in the NoExports.h file. We need them to be in a different file than the base GenericPlatformInputDeviceMapper.h because we need to keep the APPLICATIONCORE_API on that class, which is not available in the NoExports.h file.
#jira UE-147801
#rb trivial
#rnx
#preflight 62632b02d4489684ed592c34
[CL 19902249 by ben hoffman in ue5-main branch]
#p4v-cherrypick 19897004
#ROBOMERGE-AUTHOR: james.doverspike
#ROBOMERGE-SOURCE: CL 19896998 via CL 19897000 via CL 19897003 via CL 19897308 via CL 19897311
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19897438 by james doverspike in ue5-main branch]
- Create the FInputDeviceID struct, which represents a single input device such as a gamepad, keyboard, or mouse. These are globally unique, and allocated by the Platform Input Device Mapper. This struct will replace the old "int32 ControllerID" that is used in various places to provide some type safety and maintainability.
- Functions to query all the currently connected devices on a given platform, as well as get their current state and owning platform users. These can be exposed to blueprints via the local player, game instance, or even a subsystem in the future. See UE-147801 for progress on Blueprint Support.
- New delegates for the ConnectionChange and PairingChange of a gamepad device that utilize the new FInputDeviceId and FPlatformUserId
- Add functions to the GenericApplicationMessageHandler for the "OnController_X" functions. These will be implemented later when I can replace the old uses of the "int32 ControllerId". See UE-147796.
#jira UE-147798
#rb David.Harvey
#preflight 62617c186971732e1318d0ec
[CL 19851010 by ben hoffman in ue5-main branch]