Index: Source/core/rendering/compositing/GraphicsLayerTreeBuilder.cpp |
diff --git a/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp b/Source/core/rendering/compositing/GraphicsLayerTreeBuilder.cpp |
similarity index 62% |
copy from Source/core/rendering/compositing/GraphicsLayerUpdater.cpp |
copy to Source/core/rendering/compositing/GraphicsLayerTreeBuilder.cpp |
index d14328c0bcf75cac1f6f8089873726a67e70e13c..0f930b0dedf7e600941b19ecaf93c9f76cdc0215 100644 |
--- a/Source/core/rendering/compositing/GraphicsLayerUpdater.cpp |
+++ b/Source/core/rendering/compositing/GraphicsLayerTreeBuilder.cpp |
@@ -25,17 +25,26 @@ |
*/ |
#include "config.h" |
-#include "core/rendering/compositing/GraphicsLayerUpdater.h" |
+#include "core/rendering/compositing/GraphicsLayerTreeBuilder.h" |
#include "core/html/HTMLMediaElement.h" |
#include "core/rendering/RenderLayer.h" |
#include "core/rendering/RenderLayerReflectionInfo.h" |
#include "core/rendering/RenderPart.h" |
+#include "core/rendering/RenderView.h" |
#include "core/rendering/compositing/CompositedLayerMapping.h" |
#include "core/rendering/compositing/RenderLayerCompositor.h" |
namespace WebCore { |
+GraphicsLayerTreeBuilder::GraphicsLayerTreeBuilder() |
+{ |
+} |
+ |
+GraphicsLayerTreeBuilder::~GraphicsLayerTreeBuilder() |
+{ |
+} |
+ |
static bool shouldAppendLayer(const RenderLayer& layer) |
{ |
if (!RuntimeEnabledFeatures::overlayFullscreenVideoEnabled()) |
@@ -46,33 +55,7 @@ static bool shouldAppendLayer(const RenderLayer& layer) |
return true; |
} |
-GraphicsLayerUpdater::UpdateContext::UpdateContext(const UpdateContext& other, const RenderLayer& layer) |
- : m_compositingStackingContext(other.m_compositingStackingContext) |
- , m_compositingAncestor(other.compositingContainer(layer)) |
-{ |
- CompositingState compositingState = layer.compositingState(); |
- if (compositingState != NotComposited && compositingState != PaintsIntoGroupedBacking) { |
- m_compositingAncestor = &layer; |
- if (layer.stackingNode()->isStackingContext()) |
- m_compositingStackingContext = &layer; |
- } |
-} |
- |
-const RenderLayer* GraphicsLayerUpdater::UpdateContext::compositingContainer(const RenderLayer& layer) const |
-{ |
- return layer.stackingNode()->isNormalFlowOnly() ? m_compositingAncestor : m_compositingStackingContext; |
-} |
- |
-GraphicsLayerUpdater::GraphicsLayerUpdater() |
- : m_needsRebuildTree(false) |
-{ |
-} |
- |
-GraphicsLayerUpdater::~GraphicsLayerUpdater() |
-{ |
-} |
- |
-void GraphicsLayerUpdater::rebuildTree(RenderLayer& layer, GraphicsLayerVector& childLayersOfEnclosingLayer) |
+void GraphicsLayerTreeBuilder::rebuild(RenderLayer& layer, GraphicsLayerVector& childLayersOfEnclosingLayer) |
{ |
// Make the layer compositing if necessary, and set up clipping and content layers. |
// Note that we can only do work here that is independent of whether the descendant layers |
@@ -95,7 +78,7 @@ void GraphicsLayerUpdater::rebuildTree(RenderLayer& layer, GraphicsLayerVector& |
if (layer.stackingNode()->isStackingContext()) { |
RenderLayerStackingNodeIterator iterator(*layer.stackingNode(), NegativeZOrderChildren); |
while (RenderLayerStackingNode* curNode = iterator.next()) |
- rebuildTree(*curNode->layer(), childList); |
+ rebuild(*curNode->layer(), childList); |
// If a negative z-order child is compositing, we get a foreground layer which needs to get parented. |
if (hasCompositedLayerMapping && currentCompositedLayerMapping->foregroundLayer()) |
@@ -104,7 +87,7 @@ void GraphicsLayerUpdater::rebuildTree(RenderLayer& layer, GraphicsLayerVector& |
RenderLayerStackingNodeIterator iterator(*layer.stackingNode(), NormalFlowChildren | PositiveZOrderChildren); |
while (RenderLayerStackingNode* curNode = iterator.next()) |
- rebuildTree(*curNode->layer(), childList); |
+ rebuild(*curNode->layer(), childList); |
if (hasCompositedLayerMapping) { |
bool parented = false; |
@@ -138,56 +121,4 @@ void GraphicsLayerUpdater::rebuildTree(RenderLayer& layer, GraphicsLayerVector& |
} |
} |
-void GraphicsLayerUpdater::update(RenderLayer& layer, UpdateType updateType, const UpdateContext& context) |
-{ |
- if (layer.hasCompositedLayerMapping()) { |
- CompositedLayerMappingPtr mapping = layer.compositedLayerMapping(); |
- |
- const RenderLayer* compositingContainer = context.compositingContainer(layer); |
- ASSERT(compositingContainer == layer.ancestorCompositingLayer()); |
- if (mapping->updateRequiresOwnBackingStoreForAncestorReasons(compositingContainer)) |
- updateType = ForceUpdate; |
- |
- // Note carefully: here we assume that the compositing state of all descendants have been updated already, |
- // so it is legitimate to compute and cache the composited bounds for this layer. |
- mapping->updateCompositedBounds(updateType); |
- |
- if (RenderLayerReflectionInfo* reflection = layer.reflectionInfo()) { |
- if (reflection->reflectionLayer()->hasCompositedLayerMapping()) |
- reflection->reflectionLayer()->compositedLayerMapping()->updateCompositedBounds(ForceUpdate); |
- } |
- |
- if (mapping->updateGraphicsLayerConfiguration(updateType)) |
- m_needsRebuildTree = true; |
- |
- mapping->updateGraphicsLayerGeometry(updateType, compositingContainer); |
- |
- updateType = mapping->updateTypeForChildren(updateType); |
- mapping->clearNeedsGraphicsLayerUpdate(); |
- |
- if (!layer.parent()) |
- layer.compositor()->updateRootLayerPosition(); |
- |
- if (mapping->hasUnpositionedOverflowControlsLayers()) |
- layer.scrollableArea()->positionOverflowControls(); |
- } |
- |
- UpdateContext childContext(context, layer); |
- for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibling()) |
- update(*child, updateType, childContext); |
-} |
- |
-#if !ASSERT_DISABLED |
- |
-void GraphicsLayerUpdater::assertNeedsToUpdateGraphicsLayerBitsCleared(RenderLayer& layer) |
-{ |
- if (layer.hasCompositedLayerMapping()) |
- layer.compositedLayerMapping()->assertNeedsToUpdateGraphicsLayerBitsCleared(); |
- |
- for (RenderLayer* child = layer.firstChild(); child; child = child->nextSibling()) |
- assertNeedsToUpdateGraphicsLayerBitsCleared(*child); |
} |
- |
-#endif |
- |
-} // namespace WebCore |