Changeset 146213 in webkit
- Timestamp:
- Mar 19, 2013 9:49:01 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r146209 r146213 1 2013-03-19 Max Vujovic <mvujovic@adobe.com> 2 3 Refactor conditions for setCompositingLayersNeedRebuild in RenderLayer::styleChanged 4 https://bugs.webkit.org/show_bug.cgi?id=112606 5 6 Reviewed by Simon Fraser. 7 8 To fix bug 109098 [1], we will need to add more conditions for calling 9 RenderLayerCompositor::setCompositingLayersNeedRebuild in RenderLayer::styleChanged. 10 Adding more non-trivial conditions will make this block of code even harder to follow. 11 This patch refactors the current conditions into functions: 12 needsCompositingLayersRebuiltForClip 13 needsCompositingLayersRebuiltForOverflow 14 15 In bug 109098 [1], I'm planning to add: 16 needsCompositingLayersRebuiltForFilters 17 18 [1]: https://bugs.webkit.org/show_bug.cgi?id=109098 19 20 No new tests. Just refactoring. 21 22 * rendering/RenderLayer.cpp: 23 (WebCore): 24 (WebCore::RenderLayer::needsCompositingLayersRebuiltForClip): 25 (WebCore::RenderLayer::needsCompositingLayersRebuiltForOverflow): 26 This is a method and not a file static function because it needs to look at the 27 RenderLayer's stackingContainer(), which is a private method. 28 (WebCore::RenderLayer::styleChanged): 29 * rendering/RenderLayer.h: 30 (RenderLayer): 31 1 32 2013-03-19 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 33 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r146185 r146213 5985 5985 } 5986 5986 5987 #if USE(ACCELERATED_COMPOSITING) 5988 inline bool RenderLayer::needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const RenderStyle* newStyle) const 5989 { 5990 ASSERT(newStyle); 5991 return oldStyle && (oldStyle->clip() != newStyle->clip() || oldStyle->hasClip() != newStyle->hasClip()); 5992 } 5993 5994 inline bool RenderLayer::needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, const RenderStyle* newStyle) const 5995 { 5996 ASSERT(newStyle); 5997 return !isComposited() && oldStyle && (oldStyle->overflowX() != newStyle->overflowX()) && stackingContainer()->hasCompositingDescendant(); 5998 } 5999 #endif // USE(ACCELERATED_COMPOSITING) 6000 5987 6001 void RenderLayer::styleChanged(StyleDifference, const RenderStyle* oldStyle) 5988 6002 { … … 6042 6056 #if USE(ACCELERATED_COMPOSITING) 6043 6057 updateNeedsCompositedScrolling(); 6044 if (compositor()->updateLayerCompositingState(this)) 6058 6059 const RenderStyle* newStyle = renderer()->style(); 6060 if (compositor()->updateLayerCompositingState(this) 6061 || needsCompositingLayersRebuiltForClip(oldStyle, newStyle) 6062 || needsCompositingLayersRebuiltForOverflow(oldStyle, newStyle)) 6045 6063 compositor()->setCompositingLayersNeedRebuild(); 6046 else if (oldStyle && (oldStyle->clip() != renderer()->style()->clip() || oldStyle->hasClip() != renderer()->style()->hasClip())) 6047 compositor()->setCompositingLayersNeedRebuild(); 6048 else if (m_backing) 6049 m_backing->updateGraphicsLayerGeometry(); 6050 else if (oldStyle && oldStyle->overflowX() != renderer()->style()->overflowX()) { 6051 if (stackingContainer()->hasCompositingDescendant()) 6052 compositor()->setCompositingLayersNeedRebuild(); 6053 } 6064 else if (isComposited()) 6065 backing()->updateGraphicsLayerGeometry(); 6054 6066 #endif 6055 6067 -
trunk/Source/WebCore/rendering/RenderLayer.h
r145422 r146213 771 771 virtual bool usesCompositedScrolling() const OVERRIDE; 772 772 bool needsCompositedScrolling() const; 773 bool needsCompositingLayersRebuiltForClip(const RenderStyle* oldStyle, const RenderStyle* newStyle) const; 774 bool needsCompositingLayersRebuiltForOverflow(const RenderStyle* oldStyle, const RenderStyle* newStyle) const; 773 775 #else 774 776 bool isComposited() const { return false; }
Note: See TracChangeset
for help on using the changeset viewer.