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

Reply via email to