Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 12938589f723f90a88f566ff6ba314aa4782cd79
https://github.com/WebKit/WebKit/commit/12938589f723f90a88f566ff6ba314aa4782cd79
Author: Sergio Villar Senin <[email protected]>
Date: 2025-07-03 (Thu, 03 Jul 2025)
Changed paths:
M Source/WebKit/UIProcess/API/APIUIClient.h
M Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp
M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp
M Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h
M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp
M Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h
Log Message:
-----------
[WEBXR][GTK][WPE] Implement startSession/endSession in the
PlatformXRCoordinator
https://bugs.webkit.org/show_bug.cgi?id=295281
Reviewed by Adrian Perez de Castro.
Provides an OpenXR implementation for starting/ending XR sessions. This involves
creating a XrSession using a surfaceless display with an offscreen context.
This commit provides an early version of an OpenXR render loop that is able
to poll OpenXR events related to the session lifetime and handle them
accordingly (like terminating the session). This render loop runs in a
different thread and will be eventually used to submit frames to the OpenXR
runtime.
There are still several missing blocks, like swapchains, reference spaces,
input sources, or actions that will be added in follow-up patches.
* Source/WebKit/UIProcess/API/APIUIClient.h: enable permission request
calls in !COCOA.
* Source/WebKit/UIProcess/XR/PlatformXRSystem.cpp:
(WebKit::PlatformXRSystem::requestPermissionOnSessionFeatures): fixed a message
check assertion. Sessions ended from web contents do not transition to idle
state.
(WebKit::PlatformXRSystem::setImmersiveSessionState): simplified code.
* Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.cpp:
(WebKit::OpenXRExtensions::loadMethods): get proc addrs for OpenGLES.
(): Deleted.
* Source/WebKit/UIProcess/XR/openxr/OpenXRExtensions.h:
* Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.cpp:
(WebKit::OpenXRCoordinator::~OpenXRCoordinator): destroy session.
(WebKit::OpenXRCoordinator::requestPermissionOnSessionFeatures): added.
(WebKit::OpenXRCoordinator::startSession): ditto.
(WebKit::OpenXRCoordinator::endSessionIfExists): ditto.
(WebKit::OpenXRCoordinator::createInstance): check EGL extension
availability before using it.
(WebKit::OpenXRCoordinator::initializeDevice): call loadMethods()
(WebKit::OpenXRCoordinator::initializeGraphicsBinding): added.
(WebKit::OpenXRCoordinator::createSessionIfNeeded): ditto.
(WebKit::OpenXRCoordinator::handleSessionStateChange): ditto.
(WebKit::OpenXRCoordinator::pollEvents): ditto.
(WebKit::OpenXRCoordinator::renderLoop): ditto.
* Source/WebKit/UIProcess/XR/openxr/PlatformXROpenXR.h:
Canonical link: https://commits.webkit.org/296971@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes