| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010, 2011 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 // CompositedLayerMapping keeps track of how RenderLayers of the render tree cor
respond to | 72 // CompositedLayerMapping keeps track of how RenderLayers of the render tree cor
respond to |
| 73 // GraphicsLayers of the composited layer tree. Each instance of CompositedLayer
Mapping | 73 // GraphicsLayers of the composited layer tree. Each instance of CompositedLayer
Mapping |
| 74 // manages a small cluster of GraphicsLayers and the references to which RenderL
ayers | 74 // manages a small cluster of GraphicsLayers and the references to which RenderL
ayers |
| 75 // and paint phases contribute to each GraphicsLayer. | 75 // and paint phases contribute to each GraphicsLayer. |
| 76 // | 76 // |
| 77 // Currently (Oct. 2013) there is one CompositedLayerMapping for each RenderLaye
r, | 77 // Currently (Oct. 2013) there is one CompositedLayerMapping for each RenderLaye
r, |
| 78 // but this is likely to evolve soon. | 78 // but this is likely to evolve soon. |
| 79 class CompositedLayerMapping FINAL : public GraphicsLayerClient { | 79 class CompositedLayerMapping FINAL : public GraphicsLayerClient { |
| 80 WTF_MAKE_NONCOPYABLE(CompositedLayerMapping); WTF_MAKE_FAST_ALLOCATED; | 80 WTF_MAKE_NONCOPYABLE(CompositedLayerMapping); WTF_MAKE_FAST_ALLOCATED; |
| 81 public: | 81 public: |
| 82 explicit CompositedLayerMapping(RenderLayer*); | 82 explicit CompositedLayerMapping(RenderLayer&); |
| 83 virtual ~CompositedLayerMapping(); | 83 virtual ~CompositedLayerMapping(); |
| 84 | 84 |
| 85 RenderLayer* owningLayer() const { return m_owningLayer; } | 85 RenderLayer& owningLayer() const { return m_owningLayer; } |
| 86 | 86 |
| 87 enum UpdateAfterLayoutFlag { | 87 enum UpdateAfterLayoutFlag { |
| 88 CompositingChildrenOnly = 1 << 0, | 88 CompositingChildrenOnly = 1 << 0, |
| 89 NeedsFullRepaint = 1 << 1, | 89 NeedsFullRepaint = 1 << 1, |
| 90 IsUpdateRoot = 1 << 2 | 90 IsUpdateRoot = 1 << 2 |
| 91 }; | 91 }; |
| 92 typedef unsigned UpdateAfterLayoutFlags; | 92 typedef unsigned UpdateAfterLayoutFlags; |
| 93 void updateAfterLayout(UpdateAfterLayoutFlags); | 93 void updateAfterLayout(UpdateAfterLayoutFlags); |
| 94 | 94 |
| 95 // Returns true if layer configuration changed. | 95 // Returns true if layer configuration changed. |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 virtual String debugName(const GraphicsLayer*) OVERRIDE; | 201 virtual String debugName(const GraphicsLayer*) OVERRIDE; |
| 202 | 202 |
| 203 LayoutSize subpixelAccumulation() const { return m_subpixelAccumulation; } | 203 LayoutSize subpixelAccumulation() const { return m_subpixelAccumulation; } |
| 204 private: | 204 private: |
| 205 void createPrimaryGraphicsLayer(); | 205 void createPrimaryGraphicsLayer(); |
| 206 void destroyGraphicsLayers(); | 206 void destroyGraphicsLayers(); |
| 207 | 207 |
| 208 PassOwnPtr<GraphicsLayer> createGraphicsLayer(CompositingReasons); | 208 PassOwnPtr<GraphicsLayer> createGraphicsLayer(CompositingReasons); |
| 209 bool toggleScrollbarLayerIfNeeded(OwnPtr<GraphicsLayer>&, bool needsLayer, C
ompositingReasons); | 209 bool toggleScrollbarLayerIfNeeded(OwnPtr<GraphicsLayer>&, bool needsLayer, C
ompositingReasons); |
| 210 | 210 |
| 211 RenderLayerModelObject* renderer() const { return m_owningLayer->renderer();
} | 211 RenderLayerModelObject* renderer() const { return m_owningLayer.renderer();
} |
| 212 RenderLayerCompositor* compositor() const { return m_owningLayer->compositor
(); } | 212 RenderLayerCompositor* compositor() const { return m_owningLayer.compositor(
); } |
| 213 | 213 |
| 214 void updateInternalHierarchy(); | 214 void updateInternalHierarchy(); |
| 215 bool updateClippingLayers(bool needsAncestorClip, bool needsDescendantClip); | 215 bool updateClippingLayers(bool needsAncestorClip, bool needsDescendantClip); |
| 216 bool updateChildTransformLayer(bool needsChildTransformLayer); | 216 bool updateChildTransformLayer(bool needsChildTransformLayer); |
| 217 bool updateOverflowControlsLayers(bool needsHorizontalScrollbarLayer, bool n
eedsVerticalScrollbarLayer, bool needsScrollCornerLayer); | 217 bool updateOverflowControlsLayers(bool needsHorizontalScrollbarLayer, bool n
eedsVerticalScrollbarLayer, bool needsScrollCornerLayer); |
| 218 bool updateForegroundLayer(bool needsForegroundLayer); | 218 bool updateForegroundLayer(bool needsForegroundLayer); |
| 219 bool updateBackgroundLayer(bool needsBackgroundLayer); | 219 bool updateBackgroundLayer(bool needsBackgroundLayer); |
| 220 bool updateMaskLayer(bool needsMaskLayer); | 220 bool updateMaskLayer(bool needsMaskLayer); |
| 221 bool updateClippingMaskLayers(bool needsChildClippingMaskLayer); | 221 bool updateClippingMaskLayers(bool needsChildClippingMaskLayer); |
| 222 bool requiresHorizontalScrollbarLayer() const { return m_owningLayer->scroll
ableArea() && m_owningLayer->scrollableArea()->horizontalScrollbar(); } | 222 bool requiresHorizontalScrollbarLayer() const { return m_owningLayer.scrolla
bleArea() && m_owningLayer.scrollableArea()->horizontalScrollbar(); } |
| 223 bool requiresVerticalScrollbarLayer() const { return m_owningLayer->scrollab
leArea() && m_owningLayer->scrollableArea()->verticalScrollbar(); } | 223 bool requiresVerticalScrollbarLayer() const { return m_owningLayer.scrollabl
eArea() && m_owningLayer.scrollableArea()->verticalScrollbar(); } |
| 224 bool requiresScrollCornerLayer() const { return m_owningLayer->scrollableAre
a() && !m_owningLayer->scrollableArea()->scrollCornerAndResizerRect().isEmpty();
} | 224 bool requiresScrollCornerLayer() const { return m_owningLayer.scrollableArea
() && !m_owningLayer.scrollableArea()->scrollCornerAndResizerRect().isEmpty(); } |
| 225 bool updateScrollingLayers(bool scrollingLayers); | 225 bool updateScrollingLayers(bool scrollingLayers); |
| 226 void updateScrollParent(RenderLayer*); | 226 void updateScrollParent(RenderLayer*); |
| 227 void updateClipParent(RenderLayer*); | 227 void updateClipParent(RenderLayer*); |
| 228 bool updateSquashingLayers(bool needsSquashingLayers); | 228 bool updateSquashingLayers(bool needsSquashingLayers); |
| 229 void updateDrawsContent(); | 229 void updateDrawsContent(); |
| 230 void updateChildrenTransform(); | 230 void updateChildrenTransform(); |
| 231 void registerScrollingLayers(); | 231 void registerScrollingLayers(); |
| 232 | 232 |
| 233 void adjustBoundsForSubPixelAccumulation(const RenderLayer* compositedAncest
or, IntRect& localCompositingBounds, IntRect& relativeCompositingBounds, IntPoin
t& delta); | 233 void adjustBoundsForSubPixelAccumulation(const RenderLayer* compositedAncest
or, IntRect& localCompositingBounds, IntRect& relativeCompositingBounds, IntPoin
t& delta); |
| 234 | 234 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 void updateCompositingReasons(); | 268 void updateCompositingReasons(); |
| 269 | 269 |
| 270 bool hasVisibleNonCompositingDescendantLayers() const; | 270 bool hasVisibleNonCompositingDescendantLayers() const; |
| 271 | 271 |
| 272 bool shouldClipCompositedBounds() const; | 272 bool shouldClipCompositedBounds() const; |
| 273 | 273 |
| 274 void paintsIntoCompositedAncestorChanged(); | 274 void paintsIntoCompositedAncestorChanged(); |
| 275 | 275 |
| 276 void doPaintTask(GraphicsLayerPaintInfo&, GraphicsContext*, const IntRect& c
lip); | 276 void doPaintTask(GraphicsLayerPaintInfo&, GraphicsContext*, const IntRect& c
lip); |
| 277 | 277 |
| 278 RenderLayer* m_owningLayer; | 278 RenderLayer& m_owningLayer; |
| 279 | 279 |
| 280 // The hierarchy of layers that is maintained by the CompositedLayerMapping
looks like this: | 280 // The hierarchy of layers that is maintained by the CompositedLayerMapping
looks like this: |
| 281 // | 281 // |
| 282 // + m_ancestorClippingLayer [OPTIONAL] | 282 // + m_ancestorClippingLayer [OPTIONAL] |
| 283 // + m_graphicsLayer | 283 // + m_graphicsLayer |
| 284 // + m_childContainmentLayer [OPTIONAL] <-OR-> m_scrollingLayer [OPTI
ONAL] <-OR-> m_childTransformLayer | 284 // + m_childContainmentLayer [OPTIONAL] <-OR-> m_scrollingLayer [OPTI
ONAL] <-OR-> m_childTransformLayer |
| 285 // + m_scrollingContents
Layer [OPTIONAL] | 285 // + m_scrollingContents
Layer [OPTIONAL] |
| 286 // | 286 // |
| 287 // We need an ancestor clipping layer if our clipping ancestor is not our an
cestor in the | 287 // We need an ancestor clipping layer if our clipping ancestor is not our an
cestor in the |
| 288 // clipping tree. Here's what that might look like. | 288 // clipping tree. Here's what that might look like. |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 bool m_requiresOwnBackingStoreForAncestorReasons : 1; | 359 bool m_requiresOwnBackingStoreForAncestorReasons : 1; |
| 360 bool m_canCompositeFilters : 1; | 360 bool m_canCompositeFilters : 1; |
| 361 bool m_backgroundLayerPaintsFixedRootBackground : 1; | 361 bool m_backgroundLayerPaintsFixedRootBackground : 1; |
| 362 bool m_needToUpdateGeometry : 1; | 362 bool m_needToUpdateGeometry : 1; |
| 363 bool m_needToUpdateGeometryOfAllDecendants : 1; | 363 bool m_needToUpdateGeometryOfAllDecendants : 1; |
| 364 }; | 364 }; |
| 365 | 365 |
| 366 } // namespace WebCore | 366 } // namespace WebCore |
| 367 | 367 |
| 368 #endif // CompositedLayerMapping_h | 368 #endif // CompositedLayerMapping_h |
| OLD | NEW |