#include "platform/geometry/LayoutRect.h"
#include "wtf/Noncopyable.h"
-namespace WebCore {
+namespace blink {
-enum RepaintStatus {
- NeedsNormalRepaint = 0,
- NeedsFullRepaint = 1 << 0,
- NeedsFullRepaintForPositionedMovementLayout = NeedsFullRepaint | 1 << 1
-};
-
-class RenderGeometryMap;
class RenderLayer;
class RenderLayerModelObject;
class RenderLayerRepainter {
WTF_MAKE_NONCOPYABLE(RenderLayerRepainter);
public:
- RenderLayerRepainter(RenderLayerModelObject*);
+ RenderLayerRepainter(RenderLayerModelObject&);
- // Return a cached repaint rect, computed relative to the layer renderer's containerForRepaint.
- LayoutRect repaintRect() const { return m_repaintRect; }
LayoutRect repaintRectIncludingNonCompositingDescendants() const;
- void repaintAfterLayout(RenderGeometryMap*, bool shouldCheckForRepaint);
- void repaintIncludingNonCompositingDescendants(RenderLayerModelObject* repaintContainer);
- void repaintIncludingDescendants();
-
- void setRepaintStatus(RepaintStatus status) { m_repaintStatus = status; }
+ void paintInvalidationIncludingNonCompositingDescendants();
- void computeRepaintRects(const RenderLayerModelObject* repaintContainer, const RenderGeometryMap* = 0);
- void computeRepaintRectsIncludingDescendants();
+ void computePaintInvalidationRectsIncludingNonCompositingDescendants();
// Indicate that the layer contents need to be repainted. Only has an effect
// if layer compositing is being used,
- void setBackingNeedsRepaint();
void setBackingNeedsRepaintInRect(const LayoutRect&); // r is in the coordinate space of the layer's render object
void setFilterBackendNeedsRepaintingInRect(const LayoutRect&);
private:
- bool shouldRepaintLayer() const;
-
- void clearRepaintRects();
+ void repaintIncludingNonCompositingDescendantsInternal(const RenderLayerModelObject* repaintContainer);
RenderLayer* enclosingFilterRepaintLayer() const;
- RenderLayerModelObject* m_renderer;
-
- unsigned m_repaintStatus; // RepaintStatus
-
- LayoutRect m_repaintRect; // Cached repaint rects. Used by layout.
- LayoutRect m_outlineBox;
+ RenderLayerModelObject& m_renderer;
};
-} // namespace WebCore
+} // namespace blink
#endif // RenderLayerRepainter_h