Plus cherry-pick these commits from SDL main:
f39e155 [release-2.0.18] Fixed undefined behavior in SDL_memset() (thanks andrewrk!)
74ee7c0 Fixed potential buffer overflow in YUV conversion
52e4e52 autotools, cmake: tighten Xfixes check && explicitly test BarrierEventID
Switch SDL_ConfineCursor calls to new SDL_SetWindowMouseRect SDL2 functionality**
** Hat tip Ethan Lee
[at]Brandon.Schaefer
#jira none
#preflight 61dc62c42e0e436c72901f1b
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18561443 in //UE5/Release-5.0/... via CL 18561451 via CL 18561471
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)
[CL 18561490 by michael sartain in ue5-main branch]
Plus cherry-pick these commits from SDL main:
f39e155 [release-2.0.18] Fixed undefined behavior in SDL_memset() (thanks andrewrk!)
74ee7c0 Fixed potential buffer overflow in YUV conversion
52e4e52 autotools, cmake: tighten Xfixes check && explicitly test BarrierEventID
Switch SDL_ConfineCursor calls to new SDL_SetWindowMouseRect SDL2 functionality**
** Hat tip Ethan Lee
[at]Brandon.Schaefer
#jira none
#preflight 61dc62c42e0e436c72901f1b
#ROBOMERGE-AUTHOR: michael.sartain
#ROBOMERGE-SOURCE: CL 18561443 in //UE5/Release-5.0/... via CL 18561451
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18561471 by michael sartain in ue5-release-engine-test branch]
Tested on iOS and macOS.
#jira UE-134182
#rb will.damon
[FYI] axel.riffard
#preflight 61d5a309ec35d1b940dc844d
#ROBOMERGE-AUTHOR: richard.wallis
#ROBOMERGE-SOURCE: CL 18529555 in //UE5/Release-5.0/... via CL 18529561 via CL 18529568
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)
[CL 18529569 by richard wallis in ue5-main branch]
#jira UE-134906
#rb Axel.Riffard
#lockdown cristina.riveron
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18257545 in //UE4/Release-4.27/... via CL 18458535 via CL 18458744 via CL 18485660 via CL 18485691 via CL 18485721
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)
[CL 18485734 by jack porter in ue5-main branch]
#jira UE-134906
#rb Axel.Riffard
#lockdown cristina.riveron
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18257545 in //UE4/Release-4.27/... via CL 18458535 via CL 18458744 via CL 18485660 via CL 18485691
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18485721 by jack porter in ue5-release-engine-test branch]
- Introduced IScreenReaderNavigationPolicy. This is an interface class that helps the screen reader navigate to the appropriate target accessible widget.
- Introduced FScreenReaderDefaultNavigationPolicy. This is a policy that all FScreenReaderUsers have by default. It helps the screen reader user find target accessible widgets that are enabled and can be focused on.
- Introduced focus navigation functions to FScreenReaderUser. This is the means clients can control and shift accessible focus for FScreenReaderUsers.
- IAccessibleWidget can now retrieve the logical next and previous widget in the accessible widget hierarchy. This functionality is similar to that of mobile screen readers like Voiceover and Android Talkback which allow users to navigate around the UI hierarchy with left and right swipes.
- IAccessibleWidget can now search for a target widget from a source widget based on a search criteria. This is useful for searching for widgets by characteristics (such as enabled state, widget type etc).
- Fixed a small bug in accessible focus where an accessible widget with application focus cannot receive accessible focus again and have its contents announced to the end user.
#rb: Prajwal.Manjunath
#jira: UE-130926
#preflight: 61baf981440d71c977b3089a
[CL 18477319 by Leon Huang in ue5-main branch]
#rb danny.couture
#ROBOMERGE-AUTHOR: martin.sevigny
#ROBOMERGE-SOURCE: CL 18405111 in //UE5/Release-5.0/... via CL 18405120 via CL 18405134
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v897-18405271)
[CL 18406731 by martin sevigny in ue5-main branch]
- Moved FAccessibleEventArgs out of FGenericAccessibleMessageHandler to avoid the need to include GenericAccessibleInterfaces.h in header files where all
they really need is a forward declaration of the struct.
- Removed instances of FGenericAccessibleMessageHandler::FAccessibleEventArgs to FAccessibleEventArgs.
- Updated API for IAccessibleWidget and IAccessibleWindow that deal with getting and setting focus to also take a user index parameter. This facilitates multiple accessible users for the same application.
-Updated platform files that leverage the old IAccessibleWidget and IAccessibleWindow focus API
- Introduced FGenericAccessibleUser and FGenericAccessibleUserRegistry to GenericAccessibleInterfaces.h. An FGenericAccessibleUser is meant to be analogous to FSlateUser that keeps track of hardware users' focus. An FGenericAccessibleUserRegistry is a registry of FGenericAccessibleUsers. These interfaces are meant to insulate FGenericAccessibleMessageHandler from storing and tracking
focus etc when that should be an implementation detail by other modules.
- Refactored how FSlateCoreAccessibleWidgets set focus in the application. Accessible focus is now unified to a single code path that starts from FSlateAccessibleMessageHandler. Requests to shift accessible focus should be done by raising a Slate accessible event or through IAccessibleWidget::SetUserFocus()
- Introduced finer grain querying of focus capabilities for an IAccessibleWidget. Users can now check if an AccessibleWidget supports regular focus (keyboard/gamepad), if it supports accessible focus and if the widget can currently accept regular or accessible focus.
-Updated platforms to use the new FGenericAccessibleUser and FGenericAccessibleUserRegistry ApI to update and retrieve user focus.
#preflight: 61af2481813adc3fbb2ca7d5
[CL 18396441 by Leon Huang in ue5-main branch]
-Adds support for getting velocity and accelleration through GetControllerTransformForTime.
-Adds mechanism for using openxr chain structs which are defined in and consumed by an extension plugin.
-Support for defining a swapchain and renderbridge in an extension plugin.
-Some OpenXR fixes related to runtimes not supplying tracking data of various types. Basically if the data isn't being provided we should not copy it out because it might be full of nonsense. Also we would generally rather preserve our last cached position than overwrite with zero/identity.
-Moving OpenXRPlatformRHI.h OpenXRHMD_RenderBridge.h and _Swapchain.h back to private folder.
-Previously one could not run the same haptic effect on two devices simultaneously and have it behave correctly because most of the per-effect-play data for each effect was shared by all controllers. This refactors so that the necessary runtime data is per controller and the constant bulk data is shared by all controllers.
-Adding infrastructure for playing haptics on a VR HMD.
-Refactored haptic data resampling into the oculus plugin because that is plugin specific.
swarm reviews review-18220544 and review-18220542
#rb Robert.Srinivasiah, Jules.Blok, Steve.Smith
#ROBOMERGE-AUTHOR: jeff.fisher
#ROBOMERGE-SOURCE: CL 18271123 in //UE5/Release-5.0/... via CL 18271142
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18271147 by jeff fisher in ue5-release-engine-test branch]
around for modules that require more accessibility information such as User/Controller Id.
#rnx
#rb: Patrick.Boutot
#preflight: 617b17e05aecf4000120a61a
#ROBOMERGE-AUTHOR: leon.huang
#ROBOMERGE-SOURCE: CL 17974834 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
[CL 17974837 by leon huang in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
- This is already handled in the engine loop and could lead to multiple sleeps being done (see ShouldThrottleCPUUsage).
#rb Francis.Hurteau, Matt.Kuhlenschmidt
#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 17660067 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
[CL 17660082 by danny couture in ue5-release-engine-test branch]