• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()17 InvalidationRegion::InvalidationRegion() {}
18 
~InvalidationRegion()19 InvalidationRegion::~InvalidationRegion() {}
20 
Swap(Region * region)21 void InvalidationRegion::Swap(Region* region) {
22   region_.Swap(region);
23 }
24 
Clear()25 void InvalidationRegion::Clear() {
26   region_.Clear();
27 }
28 
Union(gfx::Rect rect)29 void InvalidationRegion::Union(gfx::Rect rect) {
30   region_.Union(rect);
31   SimplifyIfNeeded();
32 }
33 
SimplifyIfNeeded()34 void InvalidationRegion::SimplifyIfNeeded() {
35   if (region_.GetRegionComplexity() > kMaxInvalidationRectCount)
36     region_ = region_.bounds();
37 }
38 
39 }  // namespace cc
40