aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-06-22 14:59:21 +0000
committerTorbjörn Andersson2003-06-22 14:59:21 +0000
commit160c4f910404dcfaad86b5ad238391c75a2d5182 (patch)
tree43b990fab909af2330cd47ac6dabb742a71ca81a /common
parent7e86b215bbf0fd5e016bbc2fc340039690e682cd (diff)
downloadscummvm-rg350-160c4f910404dcfaad86b5ad238391c75a2d5182.tar.gz
scummvm-rg350-160c4f910404dcfaad86b5ad238391c75a2d5182.tar.bz2
scummvm-rg350-160c4f910404dcfaad86b5ad238391c75a2d5182.zip
Fixed the last (?) glitches around the mouse cursor [*] in aspect-ratio
correction mode by making sure that dirty rects always start on a line that won't have its colours changed by the stretching function. This was probably only noticeable when using the 1x scaler. [*] Actually, the glitches weren't specific to the mouse cursor, but it was useful for triggering them. svn-id: r8621
Diffstat (limited to 'common')
-rw-r--r--common/scaler.cpp12
-rw-r--r--common/scaler.h2
2 files changed, 14 insertions, 0 deletions
diff --git a/common/scaler.cpp b/common/scaler.cpp
index 65c4380266..a0a49ad5eb 100644
--- a/common/scaler.cpp
+++ b/common/scaler.cpp
@@ -683,6 +683,18 @@ static inline void interpolate5Line(uint16 *dst, const uint16 *srcA, const uint1
#endif
}
+void makeRectStretchable(int &x, int &y, int &w, int &h) {
+ int m = real2Aspect(y) % 6;
+
+ // Ensure that the rect will start on a line that won't have its
+ // colours changed by the stretching function.
+
+ if (m != 0 && m != 5) {
+ y -= m;
+ h += m;
+ }
+}
+
/**
* Stretch a 16bpp image vertically by factor 1.2. Used to correct the
* aspect-ratio in games using 320x200 pixel graphics with non-qudratic
diff --git a/common/scaler.h b/common/scaler.h
index b8000ddccd..2c1b73b9d0 100644
--- a/common/scaler.h
+++ b/common/scaler.h
@@ -49,6 +49,8 @@ FORCEINLINE int aspect2Real(int y) {
return (y * 5 + 3) / 6;
}
+extern void makeRectStretchable(int &x, int &y, int &w, int &h);
+
extern int stretch200To240(uint8 *buf, uint32 pitch, int width, int height, int srcX, int srcY, int origSrcY);
enum {