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 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 | 587 |
588 squashedBounds.move(offsetFromSquashingLayer); | 588 squashedBounds.move(offsetFromSquashingLayer); |
589 totalSquashBounds.unite(squashedBounds); | 589 totalSquashBounds.unite(squashedBounds); |
590 } | 590 } |
591 | 591 |
592 // The totalSquashBounds is positioned with respect to referenceLayer of thi
s CompositedLayerMapping. | 592 // The totalSquashBounds is positioned with respect to referenceLayer of thi
s CompositedLayerMapping. |
593 // But the squashingLayer needs to be positioned with respect to the ancesto
r CompositedLayerMapping. | 593 // But the squashingLayer needs to be positioned with respect to the ancesto
r CompositedLayerMapping. |
594 // The conversion between referenceLayer and the ancestor CLM is already com
puted as | 594 // The conversion between referenceLayer and the ancestor CLM is already com
puted as |
595 // offsetFromReferenceLayerToParentGraphicsLayer. | 595 // offsetFromReferenceLayerToParentGraphicsLayer. |
596 totalSquashBounds.moveBy(offsetFromReferenceLayerToParentGraphicsLayer); | 596 totalSquashBounds.moveBy(offsetFromReferenceLayerToParentGraphicsLayer); |
597 IntRect squashLayerBounds = enclosingIntRect(totalSquashBounds); | 597 const IntRect squashLayerBounds = enclosingIntRect(totalSquashBounds); |
598 IntPoint squashLayerOrigin = squashLayerBounds.location(); | 598 const IntPoint squashLayerOrigin = squashLayerBounds.location(); |
599 LayoutSize squashLayerOriginInOwningLayerSpace = squashLayerOrigin - offsetF
romReferenceLayerToParentGraphicsLayer; | 599 const LayoutSize squashLayerOriginInOwningLayerSpace = squashLayerOrigin - o
ffsetFromReferenceLayerToParentGraphicsLayer; |
600 | 600 |
601 // Now that the squashing bounds are known, we can convert the RenderLayer p
ainting offsets | 601 // Now that the squashing bounds are known, we can convert the RenderLayer p
ainting offsets |
602 // from CLM owning layer space to the squashing layer space. | 602 // from CLM owning layer space to the squashing layer space. |
603 // | 603 // |
604 // The painting offset we want to compute for each squashed RenderLayer is e
ssentially the position of | 604 // The painting offset we want to compute for each squashed RenderLayer is e
ssentially the position of |
605 // the squashed RenderLayer described w.r.t. referenceLayer's origin. For th
is purpose we already cached | 605 // the squashed RenderLayer described w.r.t. referenceLayer's origin. |
606 // offsetFromSquashingCLM before, which describes where the squashed RenderL
ayer is located w.r.t. | 606 // So we just need to convert that point from referenceLayer space to the sq
uashing layer's |
607 // referenceLayer. So we just need to convert that point from referenceLayer
space to referenceLayer | |
608 // space. This is simply done by subtracing squashLayerOriginInOwningLayerSp
ace, but then the offset | 607 // space. This is simply done by subtracing squashLayerOriginInOwningLayerSp
ace, but then the offset |
609 // overall needs to be negated because that's the direction that the paintin
g code expects the | 608 // overall needs to be negated because that's the direction that the paintin
g code expects the |
610 // offset to be. | 609 // offset to be. |
611 for (size_t i = 0; i < layers.size(); ++i) { | 610 for (size_t i = 0; i < layers.size(); ++i) { |
612 LayoutPoint offsetFromTransformedAncestorForSquashedLayer = layers[i].re
nderLayer->computeOffsetFromTransformedAncestor(); | 611 const LayoutPoint offsetFromTransformedAncestorForSquashedLayer = layers
[i].renderLayer->computeOffsetFromTransformedAncestor(); |
613 LayoutSize offsetFromSquashLayerOrigin = (offsetFromTransformedAncestorF
orSquashedLayer - referenceOffsetFromTransformedAncestor) - squashLayerOriginInO
wningLayerSpace; | 612 const LayoutSize offsetFromSquashLayerOrigin = (offsetFromTransformedAnc
estorForSquashedLayer - referenceOffsetFromTransformedAncestor) - squashLayerOri
ginInOwningLayerSpace; |
614 | 613 |
615 // It is ok to issue paint invalidation here, because all of the geometr
y needed to correctly invalidate paint is computed by this point. | |
616 IntSize newOffsetFromRenderer = -IntSize(offsetFromSquashLayerOrigin.wid
th().round(), offsetFromSquashLayerOrigin.height().round()); | 614 IntSize newOffsetFromRenderer = -IntSize(offsetFromSquashLayerOrigin.wid
th().round(), offsetFromSquashLayerOrigin.height().round()); |
617 LayoutSize subpixelAccumulation = offsetFromSquashLayerOrigin + newOffse
tFromRenderer; | 615 LayoutSize subpixelAccumulation = offsetFromSquashLayerOrigin + newOffse
tFromRenderer; |
618 if (layers[i].offsetFromRendererSet && layers[i].offsetFromRenderer != n
ewOffsetFromRenderer) { | 616 if (layers[i].offsetFromRendererSet && layers[i].offsetFromRenderer != n
ewOffsetFromRenderer) { |
| 617 // It is ok to issue paint invalidation here, because all of the geo
metry needed to correctly invalidate paint is computed by this point. |
619 layers[i].renderLayer->renderer()->invalidatePaintIncludingNonCompos
itingDescendants(); | 618 layers[i].renderLayer->renderer()->invalidatePaintIncludingNonCompos
itingDescendants(); |
620 | 619 |
621 TRACE_LAYER_INVALIDATION(layers[i].renderLayer, InspectorLayerInvali
dationTrackingEvent::SquashingLayerGeometryWasUpdated); | 620 TRACE_LAYER_INVALIDATION(layers[i].renderLayer, InspectorLayerInvali
dationTrackingEvent::SquashingLayerGeometryWasUpdated); |
622 layersNeedingPaintInvalidation.append(layers[i].renderLayer); | 621 layersNeedingPaintInvalidation.append(layers[i].renderLayer); |
623 } | 622 } |
624 layers[i].offsetFromRenderer = newOffsetFromRenderer; | 623 layers[i].offsetFromRenderer = newOffsetFromRenderer; |
625 layers[i].offsetFromRendererSet = true; | 624 layers[i].offsetFromRendererSet = true; |
626 | 625 |
627 layers[i].renderLayer->setSubpixelAccumulation(subpixelAccumulation); | 626 layers[i].renderLayer->setSubpixelAccumulation(subpixelAccumulation); |
628 } | 627 } |
(...skipping 1745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2374 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { | 2373 } else if (graphicsLayer == m_scrollingBlockSelectionLayer.get()) { |
2375 name = "Scrolling Block Selection Layer"; | 2374 name = "Scrolling Block Selection Layer"; |
2376 } else { | 2375 } else { |
2377 ASSERT_NOT_REACHED(); | 2376 ASSERT_NOT_REACHED(); |
2378 } | 2377 } |
2379 | 2378 |
2380 return name; | 2379 return name; |
2381 } | 2380 } |
2382 | 2381 |
2383 } // namespace blink | 2382 } // namespace blink |
OLD | NEW |