aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2012-01-02 10:17:44 +1100
committerPaul Gilbert2012-01-02 10:17:44 +1100
commit300a04700a94a3899f76300cfe7eda3a5756caef (patch)
tree7a90c6f065e9c4d963abd137f5f3e8cb2c1315a7
parent3f17a3ff252e802858912818f166539604d8fb86 (diff)
downloadscummvm-rg350-300a04700a94a3899f76300cfe7eda3a5756caef.tar.gz
scummvm-rg350-300a04700a94a3899f76300cfe7eda3a5756caef.tar.bz2
scummvm-rg350-300a04700a94a3899f76300cfe7eda3a5756caef.zip
TSAGE: Implemented changes for dirty rect handling needed for R2R
-rw-r--r--engines/tsage/graphics.cpp19
-rw-r--r--engines/tsage/graphics.h12
2 files changed, 22 insertions, 9 deletions
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index 4b9a4ad5ad..8436afe2e8 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -1301,6 +1301,25 @@ int GfxManager::getAngle(const Common::Point &p1, const Common::Point &p2) {
return result;
}
}
+
+
+void GfxManager::copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion) {
+ if (&_surface == &(GLOBALS._screenSurface))
+ _surface.setBounds(Rect(0, 0, _bounds.width(), _bounds.height()));
+ else
+ _surface.setBounds(_bounds);
+
+ _surface.copyFrom(src, destBounds, priorityRegion);
+}
+void GfxManager::copyFrom(GfxSurface &src, int destX, int destY) {
+ if (&_surface == &(GLOBALS._screenSurface))
+ _surface.setBounds(Rect(0, 0, _bounds.width(), _bounds.height()));
+ else
+ _surface.setBounds(_bounds);
+
+ _surface.copyFrom(src, destX, destY);
+}
+
/*--------------------------------------------------------------------------*/
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index ba4090317b..9c6f13e407 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -83,7 +83,6 @@ private:
Common::List<Rect> _dirtyRects;
void mergeDirtyRects();
- bool looseIntersectRectangle(const Rect &src1, const Rect &src2);
bool unionRectangle(Common::Rect &destRect, const Rect &src1, const Rect &src2);
public:
@@ -302,14 +301,9 @@ public:
virtual void set(byte *dest, int size, byte val) {
Common::fill(dest, dest + size, val);
}
- void copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion = NULL) {
- _surface.setBounds(_bounds);
- _surface.copyFrom(src, destBounds, priorityRegion);
- }
- void copyFrom(GfxSurface &src, int destX, int destY) {
- _surface.setBounds(_bounds);
- _surface.copyFrom(src, destX, destY);
- }
+ void copyFrom(GfxSurface &src, Rect destBounds, Region *priorityRegion = NULL);
+ void copyFrom(GfxSurface &src, int destX, int destY);
+
GfxSurface &getSurface() {
_surface.setBounds(_bounds);
return _surface;