OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2014 Google Inc. All rights reserved. | 3 * Copyright (C) 2014 Google Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 | 83 |
84 void GraphicsLayerUpdater::update(RenderLayer& layer, Vector<RenderLayer*>& laye
rsNeedingPaintInvalidation) | 84 void GraphicsLayerUpdater::update(RenderLayer& layer, Vector<RenderLayer*>& laye
rsNeedingPaintInvalidation) |
85 { | 85 { |
86 TRACE_EVENT0("blink", "GraphicsLayerUpdater::update"); | 86 TRACE_EVENT0("blink", "GraphicsLayerUpdater::update"); |
87 updateRecursive(layer, DoNotForceUpdate, UpdateContext(), layersNeedingPaint
Invalidation); | 87 updateRecursive(layer, DoNotForceUpdate, UpdateContext(), layersNeedingPaint
Invalidation); |
88 layer.compositor()->updateRootLayerPosition(); | 88 layer.compositor()->updateRootLayerPosition(); |
89 } | 89 } |
90 | 90 |
91 void GraphicsLayerUpdater::updateRecursive(RenderLayer& layer, UpdateType update
Type, const UpdateContext& context, Vector<RenderLayer*>& layersNeedingPaintInva
lidation) | 91 void GraphicsLayerUpdater::updateRecursive(RenderLayer& layer, UpdateType update
Type, const UpdateContext& context, Vector<RenderLayer*>& layersNeedingPaintInva
lidation) |
92 { | 92 { |
93 if (layer.hasCompositedLayerMapping()) { | 93 if (CompositedLayerMapping* compositedLayerMapping = layer.compositedLayerMa
pping()) { |
94 CompositedLayerMapping* mapping = layer.compositedLayerMapping(); | 94 if (updateType == ForceUpdate || compositedLayerMapping->needsGraphicsLa
yerUpdate()) { |
95 | |
96 if (updateType == ForceUpdate || mapping->needsGraphicsLayerUpdate()) { | |
97 const RenderLayer* compositingContainer = context.compositingContain
er(layer); | 95 const RenderLayer* compositingContainer = context.compositingContain
er(layer); |
98 ASSERT(compositingContainer == layer.enclosingLayerWithCompositedLay
erMapping(ExcludeSelf)); | 96 ASSERT(compositingContainer == layer.enclosingLayerWithCompositedLay
erMapping(ExcludeSelf)); |
99 | 97 |
100 if (mapping->updateGraphicsLayerConfiguration()) | 98 if (compositedLayerMapping->updateGraphicsLayerConfiguration()) |
101 m_needsRebuildTree = true; | 99 m_needsRebuildTree = true; |
102 | 100 |
103 mapping->updateGraphicsLayerGeometry(compositingContainer, context.c
ompositingStackingContext(), layersNeedingPaintInvalidation); | 101 compositedLayerMapping->updateGraphicsLayerGeometry(compositingConta
iner, context.compositingStackingContext(), layersNeedingPaintInvalidation); |
104 | 102 |
105 if (mapping->hasUnpositionedOverflowControlsLayers()) | 103 if (compositedLayerMapping->hasUnpositionedOverflowControlsLayers()) |
106 layer.scrollableArea()->positionOverflowControls(IntSize()); | 104 layer.scrollableArea()->positionOverflowControls(IntSize()); |
107 | 105 |
108 updateType = mapping->updateTypeForChildren(updateType); | 106 updateType = compositedLayerMapping->updateTypeForChildren(updateTyp
e); |
109 mapping->clearNeedsGraphicsLayerUpdate(); | 107 compositedLayerMapping->clearNeedsGraphicsLayerUpdate(); |
110 } | 108 } |
111 } | 109 } |
112 | 110 |
113 UpdateContext childContext(context, layer); | 111 UpdateContext childContext(context, layer); |
114 for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibl
ing()) | 112 for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibl
ing()) |
115 updateRecursive(*child, updateType, childContext, layersNeedingPaintInva
lidation); | 113 updateRecursive(*child, updateType, childContext, layersNeedingPaintInva
lidation); |
116 } | 114 } |
117 | 115 |
118 #if ENABLE(ASSERT) | 116 #if ENABLE(ASSERT) |
119 | 117 |
120 void GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(RenderLay
er& layer) | 118 void GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(RenderLay
er& layer) |
121 { | 119 { |
122 if (layer.hasCompositedLayerMapping()) | 120 if (CompositedLayerMapping* compositedLayerMapping = layer.compositedLayerMa
pping()) |
123 layer.compositedLayerMapping()->assertNeedsToUpdateGraphicsLayerBitsClea
red(); | 121 compositedLayerMapping->assertNeedsToUpdateGraphicsLayerBitsCleared(); |
124 | 122 |
125 for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibl
ing()) | 123 for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibl
ing()) |
126 assertNeedsToUpdateGraphicsLayerBitsCleared(*child); | 124 assertNeedsToUpdateGraphicsLayerBitsCleared(*child); |
127 } | 125 } |
128 | 126 |
129 #endif | 127 #endif |
130 | 128 |
131 } // namespace blink | 129 } // namespace blink |
OLD | NEW |