| 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 #ifndef LayoutObjectDrawingRecorder_h | 5 #ifndef LayoutObjectDrawingRecorder_h |
| 6 #define LayoutObjectDrawingRecorder_h | 6 #define LayoutObjectDrawingRecorder_h |
| 7 | 7 |
| 8 #include "core/layout/LayoutObject.h" | 8 #include "core/layout/LayoutObject.h" |
| 9 #include "core/paint/PaintPhase.h" | 9 #include "core/paint/PaintPhase.h" |
| 10 #include "platform/geometry/LayoutPoint.h" | 10 #include "platform/geometry/LayoutPoint.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 LayoutObjectDrawingRecorder(GraphicsContext& context, const LayoutObject& la
youtObject, PaintPhase phase, const IntRect& clip, const LayoutPoint& paintOffse
t) | 57 LayoutObjectDrawingRecorder(GraphicsContext& context, const LayoutObject& la
youtObject, PaintPhase phase, const IntRect& clip, const LayoutPoint& paintOffse
t) |
| 58 : LayoutObjectDrawingRecorder(context, layoutObject, DisplayItem::paintP
haseToDrawingType(phase), FloatRect(clip), paintOffset) { } | 58 : LayoutObjectDrawingRecorder(context, layoutObject, DisplayItem::paintP
haseToDrawingType(phase), FloatRect(clip), paintOffset) { } |
| 59 | 59 |
| 60 #if ENABLE(ASSERT) | 60 #if ENABLE(ASSERT) |
| 61 void setUnderInvalidationCheckingMode(DrawingDisplayItem::UnderInvalidationC
heckingMode mode) { m_drawingRecorder->setUnderInvalidationCheckingMode(mode); } | 61 void setUnderInvalidationCheckingMode(DrawingDisplayItem::UnderInvalidationC
heckingMode mode) { m_drawingRecorder->setUnderInvalidationCheckingMode(mode); } |
| 62 #endif | 62 #endif |
| 63 | 63 |
| 64 private: | 64 private: |
| 65 static void updatePaintOffsetIfNeeded(DisplayItemList* displayItemList, cons
t LayoutObject& layoutObject, const LayoutPoint& paintOffset) | 65 static void updatePaintOffsetIfNeeded(DisplayItemList* displayItemList, cons
t LayoutObject& layoutObject, const LayoutPoint& paintOffset) |
| 66 { | 66 { |
| 67 if (!RuntimeEnabledFeatures::slimmingPaintOffsetCachingEnabled()) | 67 if (!RuntimeEnabledFeatures::slimmingPaintOffsetCachingEnabled() || disp
layItemList->skippingCache()) |
| 68 return; | 68 return; |
| 69 | 69 |
| 70 if (layoutObject.paintOffsetChanged(paintOffset)) | 70 if (layoutObject.paintOffsetChanged(paintOffset)) |
| 71 displayItemList->invalidatePaintOffset(layoutObject); | 71 displayItemList->invalidatePaintOffset(layoutObject); |
| 72 else | 72 else |
| 73 ASSERT(!displayItemList->paintOffsetWasInvalidated(layoutObject.disp
layItemClient()) || !displayItemList->clientCacheIsValid(layoutObject.displayIte
mClient())); | 73 ASSERT(!displayItemList->paintOffsetWasInvalidated(layoutObject.disp
layItemClient()) || !displayItemList->clientCacheIsValid(layoutObject.displayIte
mClient())); |
| 74 | 74 |
| 75 layoutObject.setPreviousPaintOffset(paintOffset); | 75 layoutObject.setPreviousPaintOffset(paintOffset); |
| 76 } | 76 } |
| 77 | 77 |
| 78 Optional<DisplayItemCacheSkipper> m_cacheSkipper; | 78 Optional<DisplayItemCacheSkipper> m_cacheSkipper; |
| 79 Optional<DrawingRecorder> m_drawingRecorder; | 79 Optional<DrawingRecorder> m_drawingRecorder; |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 } // namespace blink | 82 } // namespace blink |
| 83 | 83 |
| 84 #endif // LayoutObjectDrawingRecorder_h | 84 #endif // LayoutObjectDrawingRecorder_h |
| OLD | NEW |