summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2009-06-29 18:46:37 -0700
committer Mathias Agopian <mathias@google.com> 2009-06-29 18:46:37 -0700
commit276826bae2eb6d25c4abb1c5f665d2876c65e50c (patch)
treed4784e3c21f41a2017d1a2c39d7873eca493cdf2
parent5fc1b60e7f8b19d7d7a2244c0e1e005c7ed91659 (diff)
Region::makeBoundsSelf() efficiently turns a region to its bounds
-rw-r--r--include/ui/Region.h3
-rw-r--r--libs/ui/Region.cpp6
2 files changed, 9 insertions, 0 deletions
diff --git a/include/ui/Region.h b/include/ui/Region.h
index df455a96b16d..2bcad5b9ea48 100644
--- a/include/ui/Region.h
+++ b/include/ui/Region.h
@@ -51,6 +51,9 @@ public:
inline Rect getBounds() const { return mBounds; }
inline Rect bounds() const { return getBounds(); }
+ // the region becomes its bounds
+ Region& makeBoundsSelf();
+
void clear();
void set(const Rect& r);
void set(uint32_t w, uint32_t h);
diff --git a/libs/ui/Region.cpp b/libs/ui/Region.cpp
index 2e6b241a310d..b400a92d0632 100644
--- a/libs/ui/Region.cpp
+++ b/libs/ui/Region.cpp
@@ -87,6 +87,12 @@ Region& Region::operator = (const Region& rhs)
return *this;
}
+Region& Region::makeBoundsSelf()
+{
+ mStorage.clear();
+ return *this;
+}
+
void Region::clear()
{
mBounds.clear();