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 |