OLD | NEW |
| (Empty) |
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(const 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 | |
OLD | NEW |