aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute/base/gfx/base_image.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/wintermute/base/gfx/base_image.cpp')
-rw-r--r--engines/wintermute/base/gfx/base_image.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/engines/wintermute/base/gfx/base_image.cpp b/engines/wintermute/base/gfx/base_image.cpp
index 3aa21d0f7f..1fff59d85b 100644
--- a/engines/wintermute/base/gfx/base_image.cpp
+++ b/engines/wintermute/base/gfx/base_image.cpp
@@ -114,23 +114,16 @@ bool BaseImage::saveBMPFile(const char *filename) const {
//////////////////////////////////////////////////////////////////////////
bool BaseImage::resize(int newWidth, int newHeight) {
- warning("BaseImage::resize(%d, %d), stubbed", newWidth, newHeight);
-#if 0
- if (!_bitmap) {
- return STATUS_FAILED;
- }
-
- if (newWidth == 0) {
- NewWidth = FreeImage_GetWidth(_bitmap);
- }
- if (newHeight == 0) {
- NewHeight = FreeImage_GetHeight(_bitmap);
+ // WME Lite used FILTER_BILINEAR with FreeImage_Rescale here.
+ TransparentSurface temp(*_surface, true);
+ if (_deletableSurface) {
+ _deletableSurface->free();
+ delete _deletableSurface;
+ _deletableSurface = NULL;
}
-
-
- FIBITMAP *newImg = FreeImage_Rescale(_bitmap, NewWidth, NewHeight, FILTER_BILINEAR);
-#endif
- return false;
+ _surface = _deletableSurface = temp.scaleSafe((uint16)newWidth, (uint16)newHeight);
+ temp.free();
+ return true;
}