Branch: refs/heads/webkitglib/2.50 Home: https://github.com/WebKit/WebKit Commit: b6e1e980e97d2f97faaa827abb79628c574cd57b https://github.com/WebKit/WebKit/commit/b6e1e980e97d2f97faaa827abb79628c574cd57b Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-29 (Fri, 29 Aug 2025)
Changed paths: M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h M Source/WebKit/UIProcess/XR/openxr/OpenXRInput.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRInput.h M Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h M Source/WebKit/UIProcess/XR/openxr/OpenXRUtils.h M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp M Source/cmake/OptionsGTK.cmake M Source/cmake/OptionsWPE.cmake Log Message: ----------- Cherry-pick 299314@main (488518e09658). https://bugs.webkit.org/show_bug.cgi?id=298036 [WebXR][OpenXR] Implement WebXR Hand Input module https://bugs.webkit.org/show_bug.cgi?id=298036 Reviewed by Adrian Perez de Castro. This change adds support for the WebXR Hand Input module (https://www.w3.org/TR/webxr-hand-input-1/) for ports using OpenXR. It basically uses an object called tracker that is able to collect pose information about the hand joints. The OpenXR API actually provide information for 1 joint more than the WebXR spec (the palm joint) so we must omit it when submitting joints information to WebXR. Systems supporting the XR_EXT_hand_joints_motion_range extension can make use of it and request hand tracking data considering the full motion range of a human hand. A new system properties object was added so that different parts of the code can easily check the runtime capabilities (for example the tracker object should not be created if the runtime does not support hand tracking even if the extension is supported, as it happens typically in desktops). * Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp: (WebKit::OpenXRExtensions::loadMethods): * Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h: * Source/WebKit/UIProcess/XR/openxr/OpenXRInput.cpp: (WebKit::OpenXRInput::create): (WebKit::OpenXRInput::initialize): * Source/WebKit/UIProcess/XR/openxr/OpenXRInput.h: * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp: (WebKit::OpenXRInputSource::create): (WebKit::OpenXRInputSource::initialize): (WebKit::OpenXRInputSource::collectHandTrackingData const): (WebKit::OpenXRInputSource::collectInputSource const): * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h: * Source/WebKit/UIProcess/XR/openxr/OpenXRUtils.h: (WebKit::systemProperties): * Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp: (WebKit::OpenXRCoordinator::getPrimaryDeviceInfo): (WebKit::OpenXRCoordinator::startSession): (WebKit::OpenXRCoordinator::createInstance): * Source/cmake/OptionsGTK.cmake: * Source/cmake/OptionsWPE.cmake: Canonical link: https://commits.webkit.org/299314@main Canonical link: https://commits.webkit.org/298234.90@webkitglib/2.50 Commit: 5519f11b83fd6524cd39779225d332693f58f6e6 https://github.com/WebKit/WebKit/commit/5519f11b83fd6524cd39779225d332693f58f6e6 Author: Sergio Villar Senin <svil...@igalia.com> Date: 2025-08-29 (Fri, 29 Aug 2025) Changed paths: M Source/WebKit/UIProcess/XR/openxr/OpenXRInputMappings.h M Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp M Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h Log Message: ----------- Cherry-pick 299321@main (1d859edbec26). https://bugs.webkit.org/show_bug.cgi?id=298091 [WebXR][OpenXR] Unreliable click events using hand interaction profile https://bugs.webkit.org/show_bug.cgi?id=298091 Reviewed by Adrian Perez de Castro. The pinch gesture is measured by the pinch_ext/value path which defines a float in the [0, 1] range, with 1 meaning both fingers touching. The OpenXR spec does not define a press or touch paths for pinches so clients must decide when the value means a pinch (or a click). Values returned by runtimes vary a lot so we cannot trust them. It's better so set our own threshold to consider a pinch gesture as taking action. Experience tells us that 0.9 is a very good one. There is no need to apply those thresholds for controllers, because runtimes provide touch and press events for physical elements like triggers or buttons. That's why we apply this threshold only when the hand interaction profile is used. * Source/WebKit/UIProcess/XR/openxr/OpenXRInputMappings.h: * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.cpp: (WebKit::OpenXRInputSource::updateInteractionProfile): (WebKit::OpenXRInputSource::collectButton const): * Source/WebKit/UIProcess/XR/openxr/OpenXRInputSource.h: Canonical link: https://commits.webkit.org/299321@main Canonical link: https://commits.webkit.org/298234.91@webkitglib/2.50 Compare: https://github.com/WebKit/WebKit/compare/95653630dd93...5519f11b83fd To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes