diff options
author | Paul Gilbert | 2012-01-02 10:17:44 +1100 |
---|---|---|
committer | Paul Gilbert | 2012-01-02 10:17:44 +1100 |
commit | 300a04700a94a3899f76300cfe7eda3a5756caef (patch) | |
tree | 7a90c6f065e9c4d963abd137f5f3e8cb2c1315a7 | |
parent | 3f17a3ff252e802858912818f166539604d8fb86 (diff) | |
download | scummvm-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.cpp | 19 | ||||
-rw-r--r-- | engines/tsage/graphics.h | 12 |
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; |