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 9 namespace { 10 11 const int kMaxInvalidationRectCount = 256; 12 13 } // namespace 14 15 namespace cc { 16 InvalidationRegion()17InvalidationRegion::InvalidationRegion() {} 18 ~InvalidationRegion()19InvalidationRegion::~InvalidationRegion() {} 20 Swap(Region * region)21void InvalidationRegion::Swap(Region* region) { 22 region_.Swap(region); 23 } 24 Clear()25void InvalidationRegion::Clear() { 26 region_.Clear(); 27 } 28 Union(gfx::Rect rect)29void InvalidationRegion::Union(gfx::Rect rect) { 30 region_.Union(rect); 31 SimplifyIfNeeded(); 32 } 33 SimplifyIfNeeded()34void InvalidationRegion::SimplifyIfNeeded() { 35 if (region_.GetRegionComplexity() > kMaxInvalidationRectCount) 36 region_ = region_.bounds(); 37 } 38 39 } // namespace cc 40