allow scale rects, regions
authorFelix Domke <tmbinc@elitedvb.net>
Wed, 3 Jun 2009 12:49:58 +0000 (14:49 +0200)
committerFelix Domke <tmbinc@elitedvb.net>
Wed, 3 Jun 2009 12:57:54 +0000 (14:57 +0200)
lib/gdi/erect.h
lib/gdi/region.cpp
lib/gdi/region.h

index d95b8c0f6caf184ffd3b4256eda7dac19cbf204b..839814035c28e09e2db3c583da3e71eae752338d 100644 (file)
@@ -119,6 +119,14 @@ public:
        static eRect emptyRect() { return eRect(0, 0, 0, 0); }
        static eRect invalidRect() { return eRect(); }
        
+       inline void scale(int x_n, int x_d, int y_n, int y_d) 
+       {
+               x1 *= x_n; x1 /= x_d; 
+               x2 *= x_n; x2 /= x_d; 
+               y1 *= y_n; y1 /= y_d; 
+               y2 *= y_n; y2 /= y_d; 
+       }
+       
 private:
        int x1;
        int y1;
index bbad3aa080ad570248f12633e62ad3535ace73b4..1208c97ec893d0dbc5be5311ff66f62c8f62b4dc 100644 (file)
@@ -426,3 +426,10 @@ void gRegion::moveBy(ePoint offset)
                rects[i].moveBy(offset);
 }
 
+void gRegion::scale(int x_n, int x_d, int y_n, int y_d)
+{
+       int i;
+       for (i=0; i<rects.size(); ++i)
+               rects[i].scale(x_n, x_d, y_n, y_d);
+}
+
index d7217dae32af005d2eb7a8d4f7ddd54331ea7d1b..2052a5cb16c55e33bfbd4709e2393eb9f867c036 100644 (file)
@@ -94,6 +94,8 @@ public:
        bool valid() const { return extends.valid(); }
        
        static gRegion invalidRegion() { return gRegion(eRect::invalidRect()); }
+       
+       void scale(int x_n, int x_d, int y_n, int y_d);
 };
 
 #endif