// Copyright 2013 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 CC_BASE_INVALIDATION_REGION_H_ #define CC_BASE_INVALIDATION_REGION_H_ #include "cc/base/cc_export.h" #include "cc/base/region.h" #include "ui/gfx/rect.h" namespace cc { // This class behaves similarly to Region, but it may have false positives. That // is, InvalidationRegion can be simplified to encompass a larger area than the // collection of rects unioned. class CC_EXPORT InvalidationRegion { public: InvalidationRegion(); ~InvalidationRegion(); void Swap(Region* region); void Clear(); void Union(const gfx::Rect& rect); bool IsEmpty() const { return region_.IsEmpty(); } private: void SimplifyIfNeeded(); Region region_; }; } // namespace cc #endif // CC_BASE_INVALIDATION_REGION_H_