diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2009-06-03 14:49:58 +0200 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2009-06-03 14:57:54 +0200 |
| commit | ee359c263a2c534db6a94601f1d7906cdd9f04c7 (patch) | |
| tree | b9a233884075b742060fc86146a6185de0dfd643 | |
| parent | 6bffe6f0ce6b00d792787c91cd609b72748287ae (diff) | |
| download | enigma2-ee359c263a2c534db6a94601f1d7906cdd9f04c7.tar.gz enigma2-ee359c263a2c534db6a94601f1d7906cdd9f04c7.zip | |
allow scale rects, regions
| -rw-r--r-- | lib/gdi/erect.h | 8 | ||||
| -rw-r--r-- | lib/gdi/region.cpp | 7 | ||||
| -rw-r--r-- | lib/gdi/region.h | 2 |
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 |
