2011-01-12 Anders Carlsson <andersca@apple.com>
authorandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jan 2011 02:34:55 +0000 (02:34 +0000)
committerandersca@apple.com <andersca@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Jan 2011 02:34:55 +0000 (02:34 +0000)
        Reviewed by Dan Bernstein.

        Region improvements
        https://bugs.webkit.org/show_bug.cgi?id=52344

        * Platform/Region.cpp:
        (WebKit::Region::Shape::move):
        (WebKit::Region::move):
        Change Region::move to take an IntSize.

        * Platform/Region.h:
        (WebKit::intersect):
        (WebKit::subtract):
        (WebKit::move):
        Add convenience functions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@75669 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKit2/ChangeLog
WebKit2/Platform/Region.cpp
WebKit2/Platform/Region.h

index 2d6588c..a6667ad 100644 (file)
@@ -1,3 +1,21 @@
+2011-01-12  Anders Carlsson  <andersca@apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        Region improvements
+        https://bugs.webkit.org/show_bug.cgi?id=52344
+
+        * Platform/Region.cpp:
+        (WebKit::Region::Shape::move):
+        (WebKit::Region::move):
+        Change Region::move to take an IntSize.
+
+        * Platform/Region.h:
+        (WebKit::intersect):
+        (WebKit::subtract):
+        (WebKit::move):
+        Add convenience functions.
+
 2011-01-12  Ryosuke Niwa  <rniwa@webkit.org>
 
         Unreviewed Qt build fix for r75661
index dfe4e09..a1cc24c 100644 (file)
@@ -211,12 +211,12 @@ IntRect Region::Shape::bounds() const
     return IntRect(minX, minY, maxX - minX, maxY - minY);
 }
 
-void Region::Shape::move(int x, int y)
+void Region::Shape::translate(const IntSize& offset)
 {
     for (size_t i = 0; i < m_segments.size(); ++i)
-        m_segments[i] += x;
+        m_segments[i] += offset.width();
     for (size_t i = 0; i < m_spans.size(); ++i)
-        m_spans[i].y += y;
+        m_spans[i].y += offset.height();
 }
 
 void Region::Shape::swap(Shape& other)
@@ -444,10 +444,10 @@ void Region::subtract(const Region& region)
     m_bounds = m_shape.bounds();
 }
 
-void Region::move(int x, int y)
+void Region::translate(const IntSize& offset)
 {
-    m_bounds.move(x, y);
-    m_shape.move(x, y);
+    m_bounds.move(offset);
+    m_shape.translate(offset);
 }
 
 } // namespace WebKit
index 6179215..b44519f 100644 (file)
@@ -47,7 +47,7 @@ public:
     void intersect(const Region&);
     void subtract(const Region&);
 
-    void move(int x, int y);
+    void translate(const WebCore::IntSize&);
 
 #ifndef NDEBUG
     void dump() const;
@@ -84,7 +84,7 @@ private:
         static Shape intersectShapes(const Shape& shape1, const Shape& shape2);
         static Shape subtractShapes(const Shape& shape1, const Shape& shape2);
 
-        void move(int x, int y);
+        void translate(const WebCore::IntSize&);
         void swap(Shape&);
 
 #ifndef NDEBUG
@@ -115,6 +115,30 @@ private:
     Shape m_shape;
 };
 
+static inline Region intersect(const Region& a, const Region& b)
+{
+    Region result(a);
+    result.intersect(b);
+
+    return result;
+}
+    
+static inline Region subtract(const Region& a, const Region& b)
+{
+    Region result(a);
+    result.subtract(b);
+
+    return result;
+}
+
+static inline Region translate(const Region& region, const WebCore::IntSize& offset)
+{
+    Region result(region);
+    result.translate(offset);
+
+    return result;
+}
+
 } // namespace WebKit
 
 #endif // Region_h