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 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 } | 132 } |
133 | 133 |
134 RenderLayer* m_compositingAncestor; | 134 RenderLayer* m_compositingAncestor; |
135 bool m_subtreeIsCompositing; | 135 bool m_subtreeIsCompositing; |
136 bool m_hasUnisolatedCompositedBlendingDescendant; | 136 bool m_hasUnisolatedCompositedBlendingDescendant; |
137 bool m_testingOverlap; | 137 bool m_testingOverlap; |
138 }; | 138 }; |
139 | 139 |
140 static bool requiresCompositingOrSquashing(CompositingReasons reasons) | 140 static bool requiresCompositingOrSquashing(CompositingReasons reasons) |
141 { | 141 { |
142 #ifndef NDEBUG | 142 #if ENABLE(ASSERT) |
143 bool fastAnswer = reasons != CompositingReasonNone; | 143 bool fastAnswer = reasons != CompositingReasonNone; |
144 bool slowAnswer = requiresCompositing(reasons) || requiresSquashing(reasons)
; | 144 bool slowAnswer = requiresCompositing(reasons) || requiresSquashing(reasons)
; |
145 ASSERT(fastAnswer == slowAnswer); | 145 ASSERT(fastAnswer == slowAnswer); |
146 #endif | 146 #endif |
147 return reasons != CompositingReasonNone; | 147 return reasons != CompositingReasonNone; |
148 } | 148 } |
149 | 149 |
150 static CompositingReasons subtreeReasonsForCompositing(RenderLayer* layer, bool
hasCompositedDescendants, bool has3DTransformedDescendants) | 150 static CompositingReasons subtreeReasonsForCompositing(RenderLayer* layer, bool
hasCompositedDescendants, bool has3DTransformedDescendants) |
151 { | 151 { |
152 CompositingReasons subtreeReasons = CompositingReasonNone; | 152 CompositingReasons subtreeReasons = CompositingReasonNone; |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
276 | 276 |
277 // Here we know that all children and the layer's own contents can blind
ly paint into | 277 // Here we know that all children and the layer's own contents can blind
ly paint into |
278 // this layer's backing, until a descendant is composited. So, we don't
need to check | 278 // this layer's backing, until a descendant is composited. So, we don't
need to check |
279 // for overlap with anything behind this layer. | 279 // for overlap with anything behind this layer. |
280 overlapMap.beginNewOverlapTestingContext(); | 280 overlapMap.beginNewOverlapTestingContext(); |
281 // This layer is going to be composited, so children can safely ignore t
he fact that there's an | 281 // This layer is going to be composited, so children can safely ignore t
he fact that there's an |
282 // animation running behind this layer, meaning they can rely on the ove
rlap map testing again. | 282 // animation running behind this layer, meaning they can rely on the ove
rlap map testing again. |
283 childRecursionData.m_testingOverlap = true; | 283 childRecursionData.m_testingOverlap = true; |
284 } | 284 } |
285 | 285 |
286 #if ASSERT_ENABLED | 286 #if ENABLE(ASSERT) |
287 LayerListMutationDetector mutationChecker(layer->stackingNode()); | 287 LayerListMutationDetector mutationChecker(layer->stackingNode()); |
288 #endif | 288 #endif |
289 | 289 |
290 bool anyDescendantHas3DTransform = false; | 290 bool anyDescendantHas3DTransform = false; |
291 bool willHaveForegroundLayer = false; | 291 bool willHaveForegroundLayer = false; |
292 | 292 |
293 if (layer->stackingNode()->isStackingContext()) { | 293 if (layer->stackingNode()->isStackingContext()) { |
294 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), Negativ
eZOrderChildren); | 294 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), Negativ
eZOrderChildren); |
295 while (RenderLayerStackingNode* curNode = iterator.next()) { | 295 while (RenderLayerStackingNode* curNode = iterator.next()) { |
296 IntRect absoluteChildDecendantBoundingBox; | 296 IntRect absoluteChildDecendantBoundingBox; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 | 412 |
413 descendantHas3DTransform |= anyDescendantHas3DTransform || layer->has3DT
ransform(); | 413 descendantHas3DTransform |= anyDescendantHas3DTransform || layer->has3DT
ransform(); |
414 } | 414 } |
415 | 415 |
416 // At this point we have finished collecting all reasons to composite this l
ayer. | 416 // At this point we have finished collecting all reasons to composite this l
ayer. |
417 layer->setCompositingReasons(reasonsToComposite); | 417 layer->setCompositingReasons(reasonsToComposite); |
418 | 418 |
419 } | 419 } |
420 | 420 |
421 } // namespace WebCore | 421 } // namespace WebCore |
OLD | NEW |