Changeset 169097 in webkit
- Timestamp:
- May 19, 2014, 7:31:19 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
-
ChangeLog (modified) (1 diff)
-
platform/graphics/TiledBacking.h (modified) (1 diff)
-
platform/graphics/ca/GraphicsLayerCA.cpp (modified) (2 diffs)
-
platform/graphics/ca/mac/TileController.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r169096 r169097 1 2014-05-19 Simon Fraser <simon.fraser@apple.com> 2 3 Scrolling pages with large TiledBacking content layers creates way too many tiles 4 https://bugs.webkit.org/show_bug.cgi?id=133101 5 6 Reviewed by Tim Horton. 7 8 Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old 9 and new visible rects don't overlap. 10 11 * platform/graphics/TiledBacking.h: 12 * platform/graphics/ca/GraphicsLayerCA.cpp: 13 (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): 14 * platform/graphics/ca/mac/TileController.h: 15 1 16 2014-05-19 Simon Fraser <simon.fraser@apple.com> 2 17 -
trunk/Source/WebCore/platform/graphics/TiledBacking.h
r168890 r169097 97 97 // Includes margins. 98 98 virtual IntRect bounds() const = 0; 99 virtual IntRect boundsWithoutMargin() const = 0; 99 100 100 101 // Exposed for testing -
trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
r168559 r169097 1859 1859 // If the old visible rect is empty, we have no information about how the visible area is changing 1860 1860 // (maybe the layer was just created), so don't attempt to expand. Also don't attempt to expand 1861 // if the size changed .1862 if (oldVisibleRect.isEmpty() || newSize != oldSize )1861 // if the size changed or the rects don't overlap. 1862 if (oldVisibleRect.isEmpty() || newSize != oldSize || !newVisibleRect.intersects(oldVisibleRect)) 1863 1863 return newVisibleRect; 1864 1864 … … 1912 1912 } 1913 1913 1914 expandedRect.intersect(tiledBacking->boundsWithoutMargin()); 1914 1915 return expandedRect; 1915 1916 } -
trunk/Source/WebCore/platform/graphics/ca/mac/TileController.h
r168890 r169097 97 97 virtual IntSize tileSize() const override { return m_tileSize; } 98 98 virtual IntRect bounds() const override; 99 virtual IntRect boundsWithoutMargin() const override; 99 100 virtual bool hasMargins() const override; 100 101 virtual bool hasHorizontalMargins() const override; … … 107 108 virtual bool unparentsOffscreenTiles() const override { return m_unparentsOffscreenTiles; } 108 109 virtual bool scrollingPerformanceLoggingEnabled() const override { return m_scrollingPerformanceLoggingEnabled; } 109 110 IntRect boundsWithoutMargin() const;111 110 112 111 FloatRect computeTileCoverageRect(const FloatRect& previousVisibleRect, const FloatRect& currentVisibleRect) const;
Note:
See TracChangeset
for help on using the changeset viewer.