| 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 949 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 960 graphicsLayerParentLocation); | 960 graphicsLayerParentLocation); |
| 961 updateContentsOffsetInCompositingLayer(snappedOffsetFromCompositedAncestor, | 961 updateContentsOffsetInCompositingLayer(snappedOffsetFromCompositedAncestor, |
| 962 graphicsLayerParentLocation); | 962 graphicsLayerParentLocation); |
| 963 updateSquashingLayerGeometry( | 963 updateSquashingLayerGeometry( |
| 964 graphicsLayerParentLocation, compositingContainer, m_squashedLayers, | 964 graphicsLayerParentLocation, compositingContainer, m_squashedLayers, |
| 965 m_squashingLayer.get(), &m_squashingLayerOffsetFromTransformedAncestor, | 965 m_squashingLayer.get(), &m_squashingLayerOffsetFromTransformedAncestor, |
| 966 layersNeedingPaintInvalidation); | 966 layersNeedingPaintInvalidation); |
| 967 | 967 |
| 968 // If we have a layer that clips children, position it. | 968 // If we have a layer that clips children, position it. |
| 969 IntRect clippingBox; | 969 IntRect clippingBox; |
| 970 if (m_childContainmentLayer) | 970 if (m_childContainmentLayer && layoutObject()->isBox()) |
| 971 clippingBox = clipBox(toLayoutBox(layoutObject())); | 971 clippingBox = clipBox(toLayoutBox(layoutObject())); |
| 972 | 972 |
| 973 updateChildTransformLayerGeometry(); | 973 updateChildTransformLayerGeometry(); |
| 974 updateChildContainmentLayerGeometry(clippingBox, localCompositingBounds); | 974 updateChildContainmentLayerGeometry(clippingBox, localCompositingBounds); |
| 975 | 975 |
| 976 updateMaskLayerGeometry(); | 976 updateMaskLayerGeometry(); |
| 977 updateTransformGeometry(snappedOffsetFromCompositedAncestor, | 977 updateTransformGeometry(snappedOffsetFromCompositedAncestor, |
| 978 relativeCompositingBounds); | 978 relativeCompositingBounds); |
| 979 updateForegroundLayerGeometry(contentsSize, clippingBox); | 979 updateForegroundLayerGeometry(contentsSize, clippingBox); |
| 980 updateBackgroundLayerGeometry(contentsSize); | 980 updateBackgroundLayerGeometry(contentsSize); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1036 m_graphicsLayer->setBackfaceVisibility( | 1036 m_graphicsLayer->setBackfaceVisibility( |
| 1037 layoutObject()->style()->backfaceVisibility() == | 1037 layoutObject()->style()->backfaceVisibility() == |
| 1038 BackfaceVisibilityVisible); | 1038 BackfaceVisibilityVisible); |
| 1039 } | 1039 } |
| 1040 | 1040 |
| 1041 void CompositedLayerMapping::computeGraphicsLayerParentLocation( | 1041 void CompositedLayerMapping::computeGraphicsLayerParentLocation( |
| 1042 const PaintLayer* compositingContainer, | 1042 const PaintLayer* compositingContainer, |
| 1043 const IntRect& ancestorCompositingBounds, | 1043 const IntRect& ancestorCompositingBounds, |
| 1044 IntPoint& graphicsLayerParentLocation) { | 1044 IntPoint& graphicsLayerParentLocation) { |
| 1045 if (compositingContainer && | 1045 if (compositingContainer && |
| 1046 compositingContainer->compositedLayerMapping()->hasClippingLayer()) { | 1046 compositingContainer->compositedLayerMapping()->hasClippingLayer() && |
| 1047 compositingContainer->layoutObject()->isBox()) { |
| 1047 // If the compositing ancestor has a layer to clip children, we parent in | 1048 // If the compositing ancestor has a layer to clip children, we parent in |
| 1048 // that, and therefore position relative to it. | 1049 // that, and therefore position relative to it. |
| 1049 IntRect clippingBox = | 1050 IntRect clippingBox = |
| 1050 clipBox(toLayoutBox(compositingContainer->layoutObject())); | 1051 clipBox(toLayoutBox(compositingContainer->layoutObject())); |
| 1051 graphicsLayerParentLocation = | 1052 graphicsLayerParentLocation = |
| 1052 clippingBox.location() + | 1053 clippingBox.location() + |
| 1053 roundedIntSize(compositingContainer->subpixelAccumulation()); | 1054 roundedIntSize(compositingContainer->subpixelAccumulation()); |
| 1054 } else if (compositingContainer && | 1055 } else if (compositingContainer && |
| 1055 compositingContainer->compositedLayerMapping() | 1056 compositingContainer->compositedLayerMapping() |
| 1056 ->childTransformLayer()) { | 1057 ->childTransformLayer()) { |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1353 if (m_foregroundLayer) { | 1354 if (m_foregroundLayer) { |
| 1354 if (m_foregroundLayer->size() != m_scrollingContentsLayer->size()) | 1355 if (m_foregroundLayer->size() != m_scrollingContentsLayer->size()) |
| 1355 m_foregroundLayer->setSize(m_scrollingContentsLayer->size()); | 1356 m_foregroundLayer->setSize(m_scrollingContentsLayer->size()); |
| 1356 m_foregroundLayer->setNeedsDisplay(); | 1357 m_foregroundLayer->setNeedsDisplay(); |
| 1357 m_foregroundLayer->setOffsetFromLayoutObject( | 1358 m_foregroundLayer->setOffsetFromLayoutObject( |
| 1358 m_scrollingContentsLayer->offsetFromLayoutObject()); | 1359 m_scrollingContentsLayer->offsetFromLayoutObject()); |
| 1359 } | 1360 } |
| 1360 } | 1361 } |
| 1361 | 1362 |
| 1362 void CompositedLayerMapping::updateChildClippingMaskLayerGeometry() { | 1363 void CompositedLayerMapping::updateChildClippingMaskLayerGeometry() { |
| 1363 if (!m_childClippingMaskLayer || !layoutObject()->style()->clipPath()) | 1364 if (!m_childClippingMaskLayer || !layoutObject()->style()->clipPath() || |
| 1365 !layoutObject()->isBox()) |
| 1364 return; | 1366 return; |
| 1365 LayoutBox* layoutBox = toLayoutBox(layoutObject()); | 1367 LayoutBox* layoutBox = toLayoutBox(layoutObject()); |
| 1366 IntRect clientBox = enclosingIntRect(layoutBox->clientBoxRect()); | 1368 IntRect clientBox = enclosingIntRect(layoutBox->clientBoxRect()); |
| 1367 | 1369 |
| 1368 m_childClippingMaskLayer->setPosition(m_graphicsLayer->position()); | 1370 m_childClippingMaskLayer->setPosition(m_graphicsLayer->position()); |
| 1369 m_childClippingMaskLayer->setSize(m_graphicsLayer->size()); | 1371 m_childClippingMaskLayer->setSize(m_graphicsLayer->size()); |
| 1370 m_childClippingMaskLayer->setOffsetFromLayoutObject( | 1372 m_childClippingMaskLayer->setOffsetFromLayoutObject( |
| 1371 toIntSize(clientBox.location())); | 1373 toIntSize(clientBox.location())); |
| 1372 | 1374 |
| 1373 // NOTE: also some stuff happening in updateChildContainmentLayerGeometry(). | 1375 // NOTE: also some stuff happening in updateChildContainmentLayerGeometry(). |
| (...skipping 2006 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3380 } else if (graphicsLayer == m_decorationOutlineLayer.get()) { | 3382 } else if (graphicsLayer == m_decorationOutlineLayer.get()) { |
| 3381 name = "Decoration Layer"; | 3383 name = "Decoration Layer"; |
| 3382 } else { | 3384 } else { |
| 3383 ASSERT_NOT_REACHED(); | 3385 ASSERT_NOT_REACHED(); |
| 3384 } | 3386 } |
| 3385 | 3387 |
| 3386 return name; | 3388 return name; |
| 3387 } | 3389 } |
| 3388 | 3390 |
| 3389 } // namespace blink | 3391 } // namespace blink |
| OLD | NEW |