blob: 86f7581d79bb2aa7277209973fdfc5ffda794677 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_BLOCK_FLOW_PAINT_INVALIDATOR_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_BLOCK_FLOW_PAINT_INVALIDATOR_H_
#include "third_party/blink/renderer/platform/graphics/paint_invalidation_reason.h"
#include "third_party/blink/renderer/platform/wtf/allocator.h"
namespace blink {
class LayoutBlockFlow;
class BlockFlowPaintInvalidator {
STACK_ALLOCATED();
public:
BlockFlowPaintInvalidator(const LayoutBlockFlow& block_flow)
: block_flow_(block_flow) {}
void InvalidatePaintForOverhangingFloats() {
InvalidatePaintForOverhangingFloatsInternal(kInvalidateDescendants);
}
void InvalidateDisplayItemClients(PaintInvalidationReason);
private:
enum InvalidateDescendantMode {
kDontInvalidateDescendants,
kInvalidateDescendants
};
void InvalidatePaintForOverhangingFloatsInternal(InvalidateDescendantMode);
const LayoutBlockFlow& block_flow_;
};
} // namespace blink
#endif