1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "cc/base/invalidation_region.h" 6 7#include "base/metrics/histogram.h" 8 9namespace { 10 11const int kMaxInvalidationRectCount = 256; 12 13} // namespace 14 15namespace cc { 16 17InvalidationRegion::InvalidationRegion() {} 18 19InvalidationRegion::~InvalidationRegion() {} 20 21void InvalidationRegion::Swap(Region* region) { 22 region_.Swap(region); 23} 24 25void InvalidationRegion::Clear() { 26 region_.Clear(); 27} 28 29void InvalidationRegion::Union(const gfx::Rect& rect) { 30 region_.Union(rect); 31 SimplifyIfNeeded(); 32} 33 34void InvalidationRegion::SimplifyIfNeeded() { 35 if (region_.GetRegionComplexity() > kMaxInvalidationRectCount) 36 region_ = region_.bounds(); 37} 38 39} // namespace cc 40