aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/support
diff options
context:
space:
mode:
authorPaul Gilbert2016-11-14 21:55:23 -0500
committerPaul Gilbert2016-11-14 21:55:23 -0500
commitf57287702e4cacc17b655bababf9167783e9e159 (patch)
tree902b4ccffbfd77c82b623536531bfd5d8f9e0c43 /engines/titanic/support
parentccbe07bd815472f7d1ff76400d83206bb6c31261 (diff)
downloadscummvm-rg350-f57287702e4cacc17b655bababf9167783e9e159.tar.gz
scummvm-rg350-f57287702e4cacc17b655bababf9167783e9e159.tar.bz2
scummvm-rg350-f57287702e4cacc17b655bababf9167783e9e159.zip
TITANIC: Fix freeing of video surfaces
Diffstat (limited to 'engines/titanic/support')
-rw-r--r--engines/titanic/support/video_surface.cpp7
-rw-r--r--engines/titanic/support/video_surface.h1
2 files changed, 6 insertions, 2 deletions
diff --git a/engines/titanic/support/video_surface.cpp b/engines/titanic/support/video_surface.cpp
index fd570e5d9a..7455e8cfef 100644
--- a/engines/titanic/support/video_surface.cpp
+++ b/engines/titanic/support/video_surface.cpp
@@ -41,8 +41,6 @@ CVideoSurface::CVideoSurface(CScreenManager *screenManager) :
}
CVideoSurface::~CVideoSurface() {
- if (_ddSurface)
- _videoSurfaceCounter -= freeSurface();
--_videoSurfaceCounter;
if (_freeTransparencySurface == DisposeAfterUse::YES)
@@ -334,6 +332,11 @@ OSVideoSurface::OSVideoSurface(CScreenManager *screenManager, const CResourceKey
}
}
+OSVideoSurface::~OSVideoSurface() {
+ if (_ddSurface)
+ _videoSurfaceCounter -= OSVideoSurface::freeSurface();
+}
+
void OSVideoSurface::loadResource(const CResourceKey &key) {
_resourceKey = key;
_pendingLoad = true;
diff --git a/engines/titanic/support/video_surface.h b/engines/titanic/support/video_surface.h
index 690669b79b..390e70bc33 100644
--- a/engines/titanic/support/video_surface.h
+++ b/engines/titanic/support/video_surface.h
@@ -356,6 +356,7 @@ class OSVideoSurface : public CVideoSurface {
public:
OSVideoSurface(CScreenManager *screenManager, DirectDrawSurface *surface);
OSVideoSurface(CScreenManager *screenManager, const CResourceKey &key, bool flag = false);
+ ~OSVideoSurface();
/**
* Load the surface with the passed resource