Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(93)

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayerPainter.cpp

Issue 2614093002: Combine LayoutObject::previousPaintOffset and paintOffset in paint properties (Closed)
Patch Set: - Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/LocalFrame.h" 7 #include "core/frame/LocalFrame.h"
8 #include "core/layout/LayoutView.h" 8 #include "core/layout/LayoutView.h"
9 #include "core/paint/ClipPathClipper.h" 9 #include "core/paint/ClipPathClipper.h"
10 #include "core/paint/FilterPainter.h" 10 #include "core/paint/FilterPainter.h"
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() && 260 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled() &&
261 RuntimeEnabledFeatures::rootLayerScrollingEnabled() && 261 RuntimeEnabledFeatures::rootLayerScrollingEnabled() &&
262 m_paintLayer.layoutObject() && 262 m_paintLayer.layoutObject() &&
263 m_paintLayer.layoutObject()->isLayoutView()) { 263 m_paintLayer.layoutObject()->isLayoutView()) {
264 const auto* objectPaintProperties = 264 const auto* objectPaintProperties =
265 m_paintLayer.layoutObject()->paintProperties(); 265 m_paintLayer.layoutObject()->paintProperties();
266 DCHECK(objectPaintProperties && 266 DCHECK(objectPaintProperties &&
267 objectPaintProperties->localBorderBoxProperties()); 267 objectPaintProperties->localBorderBoxProperties());
268 PaintChunkProperties properties( 268 PaintChunkProperties properties(
269 context.getPaintController().currentPaintChunkProperties()); 269 context.getPaintController().currentPaintChunkProperties());
270 auto& localBorderBoxProperties = 270 properties.propertyTreeState =
271 *objectPaintProperties->localBorderBoxProperties(); 271 *objectPaintProperties->localBorderBoxProperties();
272 properties.propertyTreeState = localBorderBoxProperties.propertyTreeState;
273 properties.backfaceHidden = 272 properties.backfaceHidden =
274 m_paintLayer.layoutObject()->hasHiddenBackface(); 273 m_paintLayer.layoutObject()->hasHiddenBackface();
275 scopedPaintChunkProperties.emplace(context.getPaintController(), 274 scopedPaintChunkProperties.emplace(context.getPaintController(),
276 m_paintLayer, properties); 275 m_paintLayer, properties);
277 } 276 }
278 277
279 DCHECK(m_paintLayer.isSelfPaintingLayer() || 278 DCHECK(m_paintLayer.isSelfPaintingLayer() ||
280 m_paintLayer.hasSelfPaintingLayerDescendant()); 279 m_paintLayer.hasSelfPaintingLayerDescendant());
281 DCHECK(!(paintFlags & PaintLayerAppliedTransform)); 280 DCHECK(!(paintFlags & PaintLayerAppliedTransform));
282 281
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 // the top of this method, in scopedPaintChunkProperties. 496 // the top of this method, in scopedPaintChunkProperties.
498 DCHECK(!(RuntimeEnabledFeatures::rootLayerScrollingEnabled() && 497 DCHECK(!(RuntimeEnabledFeatures::rootLayerScrollingEnabled() &&
499 m_paintLayer.layoutObject() && 498 m_paintLayer.layoutObject() &&
500 m_paintLayer.layoutObject()->isLayoutView())); 499 m_paintLayer.layoutObject()->isLayoutView()));
501 const auto* objectPaintProperties = 500 const auto* objectPaintProperties =
502 m_paintLayer.layoutObject()->paintProperties(); 501 m_paintLayer.layoutObject()->paintProperties();
503 DCHECK(objectPaintProperties && 502 DCHECK(objectPaintProperties &&
504 objectPaintProperties->localBorderBoxProperties()); 503 objectPaintProperties->localBorderBoxProperties());
505 PaintChunkProperties properties( 504 PaintChunkProperties properties(
506 context.getPaintController().currentPaintChunkProperties()); 505 context.getPaintController().currentPaintChunkProperties());
507 auto& localBorderBoxProperties = 506 properties.propertyTreeState =
508 *objectPaintProperties->localBorderBoxProperties(); 507 *objectPaintProperties->localBorderBoxProperties();
509 properties.propertyTreeState = localBorderBoxProperties.propertyTreeState;
510 properties.backfaceHidden = 508 properties.backfaceHidden =
511 m_paintLayer.layoutObject()->hasHiddenBackface(); 509 m_paintLayer.layoutObject()->hasHiddenBackface();
512 contentScopedPaintChunkProperties.emplace(context.getPaintController(), 510 contentScopedPaintChunkProperties.emplace(context.getPaintController(),
513 m_paintLayer, properties); 511 m_paintLayer, properties);
514 } 512 }
515 513
516 bool isPaintingRootLayer = (&m_paintLayer) == paintingInfo.rootLayer; 514 bool isPaintingRootLayer = (&m_paintLayer) == paintingInfo.rootLayer;
517 bool shouldPaintBackground = 515 bool shouldPaintBackground =
518 shouldPaintContent && !selectionOnly && 516 shouldPaintContent && !selectionOnly &&
519 (isPaintingCompositedBackground || 517 (isPaintingCompositedBackground ||
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 } 957 }
960 958
961 LayoutRect newCullRect(clipRect.rect()); 959 LayoutRect newCullRect(clipRect.rect());
962 Optional<ScrollRecorder> scrollRecorder; 960 Optional<ScrollRecorder> scrollRecorder;
963 LayoutPoint paintOffset = -m_paintLayer.layoutBoxLocation(); 961 LayoutPoint paintOffset = -m_paintLayer.layoutBoxLocation();
964 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) { 962 if (RuntimeEnabledFeatures::slimmingPaintV2Enabled()) {
965 const auto* objectPaintProperties = 963 const auto* objectPaintProperties =
966 m_paintLayer.layoutObject()->paintProperties(); 964 m_paintLayer.layoutObject()->paintProperties();
967 DCHECK(objectPaintProperties && 965 DCHECK(objectPaintProperties &&
968 objectPaintProperties->localBorderBoxProperties()); 966 objectPaintProperties->localBorderBoxProperties());
969 paintOffset += 967 paintOffset += m_paintLayer.layoutObject()->paintOffset();
970 toSize(objectPaintProperties->localBorderBoxProperties()->paintOffset);
971 newCullRect.move(paintingInfo.scrollOffsetAccumulation); 968 newCullRect.move(paintingInfo.scrollOffsetAccumulation);
972 } else { 969 } else {
973 paintOffset += toSize(fragment.layerBounds.location()); 970 paintOffset += toSize(fragment.layerBounds.location());
974 if (!paintingInfo.scrollOffsetAccumulation.isZero()) { 971 if (!paintingInfo.scrollOffsetAccumulation.isZero()) {
975 // As a descendant of the root layer, m_paintLayer's painting is not 972 // As a descendant of the root layer, m_paintLayer's painting is not
976 // controlled by the ScrollRecorders created by BlockPainter of the 973 // controlled by the ScrollRecorders created by BlockPainter of the
977 // ancestor layers up to the root layer, so we need to issue 974 // ancestor layers up to the root layer, so we need to issue
978 // ScrollRecorder for this layer seperately, with the scroll offset 975 // ScrollRecorder for this layer seperately, with the scroll offset
979 // accumulated from the root layer to the parent of this layer, to get the 976 // accumulated from the root layer to the parent of this layer, to get the
980 // same result as ScrollRecorder in BlockPainter. 977 // same result as ScrollRecorder in BlockPainter.
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1181 context, *layoutBox, PaintPhaseClippingMask)) 1178 context, *layoutBox, PaintPhaseClippingMask))
1182 return; 1179 return;
1183 1180
1184 IntRect snappedClipRect = pixelSnappedIntRect(clipRect.rect()); 1181 IntRect snappedClipRect = pixelSnappedIntRect(clipRect.rect());
1185 LayoutObjectDrawingRecorder drawingRecorder( 1182 LayoutObjectDrawingRecorder drawingRecorder(
1186 context, *layoutBox, PaintPhaseClippingMask, snappedClipRect); 1183 context, *layoutBox, PaintPhaseClippingMask, snappedClipRect);
1187 context.fillRect(snappedClipRect, Color::black); 1184 context.fillRect(snappedClipRect, Color::black);
1188 } 1185 }
1189 1186
1190 } // namespace blink 1187 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698