aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2009-06-03 14:49:58 +0200
committerFelix Domke <tmbinc@elitedvb.net>2009-06-03 14:57:54 +0200
commitee359c263a2c534db6a94601f1d7906cdd9f04c7 (patch)
treeb9a233884075b742060fc86146a6185de0dfd643
parent6bffe6f0ce6b00d792787c91cd609b72748287ae (diff)
downloadenigma2-ee359c263a2c534db6a94601f1d7906cdd9f04c7.tar.gz
enigma2-ee359c263a2c534db6a94601f1d7906cdd9f04c7.zip
allow scale rects, regions
-rw-r--r--lib/gdi/erect.h8
-rw-r--r--lib/gdi/region.cpp7
-rw-r--r--lib/gdi/region.h2
3 files changed, 17 insertions, 0 deletions
diff --git a/lib/gdi/erect.h b/lib/gdi/erect.h
index d95b8c0f..83981403 100644
--- a/lib/gdi/erect.h
+++ b/lib/gdi/erect.h
@@ -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;
diff --git a/lib/gdi/region.cpp b/lib/gdi/region.cpp
index bbad3aa0..1208c97e 100644
--- a/lib/gdi/region.cpp
+++ b/lib/gdi/region.cpp
@@ -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);
+}
+
diff --git a/lib/gdi/region.h b/lib/gdi/region.h
index d7217dae..2052a5cb 100644
--- a/lib/gdi/region.h
+++ b/lib/gdi/region.h
@@ -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