| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 96 void updateCompositingLayers(CompositingUpdateType, RenderLayer* updateRoot
= 0); | 96 void updateCompositingLayers(CompositingUpdateType, RenderLayer* updateRoot
= 0); |
| 97 | 97 |
| 98 // Update the compositing state of the given layer. Returns true if that sta
te changed. | 98 // Update the compositing state of the given layer. Returns true if that sta
te changed. |
| 99 enum CompositingChangeRepaint { CompositingChangeRepaintNow, CompositingChan
geWillRepaintLater }; | 99 enum CompositingChangeRepaint { CompositingChangeRepaintNow, CompositingChan
geWillRepaintLater }; |
| 100 bool updateLayerCompositingState(RenderLayer*, CompositingChangeRepaint = Co
mpositingChangeRepaintNow); | 100 bool updateLayerCompositingState(RenderLayer*, CompositingChangeRepaint = Co
mpositingChangeRepaintNow); |
| 101 | 101 |
| 102 // Update the geometry for compositing children of compositingAncestor. | 102 // Update the geometry for compositing children of compositingAncestor. |
| 103 void updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, R
enderLayer*, bool compositedChildrenOnly); | 103 void updateCompositingDescendantGeometry(RenderLayer* compositingAncestor, R
enderLayer*, bool compositedChildrenOnly); |
| 104 | 104 |
| 105 // Whether layer's backing needs a graphics layer to do clipping by an ances
tor (non-stacking-context parent with overflow). | 105 // Whether layer's backing needs a graphics layer to do clipping by an ances
tor (non-stacking-context parent with overflow). |
| 106 bool clippedByAncestor(RenderLayer*) const; | 106 bool clippedByAncestor(const RenderLayer*) const; |
| 107 // Whether layer's backing needs a graphics layer to clip z-order children o
f the given layer. | 107 // Whether layer's backing needs a graphics layer to clip z-order children o
f the given layer. |
| 108 bool clipsCompositingDescendants(const RenderLayer*) const; | 108 bool clipsCompositingDescendants(const RenderLayer*) const; |
| 109 | 109 |
| 110 // Whether the given layer needs an extra 'contents' layer. | 110 // Whether the given layer needs an extra 'contents' layer. |
| 111 bool needsContentsCompositingLayer(const RenderLayer*) const; | 111 bool needsContentsCompositingLayer(const RenderLayer*) const; |
| 112 | 112 |
| 113 bool supportsFixedRootBackgroundCompositing() const; | 113 bool supportsFixedRootBackgroundCompositing() const; |
| 114 bool needsFixedRootBackgroundLayer(const RenderLayer*) const; | 114 bool needsFixedRootBackgroundLayer(const RenderLayer*) const; |
| 115 GraphicsLayer* fixedRootBackgroundLayer() const; | 115 GraphicsLayer* fixedRootBackgroundLayer() const; |
| 116 | 116 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 235 // Repaint the given rect (which is layer's coords), and regions of child la
yers that intersect that rect. | 235 // Repaint the given rect (which is layer's coords), and regions of child la
yers that intersect that rect. |
| 236 void recursiveRepaintLayer(RenderLayer*, const IntRect* = 0); | 236 void recursiveRepaintLayer(RenderLayer*, const IntRect* = 0); |
| 237 | 237 |
| 238 void addToOverlapMap(OverlapMap&, RenderLayer*, IntRect& layerBounds, bool&
boundsComputed); | 238 void addToOverlapMap(OverlapMap&, RenderLayer*, IntRect& layerBounds, bool&
boundsComputed); |
| 239 void addToOverlapMapRecursive(OverlapMap&, RenderLayer*, RenderLayer* ancest
orLayer = 0); | 239 void addToOverlapMapRecursive(OverlapMap&, RenderLayer*, RenderLayer* ancest
orLayer = 0); |
| 240 | 240 |
| 241 // Returns true if any layer's compositing changed | 241 // Returns true if any layer's compositing changed |
| 242 void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*
, OverlapMap*, struct CompositingState&, bool& layersChanged, bool& descendantHa
s3DTransform, Vector<RenderLayer*>& unclippedDescendants); | 242 void computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer*
, OverlapMap*, struct CompositingState&, bool& layersChanged, bool& descendantHa
s3DTransform, Vector<RenderLayer*>& unclippedDescendants); |
| 243 | 243 |
| 244 // Recurses down the tree, parenting descendant compositing layers and colle
cting an array of child layers for the current compositing layer. | 244 // Recurses down the tree, parenting descendant compositing layers and colle
cting an array of child layers for the current compositing layer. |
| 245 void rebuildCompositingLayerTree(RenderLayer*, Vector<GraphicsLayer*>& child
GraphicsLayersOfEnclosingLayer, int depth); | 245 void rebuildCompositingLayerTree(RenderLayer*, Vector<GraphicsLayer*>& child
GraphicsLayersOfEnclosingLayer, HashSet<RenderLayer*>& visited, int depth); |
| 246 |
| 247 // Ensures that scroll parents have been processed before recurring into reb
uildCompositingLayerTree for the current layer. |
| 248 void rebuildCompositingLayerTreeForLayerAndScrollParents(RenderLayer*, Vecto
r<GraphicsLayer*>& childGraphicsLayersOfEnclosingLayer, HashSet<RenderLayer*>& v
isited, HashMap<RenderLayer*, Vector<GraphicsLayer*> >& childGraphicsLayersOfScr
ollParents, int depth); |
| 246 | 249 |
| 247 // Recurses down the tree, updating layer geometry only. | 250 // Recurses down the tree, updating layer geometry only. |
| 248 void updateLayerTreeGeometry(RenderLayer*, int depth); | 251 void updateLayerTreeGeometry(RenderLayer*, HashSet<RenderLayer*>& visited, i
nt depth); |
| 252 |
| 253 // Ensures that scroll parents have been processed before recurring into upd
ateLayerTree for the current layer. |
| 254 void updateLayerTreeGeometryForLayerAndScrollParents(RenderLayer*, HashSet<R
enderLayer*>& visited, int depth); |
| 249 | 255 |
| 250 // Hook compositing layers together | 256 // Hook compositing layers together |
| 251 void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer)
; | 257 void setCompositingParent(RenderLayer* childLayer, RenderLayer* parentLayer)
; |
| 252 void removeCompositedChildren(RenderLayer*); | 258 void removeCompositedChildren(RenderLayer*); |
| 253 | 259 |
| 254 bool layerHas3DContent(const RenderLayer*) const; | 260 bool layerHas3DContent(const RenderLayer*) const; |
| 255 bool isRunningAcceleratedTransformAnimation(RenderObject*) const; | 261 bool isRunningAcceleratedTransformAnimation(RenderObject*) const; |
| 256 | 262 |
| 257 bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const; | 263 bool hasAnyAdditionalCompositedLayers(const RenderLayer* rootLayer) const; |
| 258 | 264 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 int m_secondaryCompositedLayerCount; // count of layers that have to be comp
osited because of stacking or overlap. | 367 int m_secondaryCompositedLayerCount; // count of layers that have to be comp
osited because of stacking or overlap. |
| 362 double m_obligatoryBackingStoreBytes; | 368 double m_obligatoryBackingStoreBytes; |
| 363 double m_secondaryBackingStoreBytes; | 369 double m_secondaryBackingStoreBytes; |
| 364 #endif | 370 #endif |
| 365 }; | 371 }; |
| 366 | 372 |
| 367 | 373 |
| 368 } // namespace WebCore | 374 } // namespace WebCore |
| 369 | 375 |
| 370 #endif // RenderLayerCompositor_h | 376 #endif // RenderLayerCompositor_h |
| OLD | NEW |