[webkit-changes] [WebKit/WebKit] e00996: [CoordinatedGraphics] Introduce CoordinatedPlatfor...
Carlos Garcia Campos
noreply at github.com
Thu Dec 12 01:33:43 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e009963a7b178a306760b645e6a12e6a75ca4f4b
https://github.com/WebKit/WebKit/commit/e009963a7b178a306760b645e6a12e6a75ca4f4b
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2024-12-12 (Thu, 12 Dec 2024)
Changed paths:
M Source/WebCore/page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp
M Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp
M Source/WebCore/platform/TextureMapper.cmake
M Source/WebCore/platform/graphics/Damage.h
M Source/WebCore/platform/graphics/GraphicsLayer.cpp
M Source/WebCore/platform/graphics/GraphicsLayer.h
M Source/WebCore/platform/graphics/GraphicsLayerClient.h
M Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h
M Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.cpp
M Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.h
M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp
M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h
M Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.cpp
M Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.h
M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp
M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h
M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h
R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerCairo.cpp
R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp
A Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
A Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
A Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
A Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h
M Source/WebCore/rendering/RenderLayerBacking.cpp
M Source/WebCore/rendering/RenderLayerBacking.h
M Source/WebCore/rendering/RenderLayerCompositor.cpp
M Source/WebCore/rendering/RenderLayerCompositor.h
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp
M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h
Log Message:
-----------
[CoordinatedGraphics] Introduce CoordinatedPlatformLayer
https://bugs.webkit.org/show_bug.cgi?id=283966
Reviewed by Alejandro G. Castro.
Rename CoordinatedGraphicsLayer as GraphicsLayerCoordinated since it's
the coordinated graphics implementation of GraphicsLayer. Also add
CoordinatedPlatformLayer class to keep the layers composition state to
be applied by the threaded compositor. This is an initial patch that
still uses NicosiaCompositionLayer in CoordinatedPlatformLayer so that
it doesn't require changes in the composition side.
* Source/WebCore/page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp:
(WebCore::LayerRepresentation::platformLayerFromGraphicsLayer):
* Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::ScrollingTreeNicosia::applyLayerPositionsInternal):
* Source/WebCore/platform/TextureMapper.cmake:
* Source/WebCore/platform/graphics/Damage.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::supportsContentsTiling):
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::isGraphicsLayerCoordinated const):
(WebCore::GraphicsLayer::isCoordinatedGraphicsLayer const): Deleted.
* Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::PlatformLayer::createUpdateScope):
* Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.cpp:
(Nicosia::SceneIntegration::createUpdateScope):
(Nicosia::SceneIntegration::UpdateScope::UpdateScope):
(Nicosia::SceneIntegration::UpdateScope::~UpdateScope):
* Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.h:
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:
(WebCore::SkiaPaintingEngine::recordDisplayList const):
(WebCore::SkiaPaintingEngine::paintIntoGraphicsContext const):
(WebCore::SkiaPaintingEngine::paintGraphicsLayerIntoBuffer const):
(WebCore::SkiaPaintingEngine::createBuffer const):
(WebCore::SkiaPaintingEngine::paintLayer):
(WebCore::SkiaPaintingEngine::postPaintingTask):
(WebCore::SkiaPaintingEngine::performPaintingTask):
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:
* Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.cpp:
(WebCore::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper):
(WebCore::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper::updateGraphicsLayer):
* Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp:
(WebCore::CoordinatedAnimatedBackingStoreClient::create):
(WebCore::CoordinatedAnimatedBackingStoreClient::CoordinatedAnimatedBackingStoreClient):
(WebCore::CoordinatedAnimatedBackingStoreClient::update):
(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded):
(WebCore::CoordinatedAnimatedBackingStoreClient::setCoverRect): Deleted.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerCairo.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp: Added.
(WebCore::CoordinatedPlatformLayer::create):
(WebCore::CoordinatedPlatformLayer::CoordinatedPlatformLayer):
(WebCore::CoordinatedPlatformLayer::setOwner):
(WebCore::CoordinatedPlatformLayer::owner const):
(WebCore::CoordinatedPlatformLayer::invalidateClient):
(WebCore::CoordinatedPlatformLayer::notifyCompositionRequired):
(WebCore::CoordinatedPlatformLayer::setPosition):
(WebCore::CoordinatedPlatformLayer::syncPosition):
(WebCore::CoordinatedPlatformLayer::position const):
(WebCore::CoordinatedPlatformLayer::setBoundsOrigin):
(WebCore::CoordinatedPlatformLayer::syncBoundsOrigin):
(WebCore::CoordinatedPlatformLayer::boundsOrigin const):
(WebCore::CoordinatedPlatformLayer::setAnchorPoint):
(WebCore::CoordinatedPlatformLayer::anchorPoint const):
(WebCore::CoordinatedPlatformLayer::setSize):
(WebCore::CoordinatedPlatformLayer::size const):
(WebCore::CoordinatedPlatformLayer::setTransform):
(WebCore::CoordinatedPlatformLayer::transform const):
(WebCore::CoordinatedPlatformLayer::setChildrenTransform):
(WebCore::CoordinatedPlatformLayer::childrenTransform const):
(WebCore::CoordinatedPlatformLayer::didUpdateLayerTransform):
(WebCore::CoordinatedPlatformLayer::setVisibleRect):
(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):
(WebCore::CoordinatedPlatformLayer::setScrollingNodeID):
(WebCore::CoordinatedPlatformLayer::setDrawsContent):
(WebCore::CoordinatedPlatformLayer::setMasksToBounds):
(WebCore::CoordinatedPlatformLayer::setPreserves3D):
(WebCore::CoordinatedPlatformLayer::setBackfaceVisibility):
(WebCore::CoordinatedPlatformLayer::setOpacity):
(WebCore::CoordinatedPlatformLayer::setContentsVisible):
(WebCore::CoordinatedPlatformLayer::contentsVisible const):
(WebCore::CoordinatedPlatformLayer::setContentsOpaque):
(WebCore::CoordinatedPlatformLayer::setContentsRect):
(WebCore::CoordinatedPlatformLayer::setContentsRectClipsDescendants):
(WebCore::CoordinatedPlatformLayer::setContentsClippingRect):
(WebCore::CoordinatedPlatformLayer::setContentsScale):
(WebCore::CoordinatedPlatformLayer::setContentsBuffer):
(WebCore::CoordinatedPlatformLayer::setContentsBufferNeedsDisplay):
(WebCore::CoordinatedPlatformLayer::setContentsImage):
(WebCore::CoordinatedPlatformLayer::setContentsColor):
(WebCore::CoordinatedPlatformLayer::setContentsTileSize):
(WebCore::CoordinatedPlatformLayer::setContentsTilePhase):
(WebCore::CoordinatedPlatformLayer::setDirtyRegion):
(WebCore::CoordinatedPlatformLayer::setDamage):
(WebCore::CoordinatedPlatformLayer::setFilters):
(WebCore::CoordinatedPlatformLayer::setMask):
(WebCore::CoordinatedPlatformLayer::setReplica):
(WebCore::CoordinatedPlatformLayer::setBackdrop):
(WebCore::CoordinatedPlatformLayer::setBackdropRect):
(WebCore::CoordinatedPlatformLayer::setAnimations):
(WebCore::CoordinatedPlatformLayer::setChildren):
(WebCore::CoordinatedPlatformLayer::setEventRegion):
(WebCore::CoordinatedPlatformLayer::setDebugBorder):
(WebCore::CoordinatedPlatformLayer::setShowRepaintCounter):
(WebCore::CoordinatedPlatformLayer::needsBackingStore const):
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
(WebCore::CoordinatedPlatformLayer::updateContents):
(WebCore::CoordinatedPlatformLayer::purgeBackingStores):
(WebCore::CoordinatedPlatformLayer::paint):
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h: Added.
(WebCore::CoordinatedPlatformLayer::id const):
(WebCore::CoordinatedPlatformLayer::compositionLayer const):
(WebCore::CoordinatedPlatformLayer::lock):
(WebCore::CoordinatedPlatformLayer::client const):
(WebCore::CoordinatedPlatformLayer::hasPendingTilesCreation const):
(WebCore::CoordinatedPlatformLayer::hasImageBackingStore const):
(WebCore::CoordinatedPlatformLayer::WTF_GUARDED_BY_LOCK):
* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp: Added.
(WebCore::GraphicsLayer::create):
(WebCore::GraphicsLayerCoordinated::GraphicsLayerCoordinated):
(WebCore::GraphicsLayerCoordinated::~GraphicsLayerCoordinated):
(WebCore::GraphicsLayerCoordinated::primaryLayerID const):
(WebCore::GraphicsLayerCoordinated::setNeedsDisplay):
(WebCore::GraphicsLayerCoordinated::setNeedsDisplayInRect):
(WebCore::GraphicsLayerCoordinated::markDamageRectsUnreliable):
(WebCore::GraphicsLayerCoordinated::setPosition):
(WebCore::GraphicsLayerCoordinated::syncPosition):
(WebCore::GraphicsLayerCoordinated::setBoundsOrigin):
(WebCore::GraphicsLayerCoordinated::syncBoundsOrigin):
(WebCore::GraphicsLayerCoordinated::setAnchorPoint):
(WebCore::GraphicsLayerCoordinated::setSize):
(WebCore::GraphicsLayerCoordinated::setScrollingNodeID):
(WebCore::GraphicsLayerCoordinated::setTransform):
(WebCore::GraphicsLayerCoordinated::setChildrenTransform):
(WebCore::GraphicsLayerCoordinated::setDrawsContent):
(WebCore::GraphicsLayerCoordinated::setMasksToBounds):
(WebCore::GraphicsLayerCoordinated::setPreserves3D):
(WebCore::GraphicsLayerCoordinated::setBackfaceVisibility):
(WebCore::GraphicsLayerCoordinated::setOpacity):
(WebCore::GraphicsLayerCoordinated::setContentsVisible):
(WebCore::GraphicsLayerCoordinated::setContentsOpaque):
(WebCore::GraphicsLayerCoordinated::setContentsRect):
(WebCore::GraphicsLayerCoordinated::setContentsRectClipsDescendants):
(WebCore::GraphicsLayerCoordinated::setContentsTileSize):
(WebCore::GraphicsLayerCoordinated::setContentsTilePhase):
(WebCore::GraphicsLayerCoordinated::setContentsClippingRect):
(WebCore::GraphicsLayerCoordinated::setContentsNeedsDisplay):
(WebCore::GraphicsLayerCoordinated::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCoordinated::setContentsDisplayDelegate):
(WebCore::GraphicsLayerCoordinated::createAsyncContentsDisplayDelegate):
(WebCore::GraphicsLayerCoordinated::setContentsToImage):
(WebCore::GraphicsLayerCoordinated::setContentsToSolidColor):
(WebCore::GraphicsLayerCoordinated::usesContentsLayer const):
(WebCore::GraphicsLayerCoordinated::setChildren):
(WebCore::GraphicsLayerCoordinated::addChild):
(WebCore::GraphicsLayerCoordinated::addChildAtIndex):
(WebCore::GraphicsLayerCoordinated::addChildBelow):
(WebCore::GraphicsLayerCoordinated::addChildAbove):
(WebCore::GraphicsLayerCoordinated::replaceChild):
(WebCore::GraphicsLayerCoordinated::willModifyChildren):
(WebCore::GraphicsLayerCoordinated::setEventRegion):
(WebCore::GraphicsLayerCoordinated::deviceOrPageScaleFactorChanged):
(WebCore::GraphicsLayerCoordinated::setFilters):
(WebCore::GraphicsLayerCoordinated::setMaskLayer):
(WebCore::GraphicsLayerCoordinated::setReplicatedByLayer):
(WebCore::GraphicsLayerCoordinated::setBackdropFilters):
(WebCore::GraphicsLayerCoordinated::setBackdropFiltersRect):
(WebCore::GraphicsLayerCoordinated::addAnimation):
(WebCore::GraphicsLayerCoordinated::removeAnimation):
(WebCore::GraphicsLayerCoordinated::pauseAnimation):
(WebCore::GraphicsLayerCoordinated::suspendAnimations):
(WebCore::GraphicsLayerCoordinated::resumeAnimations):
(WebCore::GraphicsLayerCoordinated::isRunningTransformAnimation const):
(WebCore::GraphicsLayerCoordinated::transformRelatedPropertyDidChange):
(WebCore::GraphicsLayerCoordinated::acceleratedAnimationsForTesting const):
(WebCore::GraphicsLayerCoordinated::setShowDebugBorder):
(WebCore::GraphicsLayerCoordinated::setShowRepaintCounter):
(WebCore::dumpInnerLayer):
(WebCore::GraphicsLayerCoordinated::dumpAdditionalProperties const):
(WebCore::GraphicsLayerCoordinated::filtersCanBeComposited const):
(WebCore::GraphicsLayerCoordinated::noteLayerPropertyChanged):
(WebCore::GraphicsLayerCoordinated::setNeedsUpdateLayerTransform):
(WebCore::GraphicsLayerCoordinated::flushCompositingState):
(WebCore::GraphicsLayerCoordinated::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerCoordinated::computePositionRelativeToBase const):
(WebCore::GraphicsLayerCoordinated::computePixelAlignmentIfNeeded):
(WebCore::GraphicsLayerCoordinated::updateGeometry):
(WebCore::GraphicsLayerCoordinated::computeLayerTransformIfNeeded):
(WebCore::GraphicsLayerCoordinated::clampToSizeIfRectIsInfinite):
(WebCore::GraphicsLayerCoordinated::updateVisibleRect):
(WebCore::GraphicsLayerCoordinated::updateDamage):
(WebCore::GraphicsLayerCoordinated::updateDirtyRegion):
(WebCore::GraphicsLayerCoordinated::updateBackdropFilters):
(WebCore::GraphicsLayerCoordinated::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCoordinated::updateAnimations):
(WebCore::GraphicsLayerCoordinated::updateIndicators):
(WebCore::GraphicsLayerCoordinated::updateContents):
(WebCore::GraphicsLayerCoordinated::commitLayerChanges):
(WebCore::GraphicsLayerCoordinated::needsCommit const):
(WebCore::GraphicsLayerCoordinated::recursiveCommitChanges):
* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h: Added.
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::scrollbarInclusionForVisibleRect):
(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::flushLayers):
(WebKit::LayerTreeHost::attachLayer):
(WebKit::LayerTreeHost::detachLayer):
(WebKit::LayerTreeHost::notifyCompositionRequired):
(WebKit::LayerTreeHost::createGraphicsLayer):
(WebKit::LayerTreeHost::layerForTransientZoom const):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
Canonical link: https://commits.webkit.org/287731@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