Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (134354 => 134355)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-11-13 04:58:58 UTC (rev 134354)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-11-13 05:24:31 UTC (rev 134355)
@@ -1117,7 +1117,7 @@
// If we have at least one custom shader, we need to update the whole bounding box of the layer, because the
// shader can address any ouput pixel.
// Note: This is only for output rect, so there's no need to expand the dirty source rect.
- rectForRepaint.unite(calculateLayerBounds(this, this));
+ rectForRepaint.unite(calculateLayerBounds(this));
}
#endif
@@ -3213,7 +3213,7 @@
hasClipPath = true;
context->save();
ShapeClipPathOperation* clipPath = static_cast<ShapeClipPathOperation*>(style->clipPath());
- context->clipPath(clipPath->path(calculateLayerBounds(this, paintingInfo.rootLayer, 0)), clipPath->windRule());
+ context->clipPath(clipPath->path(calculateLayerBounds(paintingInfo.rootLayer, 0)), clipPath->windRule());
}
#if ENABLE(SVG)
else if (style->clipPath()->getOperationType() == ClipPathOperation::REFERENCE) {
@@ -3222,7 +3222,7 @@
// FIXME: It doesn't work with forward or external SVG references (https://bugs.webkit.org/show_bug.cgi?id=90405)
Element* element = document ? document->getElementById(referenceClipPathOperation->fragment()) : 0;
if (element && element->hasTagName(SVGNames::clipPathTag) && element->renderer())
- static_cast<RenderSVGResourceClipper*>(element->renderer())->applyClippingToContext(renderer(), calculateLayerBounds(this, paintingInfo.rootLayer, 0), paintingInfo.paintDirtyRect, context);
+ static_cast<RenderSVGResourceClipper*>(element->renderer())->applyClippingToContext(renderer(), calculateLayerBounds(paintingInfo.rootLayer, 0), paintingInfo.paintDirtyRect, context);
}
#endif
}
@@ -3237,7 +3237,7 @@
ASSERT(filterInfo);
LayoutRect filterRepaintRect = filterInfo->dirtySourceRect();
filterRepaintRect.move(rootLayerOffset.x(), rootLayerOffset.y());
- if (filterPainter.prepareFilterEffect(this, calculateLayerBounds(this, paintingInfo.rootLayer, 0), paintingInfo.paintDirtyRect, filterRepaintRect)) {
+ if (filterPainter.prepareFilterEffect(this, calculateLayerBounds(paintingInfo.rootLayer, 0), paintingInfo.paintDirtyRect, filterRepaintRect)) {
// Now we know for sure, that the source image will be updated, so we can revert our tracking repaint rect back to zero.
filterInfo->resetDirtySourceRect();
@@ -4398,17 +4398,17 @@
return pixelSnappedIntRect(boundingBox(root()));
}
-IntRect RenderLayer::calculateLayerBounds(const RenderLayer* layer, const RenderLayer* ancestorLayer, CalculateLayerBoundsFlags flags)
+IntRect RenderLayer::calculateLayerBounds(const RenderLayer* ancestorLayer, CalculateLayerBoundsFlags flags) const
{
- if (!layer->isSelfPaintingLayer())
+ if (!isSelfPaintingLayer())
return IntRect();
// FIXME: This could be improved to do a check like hasVisibleNonCompositingDescendantLayers() (bug 92580).
- if ((flags & ExcludeHiddenDescendants) && layer != ancestorLayer && !layer->hasVisibleContent() && !layer->hasVisibleDescendant())
+ if ((flags & ExcludeHiddenDescendants) && this != ancestorLayer && !hasVisibleContent() && !hasVisibleDescendant())
return IntRect();
- RenderLayerModelObject* renderer = layer->renderer();
- LayoutRect boundingBoxRect = layer->localBoundingBox();
+ RenderLayerModelObject* renderer = this->renderer();
+ LayoutRect boundingBoxRect = localBoundingBox();
if (renderer->isBox())
toRenderBox(renderer)->flipForWritingMode(boundingBoxRect);
else
@@ -4430,13 +4430,13 @@
LayoutRect unionBounds = boundingBoxRect;
if (flags & UseLocalClipRectIfPossible) {
- LayoutRect localClipRect = layer->localClipRect();
+ LayoutRect localClipRect = this->localClipRect();
if (localClipRect != PaintInfo::infiniteRect()) {
- if ((flags & IncludeSelfTransform) && layer->paintsWithTransform(PaintBehaviorNormal))
- localClipRect = layer->transform()->mapRect(localClipRect);
+ if ((flags & IncludeSelfTransform) && paintsWithTransform(PaintBehaviorNormal))
+ localClipRect = transform()->mapRect(localClipRect);
LayoutPoint ancestorRelOffset;
- layer->convertToLayerCoords(ancestorLayer, ancestorRelOffset);
+ convertToLayerCoords(ancestorLayer, ancestorRelOffset);
localClipRect.moveBy(ancestorRelOffset);
return pixelSnappedIntRect(localClipRect);
}
@@ -4445,49 +4445,49 @@
// FIXME: should probably just pass 'flags' down to descendants.
CalculateLayerBoundsFlags descendantFlags = DefaultCalculateLayerBoundsFlags | (flags & ExcludeHiddenDescendants);
- const_cast<RenderLayer*>(layer)->updateLayerListsIfNeeded();
+ const_cast<RenderLayer*>(this)->updateLayerListsIfNeeded();
- if (RenderLayer* reflection = layer->reflectionLayer()) {
+ if (RenderLayer* reflection = reflectionLayer()) {
if (!reflection->isComposited()) {
- IntRect childUnionBounds = calculateLayerBounds(reflection, layer, descendantFlags);
+ IntRect childUnionBounds = reflection->calculateLayerBounds(this, descendantFlags);
unionBounds.unite(childUnionBounds);
}
}
- ASSERT(layer->isStackingContext() || (!layer->posZOrderList() || !layer->posZOrderList()->size()));
+ ASSERT(isStackingContext() || (!posZOrderList() || !posZOrderList()->size()));
#if !ASSERT_DISABLED
- LayerListMutationDetector mutationChecker(const_cast<RenderLayer*>(layer));
+ LayerListMutationDetector mutationChecker(const_cast<RenderLayer*>(this));
#endif
- if (Vector<RenderLayer*>* negZOrderList = layer->negZOrderList()) {
+ if (Vector<RenderLayer*>* negZOrderList = this->negZOrderList()) {
size_t listSize = negZOrderList->size();
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = negZOrderList->at(i);
if (!curLayer->isComposited()) {
- IntRect childUnionBounds = calculateLayerBounds(curLayer, layer, descendantFlags);
+ IntRect childUnionBounds = curLayer->calculateLayerBounds(this, descendantFlags);
unionBounds.unite(childUnionBounds);
}
}
}
- if (Vector<RenderLayer*>* posZOrderList = layer->posZOrderList()) {
+ if (Vector<RenderLayer*>* posZOrderList = this->posZOrderList()) {
size_t listSize = posZOrderList->size();
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = posZOrderList->at(i);
if (!curLayer->isComposited()) {
- IntRect childUnionBounds = calculateLayerBounds(curLayer, layer, descendantFlags);
+ IntRect childUnionBounds = curLayer->calculateLayerBounds(this, descendantFlags);
unionBounds.unite(childUnionBounds);
}
}
}
- if (Vector<RenderLayer*>* normalFlowList = layer->normalFlowList()) {
+ if (Vector<RenderLayer*>* normalFlowList = this->normalFlowList()) {
size_t listSize = normalFlowList->size();
for (size_t i = 0; i < listSize; ++i) {
RenderLayer* curLayer = normalFlowList->at(i);
if (!curLayer->isComposited()) {
- IntRect curAbsBounds = calculateLayerBounds(curLayer, layer, descendantFlags);
+ IntRect curAbsBounds = curLayer->calculateLayerBounds(this, descendantFlags);
unionBounds.unite(curAbsBounds);
}
}
@@ -4497,25 +4497,25 @@
// FIXME: We can optimize the size of the composited layers, by not enlarging
// filtered areas with the outsets if we know that the filter is going to render in hardware.
// https://bugs.webkit.org/show_bug.cgi?id=81239
- if ((flags & IncludeLayerFilterOutsets) && layer->renderer()->style()->hasFilterOutsets()) {
+ if ((flags & IncludeLayerFilterOutsets) && renderer->style()->hasFilterOutsets()) {
int topOutset;
int rightOutset;
int bottomOutset;
int leftOutset;
- layer->renderer()->style()->getFilterOutsets(topOutset, rightOutset, bottomOutset, leftOutset);
+ renderer->style()->getFilterOutsets(topOutset, rightOutset, bottomOutset, leftOutset);
unionBounds.move(-leftOutset, -topOutset);
unionBounds.expand(leftOutset + rightOutset, topOutset + bottomOutset);
}
#endif
- if ((flags & IncludeSelfTransform) && layer->paintsWithTransform(PaintBehaviorNormal)) {
- TransformationMatrix* affineTrans = layer->transform();
+ if ((flags & IncludeSelfTransform) && paintsWithTransform(PaintBehaviorNormal)) {
+ TransformationMatrix* affineTrans = transform();
boundingBoxRect = affineTrans->mapRect(boundingBoxRect);
unionBounds = affineTrans->mapRect(unionBounds);
}
LayoutPoint ancestorRelOffset;
- layer->convertToLayerCoords(ancestorLayer, ancestorRelOffset);
+ convertToLayerCoords(ancestorLayer, ancestorRelOffset);
unionBounds.moveBy(ancestorRelOffset);
return pixelSnappedIntRect(unionBounds);
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (134354 => 134355)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2012-11-13 04:58:58 UTC (rev 134354)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2012-11-13 05:24:31 UTC (rev 134355)
@@ -565,7 +565,7 @@
DefaultCalculateLayerBoundsFlags = IncludeSelfTransform | UseLocalClipRectIfPossible | IncludeLayerFilterOutsets
};
typedef unsigned CalculateLayerBoundsFlags;
- static IntRect calculateLayerBounds(const RenderLayer*, const RenderLayer* ancestorLayer, CalculateLayerBoundsFlags = DefaultCalculateLayerBoundsFlags);
+ IntRect calculateLayerBounds(const RenderLayer* ancestorLayer, CalculateLayerBoundsFlags = DefaultCalculateLayerBoundsFlags) const;
// WARNING: This method returns the offset for the parent as this is what updateLayerPositions expects.
LayoutPoint computeOffsetFromRoot(bool& hasLayerOffset) const;
@@ -755,7 +755,7 @@
OverlapTestRequestMap* overlapTestRequests; // May be null.
PaintBehavior paintBehavior;
};
-
+
void paintLayer(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags);
void paintLayerContentsAndReflection(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags);
void paintLayerContents(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags);