Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 547dbe34daf3f291a9314089886704971b9e13d2
https://github.com/WebKit/WebKit/commit/547dbe34daf3f291a9314089886704971b9e13d2
Author: Ada Chan <[email protected]>
Date: 2025-06-09 (Mon, 09 Jun 2025)
Changed paths:
A
LayoutTests/model-element/model-element-update-transform-after-resize-expected.txt
A LayoutTests/model-element/model-element-update-transform-after-resize.html
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm
M Source/WebKit/ModelProcess/cocoa/WKModelProcessModelLayer.mm
Log Message:
-----------
[Model Element] Update entity transform if the model size changes with
stagemode=orbit
https://bugs.webkit.org/show_bug.cgi?id=294162
rdar://151031284
Reviewed by Mike Wyrzykowski.
When stagemode is set to orbit, we ensure that the model's transform is
updated such that it can be rotated within the portal (fit according to
its bounding sphere). If the model size changes afterwards, we need to
update its transform based on the new size following the stagemode=orbit
fitting rules.
To fix this, when ModelProcessModelPlayerProxy is notified of a size change
and stagemode is orbit, set a flag to remember to recompute the model
transform for orbit fit after frame layout.
*
LayoutTests/model-element/model-element-update-transform-after-resize-expected.txt:
Added.
* LayoutTests/model-element/model-element-update-transform-after-resize.html:
Added.
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm:
(WebKit::ModelProcessModelPlayerProxy::updateTransformAfterLayout):
If m_transformNeedsUpdateAfterNextLayout is set, call
updateForCurrentStageMode()
to handle the transform update instead.
(WebKit::ModelProcessModelPlayerProxy::sizeDidChange):
Set m_transformNeedsUpdateAfterNextLayout to true if the model size changes
and stagemode is set to orbit.
(WebKit::ModelProcessModelPlayerProxy::updateForCurrentStageMode):
Logic moved from setStageMode().
(WebKit::ModelProcessModelPlayerProxy::setStageMode):
* Source/WebKit/ModelProcess/cocoa/WKModelProcessModelLayer.mm:
(-[WKModelProcessModelLayer layoutSublayers]):
Call ModelProcessModelPlayerProxy::updateTransformAfterLayout()
after frame layout.
Canonical link: https://commits.webkit.org/296026@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