Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a9ca2712f944864544be392b09fdc34ab5d354d5
https://github.com/WebKit/WebKit/commit/a9ca2712f944864544be392b09fdc34ab5d354d5
Author: Simon Fraser <[email protected]>
Date: 2024-05-14 (Tue, 14 May 2024)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
A Source/WebCore/platform/graphics/TileGridIdentifier.h
M Source/WebCore/platform/graphics/TiledBacking.h
M Source/WebCore/platform/graphics/ca/TileController.cpp
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
Log Message:
-----------
Allow a TiledBackingClient to be a client for multiple TiledBackings
rdar://128073464
https://bugs.webkit.org/show_bug.cgi?id=274164
Reviewed by Sammy Gill.
AsyncPDFRenderer will need to handle multiple TiledBackings in future, and
currently
there's no way to tell which TiledBacking a client callback is associated with.
So
pass a `TiledBacking&` to all the client callbacks.
Also make TileGrid identifiers unique; previously they were 0 or 1, but that
allows
for confusion between TileGrids belonging to different TiledBackings. So give
TileGrid
a TileGridIdentifier and pass it to the client callbacks.
We also have to add TiledBackingClient::willRemoveGrid() so that clients don't
accumulate data for TileGrids that have gone away (now that the identifiers are
monotonically increasing). AsyncPDFRenderer implements this, but it will
actually
never get hit because AsyncPDFRenderer doesn't enable two-level tile caches.
* Source/WebCore/Headers.cmake:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/TileGridIdentifier.h: Added.
* Source/WebCore/platform/graphics/TiledBacking.h:
* Source/WebCore/platform/graphics/ca/TileController.cpp:
(WebCore::TileController::setContentsScale):
(WebCore::TileController::setCoverageRect):
(WebCore::TileController::willRepaintTile):
(WebCore::TileController::willRemoveTile):
(WebCore::TileController::willRepaintAllTiles):
* Source/WebCore/platform/graphics/ca/TileGrid.cpp:
(WebCore::TileGrid::TileGrid):
* Source/WebCore/platform/graphics/ca/TileGrid.h:
(WebCore::TileGrid::identifier const):
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.h:
(WebKit::TileForGrid::computeHash const):
(WTF::TileForGridHash::hash):
(WTF::TileForGridHash::equal):
(WTF::HashTraits<WebKit::TileForGrid>::emptyValue):
(WTF::HashTraits<WebKit::TileForGrid>::deletedValue):
(WebKit::AsyncPDFRenderer::TileRenderInfo::equivalentForPainting const):
Deleted.
(WebKit::AsyncPDFRenderer::TileRenderInfo::equivalentForPaintingIgnoringContentVersion
const): Deleted.
(WebKit::AsyncPDFRenderer::renderInfoForTile): Deleted.
(WebKit::AsyncPDFRenderer::enqueueTilePaintIfNecessary): Deleted.
* Source/WebKit/WebProcess/Plugins/PDF/UnifiedPDF/AsyncPDFRenderer.mm:
(WebKit::AsyncPDFRenderer::willRepaintTile):
(WebKit::AsyncPDFRenderer::willRemoveTile):
(WebKit::AsyncPDFRenderer::willRepaintAllTiles):
(WebKit::AsyncPDFRenderer::coverageRectDidChange):
(WebKit::AsyncPDFRenderer::tilingScaleFactorDidChange):
(WebKit::AsyncPDFRenderer::willRemoveGrid):
(WebKit::operator<<):
Canonical link: https://commits.webkit.org/278791@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