aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base
diff options
context:
space:
mode:
authorEinar Johan Trøan Sømåen2013-01-24 17:14:51 +0100
committerEinar Johan Trøan Sømåen2013-01-24 17:14:51 +0100
commit426dda70e1d83d32d5c70ff761f1301bbc4c51ed (patch)
treebaa649cbbb9e06fdda500827137ddc210ae37143 /engines/wintermute/base
parenta1a63546879927c6316165f86dfe61dfb13cb376 (diff)
downloadscummvm-rg350-426dda70e1d83d32d5c70ff761f1301bbc4c51ed.tar.gz
scummvm-rg350-426dda70e1d83d32d5c70ff761f1301bbc4c51ed.tar.bz2
scummvm-rg350-426dda70e1d83d32d5c70ff761f1301bbc4c51ed.zip
WINTERMUTE: Don't scale 2Bpp images with code aimed at 4Bpp
Diffstat (limited to 'engines/wintermute/base')
-rw-r--r--engines/wintermute/base/base_persistence_manager.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/wintermute/base/base_persistence_manager.cpp b/engines/wintermute/base/base_persistence_manager.cpp
index 1e2c06e5ef..accb0a8fd3 100644
--- a/engines/wintermute/base/base_persistence_manager.cpp
+++ b/engines/wintermute/base/base_persistence_manager.cpp
@@ -166,16 +166,17 @@ void BasePersistenceManager::getSaveStateDesc(int slot, SaveStateDescriptor &des
}
if (thumbSize > 0) {
- Common::MemoryReadStream thumbStream(thumbData, thumbSize);
+ Common::MemoryReadStream thumbStream(thumbData, thumbSize, DisposeAfterUse::NO);
Graphics::BitmapDecoder bmpDecoder;
if (bmpDecoder.loadStream(thumbStream)) {
- Graphics::Surface *surf = NULL;
- surf = bmpDecoder.getSurface()->convertTo(g_system->getOverlayFormat());
- TransparentSurface *scaleableSurface = new TransparentSurface(*surf, false);
+ const Graphics::Surface *bmpSurface = bmpDecoder.getSurface();
+ TransparentSurface *scaleableSurface = new TransparentSurface(*bmpSurface, false);
Graphics::Surface *scaled = scaleableSurface->scale(kThumbnailWidth, kThumbnailHeight2);
- desc.setThumbnail(scaled);
+ Graphics::Surface *thumb = scaled->convertTo(g_system->getOverlayFormat());
+ desc.setThumbnail(thumb);
delete scaleableSurface;
- delete surf;
+ scaled->free();
+ delete scaled;
}
}