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 "config.h" | 5 #include "config.h" |
6 #include "core/paint/BoxPainter.h" | 6 #include "core/paint/BoxPainter.h" |
7 | 7 |
8 #include "core/HTMLNames.h" | 8 #include "core/HTMLNames.h" |
9 #include "core/frame/Settings.h" | 9 #include "core/frame/Settings.h" |
10 #include "core/html/HTMLFrameOwnerElement.h" | 10 #include "core/html/HTMLFrameOwnerElement.h" |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
518 LayoutObjectDrawingRecorder recorder(*paintInfo.context, m_layoutBox, paintI
nfo.phase, visualOverflowRect); | 518 LayoutObjectDrawingRecorder recorder(*paintInfo.context, m_layoutBox, paintI
nfo.phase, visualOverflowRect); |
519 LayoutRect paintRect = LayoutRect(paintOffset, m_layoutBox.size()); | 519 LayoutRect paintRect = LayoutRect(paintOffset, m_layoutBox.size()); |
520 paintMaskImages(paintInfo, paintRect); | 520 paintMaskImages(paintInfo, paintRect); |
521 } | 521 } |
522 | 522 |
523 void BoxPainter::paintMaskImages(const PaintInfo& paintInfo, const LayoutRect& p
aintRect) | 523 void BoxPainter::paintMaskImages(const PaintInfo& paintInfo, const LayoutRect& p
aintRect) |
524 { | 524 { |
525 // Figure out if we need to push a transparency layer to render our mask. | 525 // Figure out if we need to push a transparency layer to render our mask. |
526 bool pushTransparencyLayer = false; | 526 bool pushTransparencyLayer = false; |
527 bool compositedMask = m_layoutBox.hasLayer() && m_layoutBox.layer()->hasComp
ositedMask(); | 527 bool compositedMask = m_layoutBox.hasLayer() && m_layoutBox.layer()->hasComp
ositedMask(); |
528 bool flattenCompositingLayers = m_layoutBox.view()->frameView() && m_layoutB
ox.view()->frameView()->paintBehavior() & PaintBehaviorFlattenCompositingLayers; | 528 bool flattenCompositingLayers = gGlobalPaintFlags & GlobalPaintFlattenCompos
itingLayers; |
529 | 529 |
530 bool allMaskImagesLoaded = true; | 530 bool allMaskImagesLoaded = true; |
531 | 531 |
532 if (!compositedMask || flattenCompositingLayers) { | 532 if (!compositedMask || flattenCompositingLayers) { |
533 pushTransparencyLayer = true; | 533 pushTransparencyLayer = true; |
534 StyleImage* maskBoxImage = m_layoutBox.style()->maskBoxImage().image(); | 534 StyleImage* maskBoxImage = m_layoutBox.style()->maskBoxImage().image(); |
535 const FillLayer& maskLayers = m_layoutBox.style()->maskLayers(); | 535 const FillLayer& maskLayers = m_layoutBox.style()->maskLayers(); |
536 | 536 |
537 // Don't render a masked element until all the mask images have loaded,
to prevent a flash of unmasked content. | 537 // Don't render a masked element until all the mask images have loaded,
to prevent a flash of unmasked content. |
538 if (maskBoxImage) | 538 if (maskBoxImage) |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 return ImageQualityController::imageQualityController()->chooseInterpolation
Quality(context, &obj, image, layer, size); | 763 return ImageQualityController::imageQualityController()->chooseInterpolation
Quality(context, &obj, image, layer, size); |
764 } | 764 } |
765 | 765 |
766 bool BoxPainter::fixedBackgroundPaintsInLocalCoordinates(const LayoutObject& obj
) | 766 bool BoxPainter::fixedBackgroundPaintsInLocalCoordinates(const LayoutObject& obj
) |
767 { | 767 { |
768 if (!obj.isLayoutView()) | 768 if (!obj.isLayoutView()) |
769 return false; | 769 return false; |
770 | 770 |
771 const LayoutView& view = toLayoutView(obj); | 771 const LayoutView& view = toLayoutView(obj); |
772 | 772 |
773 if (view.frameView() && view.frameView()->paintBehavior() & PaintBehaviorFla
ttenCompositingLayers) | 773 if (gGlobalPaintFlags & GlobalPaintFlattenCompositingLayers) |
774 return false; | 774 return false; |
775 | 775 |
776 DeprecatedPaintLayer* rootLayer = view.layer(); | 776 DeprecatedPaintLayer* rootLayer = view.layer(); |
777 if (!rootLayer || rootLayer->compositingState() == NotComposited) | 777 if (!rootLayer || rootLayer->compositingState() == NotComposited) |
778 return false; | 778 return false; |
779 | 779 |
780 return rootLayer->compositedDeprecatedPaintLayerMapping()->backgroundLayerPa
intsFixedRootBackground(); | 780 return rootLayer->compositedDeprecatedPaintLayerMapping()->backgroundLayerPa
intsFixedRootBackground(); |
781 } | 781 } |
782 | 782 |
783 static inline void applySubPixelHeuristicForTileSize(LayoutSize& tileSize, const
IntSize& positioningAreaSize) | 783 static inline void applySubPixelHeuristicForTileSize(LayoutSize& tileSize, const
IntSize& positioningAreaSize) |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1044 } | 1044 } |
1045 } | 1045 } |
1046 | 1046 |
1047 bool BoxPainter::shouldForceWhiteBackgroundForPrintEconomy(const ComputedStyle&
style, const Document& document) | 1047 bool BoxPainter::shouldForceWhiteBackgroundForPrintEconomy(const ComputedStyle&
style, const Document& document) |
1048 { | 1048 { |
1049 return document.printing() && style.printColorAdjust() == PrintColorAdjustEc
onomy | 1049 return document.printing() && style.printColorAdjust() == PrintColorAdjustEc
onomy |
1050 && (!document.settings() || !document.settings()->shouldPrintBackgrounds
()); | 1050 && (!document.settings() || !document.settings()->shouldPrintBackgrounds
()); |
1051 } | 1051 } |
1052 | 1052 |
1053 } // namespace blink | 1053 } // namespace blink |
OLD | NEW |