Chromium Code Reviews| Index: third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
| diff --git a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
| index 014b68ef9f7465203da33d25418d15b6e91e7ac3..db0e401988a4809a6ba6787f65fa1cc6022b4e10 100644 |
| --- a/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
| +++ b/third_party/WebKit/Source/core/layout/PaintInvalidationState.h |
| @@ -6,6 +6,7 @@ |
| #define PaintInvalidationState_h |
| #include "core/CoreExport.h" |
| +#include "core/paint/PaintInvalidator.h" |
| #include "platform/geometry/LayoutRect.h" |
| #include "platform/graphics/PaintInvalidationReason.h" |
| #include "platform/transforms/AffineTransform.h" |
| @@ -56,13 +57,13 @@ public: |
| bool hasForcedSubtreeInvalidationFlags() const { return m_forcedSubtreeInvalidationFlags; } |
| - bool forcedSubtreeInvalidationCheckingWithinContainer() const { return m_forcedSubtreeInvalidationFlags & InvalidationChecking; } |
| - void setForceSubtreeInvalidationCheckingWithinContainer() { m_forcedSubtreeInvalidationFlags |= InvalidationChecking; } |
| + bool forcedSubtreeInvalidationCheckingWithinContainer() const { return m_forcedSubtreeInvalidationFlags & PaintInvalidatorContext::ForcedSubtreeInvalidationChecking; } |
| + void setForceSubtreeInvalidationCheckingWithinContainer() { m_forcedSubtreeInvalidationFlags |= PaintInvalidatorContext::ForcedSubtreeInvalidationChecking; } |
| - bool forcedSubtreeFullInvalidationWithinContainer() const { return m_forcedSubtreeInvalidationFlags & FullInvalidation; } |
| + bool forcedSubtreeFullInvalidationWithinContainer() const { return m_forcedSubtreeInvalidationFlags & PaintInvalidatorContext::ForcedSubtreeFullInvalidation; } |
| - bool forcedSubtreeInvalidationRectUpdateWithinContainerOnly() const { return m_forcedSubtreeInvalidationFlags == InvalidationRectUpdate; } |
| - void setForceSubtreeInvalidationRectUpdateWithinContainer() { m_forcedSubtreeInvalidationFlags |= InvalidationRectUpdate; } |
| + bool forcedSubtreeInvalidationRectUpdateWithinContainerOnly() const { return m_forcedSubtreeInvalidationFlags == PaintInvalidatorContext::ForcedSubtreeInvalidationRectUpdate; } |
| + void setForceSubtreeInvalidationRectUpdateWithinContainer() { m_forcedSubtreeInvalidationFlags |= PaintInvalidatorContext::ForcedSubtreeInvalidationRectUpdate; } |
| const LayoutBoxModelObject& paintInvalidationContainer() const { return *m_paintInvalidationContainer; } |
| @@ -84,6 +85,7 @@ public: |
| private: |
| friend class VisualRectMappingTest; |
| + friend class PaintInvalidatorContextAdapter; |
| void mapLocalRectToPaintInvalidationContainer(LayoutRect&) const; |
| @@ -96,12 +98,6 @@ private: |
| const LayoutObject& m_currentObject; |
| - enum ForcedSubtreeInvalidationFlag { |
| - InvalidationChecking = 1 << 0, |
| - InvalidationRectUpdate = 1 << 1, |
| - FullInvalidation = 1 << 2, |
| - FullInvalidationForStackedContents = 1 << 3, |
| - }; |
| unsigned m_forcedSubtreeInvalidationFlags; |
| bool m_clipped; |
| @@ -160,6 +156,19 @@ private: |
| #endif |
| }; |
| +// This is temporary to adapt legacy PaintInvalidationState to PaintInvalidatorContext |
| +class PaintInvalidatorContextAdapter : public PaintInvalidatorContext { |
| +public: |
| + PaintInvalidatorContextAdapter(const PaintInvalidationState&); |
| + void mapLocalRectToPaintInvalidationBacking(const LayoutObject& object, LayoutRect& rect) const override |
|
chrishtr
2016/08/09 23:47:31
Doesn't need to be inline.
Xianzhu
2016/08/10 16:25:01
Done.
|
| + { |
| + DCHECK(&object == &m_paintInvalidationState.currentObject()); |
| + m_paintInvalidationState.mapLocalRectToPaintInvalidationBacking(rect); |
| + } |
| +private: |
| + const PaintInvalidationState& m_paintInvalidationState; |
| +}; |
| + |
| } // namespace blink |
| #endif // PaintInvalidationState_h |