- add sources.
[platform/framework/web/crosswalk.git] / src / cc / base / invalidation_region.cc
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
17 InvalidationRegion::InvalidationRegion() {}
18
19 InvalidationRegion::~InvalidationRegion() {}
20
21 void InvalidationRegion::Swap(Region* region) {
22   region_.Swap(region);
23 }
24
25 void InvalidationRegion::Clear() {
26   region_.Clear();
27 }
28
29 void InvalidationRegion::Union(gfx::Rect rect) {
30   region_.Union(rect);
31   SimplifyIfNeeded();
32 }
33
34 void InvalidationRegion::SimplifyIfNeeded() {
35   if (region_.GetRegionComplexity() > kMaxInvalidationRectCount)
36     region_ = region_.bounds();
37 }
38
39 }  // namespace cc