Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3fcfb8dbae92dbd836f42310986a8592eb3b2266
      
https://github.com/WebKit/WebKit/commit/3fcfb8dbae92dbd836f42310986a8592eb3b2266
  Author: Etienne Segonzac <[email protected]>
  Date:   2026-03-17 (Tue, 17 Mar 2026)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/Model/MeshImpl.cpp
    M Source/WebKit/GPUProcess/graphics/Model/MeshImpl.h
    M Source/WebKit/GPUProcess/graphics/Model/ModelTypes.h
    M Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.cpp
    M Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.h
    M Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.messages.in
    M Source/WebKit/GPUProcess/graphics/Model/WebKitMesh.h
    M Source/WebKit/GPUProcess/graphics/Model/WebKitMesh.mm
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h
    M Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.h
    M Source/WebKit/WebProcess/Model/Mesh.h
    M Source/WebKit/WebProcess/Model/WebModelPlayer.h
    M Source/WebKit/WebProcess/Model/WebModelPlayer.mm

  Log Message:
  -----------
  WebModelPlayer should support resizing
https://bugs.webkit.org/show_bug.cgi?id=310058
<rdar://172312511>

Reviewed by Mike Wyrzykowski.

When the layout size of the model changes, create new render buffers and
update the existing Mesh to use them.

* Source/WebKit/GPUProcess/graphics/Model/MeshImpl.cpp:
(WebKit::MeshImpl::updateRenderBuffers):
* Source/WebKit/GPUProcess/graphics/Model/MeshImpl.h:
* Source/WebKit/GPUProcess/graphics/Model/ModelTypes.h:
* Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.cpp:
(WebKit::RemoteMesh::updateRenderBuffers):
* Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.h:
* Source/WebKit/GPUProcess/graphics/Model/RemoteMesh.messages.in:
* Source/WebKit/GPUProcess/graphics/Model/WebKitMesh.h:
* Source/WebKit/GPUProcess/graphics/Model/WebKitMesh.mm:
(WebKit::createMetalTextures):
Extract the metal texture creation code in a static so it can be shared
between the initial creation and the resize code paths.

(WebKit::WebMesh::WebMesh):
(WebKit::WebMesh::updateRenderBuffers):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::createRenderBuffers):
Extract the render buffer creation code so it can be shared, add the
memory attribution to this new function.

(WebKit::createModelBackingInternal):
(WebKit::createIOSurfaces): Deleted.
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h:
* Source/WebKit/Scripts/webkit/opaque_ipc_types.tracking.in:
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.cpp:
(WebKit::RemoteMeshProxy::sizeDidChange):
* Source/WebKit/WebProcess/GPU/graphics/Model/RemoteMeshProxy.h:
* Source/WebKit/WebProcess/Model/Mesh.h:
(WebKit::Mesh::updateRenderBuffers):
(WebKit::Mesh::sizeDidChange):
* Source/WebKit/WebProcess/Model/WebModelPlayer.h:
* Source/WebKit/WebProcess/Model/WebModelPlayer.mm:
(WebKit::WebModelPlayer::load):
Keep track of the initial pixel size.
(WebKit::WebModelPlayer::sizeDidChange):
On size change, signal the mesh and configure the display delegate to
use the new buffers.

Canonical link: https://commits.webkit.org/309410@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to