[webkit-changes] [WebKit/WebKit] 20a424: Make it possible for TiledBacking clients to get a...

Simon Fraser noreply at github.com
Sat Jun 1 09:50:11 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 20a424c2a18db0f2c44b612d9eee3d6727bb39fb
      https://github.com/WebKit/WebKit/commit/20a424c2a18db0f2c44b612d9eee3d6727bb39fb
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2024-06-01 (Sat, 01 Jun 2024)

  Changed paths:
    M Source/WebCore/platform/graphics/TiledBacking.h
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
    M Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h
    M Source/WebCore/platform/graphics/ca/TileController.cpp
    M Source/WebCore/platform/graphics/ca/TileController.h
    M Source/WebCore/platform/graphics/ca/TileCoverageMap.cpp
    M Source/WebCore/platform/graphics/ca/TileCoverageMap.h
    M Source/WebCore/platform/graphics/ca/TileGrid.cpp
    M Source/WebCore/platform/graphics/ca/TileGrid.h
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h
    M Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm
    M Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp

  Log Message:
  -----------
  Make it possible for TiledBacking clients to get a PlatformLayerIdentifier
https://bugs.webkit.org/show_bug.cgi?id=274993
rdar://129082322

Reviewed by Sammy Gill.

AsyncPDFRenderer will soon be a client of multiple TiledBackings, and needs to be able
to correlate a TiledBacking with a GraphicsLayer. TiledBacking is implemented on PlatformCALayers
(not GraphicsLayers), so it's not possible to just ask for a GraphicsLayerCA* from a TiledBacking.

Resolve this by making it possible to get a PlatformLayerIdentifier from a TiledBacking, which
allows clients to reference both layers and TiledBackings via a PlatformLayerIdentifier.

PlatformCALayerClient thus exposes platformCALayerIdentifier(), and TileGrid, TileCoverageMap
and GraphicsLayerCA all implement it. TiledBacking exposes layerIdentifier().

Also add TiledBacking::didAddGrid() to mirror the existing TiledBacking::willRemoveGrid(),
and have TiledBacking expose the primary and secondary grid identifiers.

* Source/WebCore/platform/graphics/TiledBacking.h:
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayerClient.h:
* Source/WebCore/platform/graphics/ca/TileController.cpp:
(WebCore::TileController::layerIdentifier const):
(WebCore::TileController::primaryGridIdentifier const):
(WebCore::TileController::secondaryGridIdentifier const):
(WebCore::TileController::setContentsScale):
* Source/WebCore/platform/graphics/ca/TileController.h:
* Source/WebCore/platform/graphics/ca/TileCoverageMap.cpp:
(WebCore::TileCoverageMap::platformCALayerIdentifier const):
* Source/WebCore/platform/graphics/ca/TileCoverageMap.h:
* Source/WebCore/platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::platformCALayerIdentifier const):
* Source/WebCore/platform/graphics/ca/TileGrid.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h:
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm:
(WebKit::AsyncPDFRenderer::didAddGrid):
* Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

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



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


More information about the webkit-changes mailing list