Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ec1c172ffe777a3af45ec795e7bee066fb38b132
https://github.com/WebKit/WebKit/commit/ec1c172ffe777a3af45ec795e7bee066fb38b132
Author: Phipson Lee <[email protected]>
Date: 2025-02-25 (Tue, 25 Feb 2025)
Changed paths:
M Source/WebKit/Configurations/Base.xcconfig
A Source/WebKit/ModelProcess/StageMode/WKStageMode.h
A Source/WebKit/ModelProcess/StageMode/WKStageMode.swift
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm
M Source/WebKit/Modules/Internal/WebKitInternal.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebKitSwift/RealityKit/RKEntity.swift
M Source/WebKit/WebKitSwift/RealityKit/RealityKitBridging.h
Log Message:
-----------
Create a driver to update StageMode Interactions based on Gesture Input
https://bugs.webkit.org/show_bug.cgi?id=287820
rdar://145006262
Reviewed by Wenson Hsieh, Richard Robinson, Elliott Williams, and Ada Chan.
This PR adds the StageModeInteractionDriver, which is a helper class object
used in the ModelProcessModelPlayerProxy
to control how the model responds to the stagemode transform updates, based on
the applied stagemode attribute. When
stagemode is set to 'none' we ignore all transforms passed to the player proxy.
When stagemode is set to 'orbit' we
use the translation from the transform to rotate the model. To separate
stagemode updates from Javascript updates,
we introduce an Interaction Container that wraps around the model entity, on
which the stagemode updates will be applied.
The driver will be implemented in
https://bugs.webkit.org/show_bug.cgi?id=287601.
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm:
(WebKit::ModelProcessModelPlayerProxy::didFinishLoading):
(WebKit::ModelProcessModelPlayerProxy::beginStageModeTransform):
(WebKit::ModelProcessModelPlayerProxy::updateStageModeTransform):
(WebKit::ModelProcessModelPlayerProxy::endStageModeInteraction):
(WebKit::ModelProcessModelPlayerProxy::setStageMode):
(WebKit::ModelProcessModelPlayerProxy::applyStageModeOperationToDriver):
- Updates the callbacks to use the interaction driver
- Also adds helper function to update the driver's internal state based on the
stagemode attribute
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.h:
* Source/WebKit/UIProcess/Cocoa/WebKitSwiftSoftLink.mm:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebKitSwift/StageMode/WKStageMode.swift: Added.
(WKStageModeInteractionDriver.stageModeOperation):
(WKStageModeInteractionDriver.interactionDidBegin(_:)):
(WKStageModeInteractionDriver.interactionDidUpdate(_:)):
(WKStageModeInteractionDriver.interactionDidEnd):
(WKStageModeInteractionDriver.operationDidChange(_:)):
- Adds the necessary APIs to apply the transform to the interaction target.
* Source/WebKit/WebKitSwift/StageMode/WKStageModeBridging.h: Copied from
Source/WebKit/WebKitSwift/WebKitSwift.h.
* Source/WebKit/WebKitSwift/WebKitSwift.h:
Canonical link: https://commits.webkit.org/291028@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