-
simon.fraser@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=113459 Reviewed by Tim Horton. Some platforms need to update TiledBacking visible rects from outside of WebKit, for example if they use delegated scrolling. They want to avoid forcing layout to be up-to-date when doing this. Currently, updating the visibleRect happens when the GraphicsLayerCA layer are being flushed, but that makes some assumptions about layout being up-to-date. To fix this, add a light-weight pass over the layer tree that uses TransformState to compute the visibleRect for each layer, and only if the visibleRect would cause a change in the tiles in a TiledBacking trigger a layer flush. * platform/graphics/GraphicsLayer.h: (WebCore::GraphicsLayer::recomputeVisibleRects): * platform/graphics/TiledBacking.h: * platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::recursiveComputeVisibleRect): (WebCore::GraphicsLayerCA::recomputeVisibleRects): (WebCore::GraphicsLayerCA::computeVisibleRect): * platform/graphics/ca/GraphicsLayerCA.h: * platform/graphics/ca/mac/TileController.h: * platform/graphics/ca/mac/TileController.mm: (WebCore::TileController::tilesWouldChangeForVisibleRect): (WebCore::TileController::computeTileCoverageRect): (WebCore::TileController::revalidateTiles): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@147058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
7dd9a661