Index: cc/base/region.cc |
diff --git a/cc/base/region.cc b/cc/base/region.cc |
index 79c30ec8251a0b0b881aed2ba304bbcc63eb64ba..2484cc21ecbe8da92993fa1a31067b03161ab1c7 100644 |
--- a/cc/base/region.cc |
+++ b/cc/base/region.cc |
@@ -3,8 +3,10 @@ |
// found in the LICENSE file. |
#include "cc/base/region.h" |
+ |
#include "base/debug/trace_event_argument.h" |
#include "base/values.h" |
+#include "cc/base/simple_enclosed_region.h" |
namespace cc { |
@@ -80,6 +82,13 @@ void Region::Subtract(const Region& region) { |
skregion_.op(region.skregion_, SkRegion::kDifference_Op); |
} |
+void Region::Subtract(const SimpleEnclosedRegion& region) { |
+ for (size_t i = 0; i < region.GetRegionComplexity(); ++i) { |
+ skregion_.op(gfx::RectToSkIRect(region.GetRect(i)), |
+ SkRegion::kDifference_Op); |
+ } |
+} |
+ |
void Region::Union(const gfx::Rect& rect) { |
skregion_.op(gfx::RectToSkIRect(rect), SkRegion::kUnion_Op); |
} |