OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "core/paint/PaintLayerPainter.h" | 5 #include "core/paint/PaintLayerPainter.h" |
6 | 6 |
7 #include "core/frame/FrameView.h" | 7 #include "core/frame/FrameView.h" |
8 #include "core/frame/Settings.h" | 8 #include "core/frame/Settings.h" |
9 #include "core/layout/LayoutBlock.h" | 9 #include "core/layout/LayoutBlock.h" |
10 #include "core/layout/LayoutView.h" | 10 #include "core/layout/LayoutView.h" |
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
374 ASSERT(objectPaintProperties && objectPaintProperties->localBorderBo
xProperties()); | 374 ASSERT(objectPaintProperties && objectPaintProperties->localBorderBo
xProperties()); |
375 PaintChunkProperties properties(context.getPaintController().current
PaintChunkProperties()); | 375 PaintChunkProperties properties(context.getPaintController().current
PaintChunkProperties()); |
376 auto& localBorderBoxProperties = *objectPaintProperties->localBorder
BoxProperties(); | 376 auto& localBorderBoxProperties = *objectPaintProperties->localBorder
BoxProperties(); |
377 properties.transform = localBorderBoxProperties.propertyTreeState.tr
ansform; | 377 properties.transform = localBorderBoxProperties.propertyTreeState.tr
ansform; |
378 properties.clip = localBorderBoxProperties.propertyTreeState.clip; | 378 properties.clip = localBorderBoxProperties.propertyTreeState.clip; |
379 properties.effect = localBorderBoxProperties.propertyTreeState.effec
t; | 379 properties.effect = localBorderBoxProperties.propertyTreeState.effec
t; |
380 properties.backfaceHidden = m_paintLayer.layoutObject()->hasHiddenBa
ckface(); | 380 properties.backfaceHidden = m_paintLayer.layoutObject()->hasHiddenBa
ckface(); |
381 scopedPaintChunkProperties.emplace(context.getPaintController(), m_p
aintLayer, properties); | 381 scopedPaintChunkProperties.emplace(context.getPaintController(), m_p
aintLayer, properties); |
382 } | 382 } |
383 | 383 |
384 bool shouldPaintBackground = isPaintingCompositedBackground && shouldPai
ntContent && !selectionOnly; | 384 bool shouldPaintBackgroundOntoForeground = paintFlags & PaintLayerPainti
ngCompositingScrollingPhase |
| 385 && m_paintLayer.shouldPaintBackgroundOntoForeground(); |
| 386 bool shouldPaintBackground = shouldPaintContent && !selectionOnly |
| 387 && (shouldPaintBackgroundOntoForeground || isPaintingCompositedBackg
round); |
385 bool shouldPaintNegZOrderList = (isPaintingScrollingContent && isPaintin
gOverflowContents) || (!isPaintingScrollingContent && isPaintingCompositedBackgr
ound); | 388 bool shouldPaintNegZOrderList = (isPaintingScrollingContent && isPaintin
gOverflowContents) || (!isPaintingScrollingContent && isPaintingCompositedBackgr
ound); |
386 bool shouldPaintOwnContents = isPaintingCompositedForeground && shouldPa
intContent; | 389 bool shouldPaintOwnContents = isPaintingCompositedForeground && shouldPa
intContent; |
387 bool shouldPaintNormalFlowAndPosZOrderLists = isPaintingCompositedForegr
ound; | 390 bool shouldPaintNormalFlowAndPosZOrderLists = isPaintingCompositedForegr
ound; |
388 bool shouldPaintOverlayScrollbars = isPaintingOverlayScrollbars; | 391 bool shouldPaintOverlayScrollbars = isPaintingOverlayScrollbars; |
389 | 392 |
390 if (shouldPaintBackground) { | 393 if (shouldPaintBackground) { |
| 394 PaintLayerFlags localPaintFlags(paintFlags); |
| 395 if (shouldPaintBackgroundOntoForeground) |
| 396 localPaintFlags |= PaintLayerPaintingRootBackgroundOntoForegroun
d; |
391 paintBackgroundForFragments(layerFragments, context, paintingInfo.pa
intDirtyRect, | 397 paintBackgroundForFragments(layerFragments, context, paintingInfo.pa
intDirtyRect, |
392 localPaintingInfo, paintFlags); | 398 localPaintingInfo, localPaintFlags); |
393 } | 399 } |
394 | 400 |
395 if (shouldPaintNegZOrderList) { | 401 if (shouldPaintNegZOrderList) { |
396 if (paintChildren(NegativeZOrderChildren, context, paintingInfo, pai
ntFlags) == MayBeClippedByPaintDirtyRect) | 402 if (paintChildren(NegativeZOrderChildren, context, paintingInfo, pai
ntFlags) == MayBeClippedByPaintDirtyRect) |
397 result = MayBeClippedByPaintDirtyRect; | 403 result = MayBeClippedByPaintDirtyRect; |
398 } | 404 } |
399 | 405 |
400 if (shouldPaintOwnContents) { | 406 if (shouldPaintOwnContents) { |
401 paintForegroundForFragments(layerFragments, context, paintingInfo.pa
intDirtyRect, | 407 paintForegroundForFragments(layerFragments, context, paintingInfo.pa
intDirtyRect, |
402 localPaintingInfo, selectionOnly, paintFlags); | 408 localPaintingInfo, selectionOnly, paintFlags); |
(...skipping 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 if (!m_paintLayer.containsDirtyOverlayScrollbars()) | 815 if (!m_paintLayer.containsDirtyOverlayScrollbars()) |
810 return; | 816 return; |
811 | 817 |
812 PaintLayerPaintingInfo paintingInfo(&m_paintLayer, LayoutRect(enclosingIntRe
ct(damageRect)), paintFlags, LayoutSize()); | 818 PaintLayerPaintingInfo paintingInfo(&m_paintLayer, LayoutRect(enclosingIntRe
ct(damageRect)), paintFlags, LayoutSize()); |
813 paintLayer(context, paintingInfo, PaintLayerPaintingOverlayScrollbars); | 819 paintLayer(context, paintingInfo, PaintLayerPaintingOverlayScrollbars); |
814 | 820 |
815 m_paintLayer.setContainsDirtyOverlayScrollbars(false); | 821 m_paintLayer.setContainsDirtyOverlayScrollbars(false); |
816 } | 822 } |
817 | 823 |
818 } // namespace blink | 824 } // namespace blink |
OLD | NEW |