diff options
-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; |