aboutsummaryrefslogtreecommitdiff
path: root/graphics/scaler
diff options
context:
space:
mode:
authorBastien Bouclet2016-03-27 14:47:23 +0200
committerBastien Bouclet2016-03-27 14:52:34 +0200
commite9bfbbd470d2550f42b3f01100cb31bfc618f8d1 (patch)
treea32194ce34b87b7ded0883ca87bca94c208e3dfe /graphics/scaler
parentd3e372db19bae53424dd8ab47c0e7c37d081c920 (diff)
downloadscummvm-rg350-e9bfbbd470d2550f42b3f01100cb31bfc618f8d1.tar.gz
scummvm-rg350-e9bfbbd470d2550f42b3f01100cb31bfc618f8d1.tar.bz2
scummvm-rg350-e9bfbbd470d2550f42b3f01100cb31bfc618f8d1.zip
GRAPHICS: Allow saving thumbnails of 32 bits screens
Fixes saving in Myst ME when using the OpenGL output
Diffstat (limited to 'graphics/scaler')
-rw-r--r--graphics/scaler/thumbnail_intern.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/graphics/scaler/thumbnail_intern.cpp b/graphics/scaler/thumbnail_intern.cpp
index 65e327f9c2..78fb7828d7 100644
--- a/graphics/scaler/thumbnail_intern.cpp
+++ b/graphics/scaler/thumbnail_intern.cpp
@@ -171,7 +171,8 @@ static bool grabScreen565(Graphics::Surface *surf) {
if (!screen)
return false;
- assert(screen->format.bytesPerPixel == 1 || screen->format.bytesPerPixel == 2);
+ assert(screen->format.bytesPerPixel == 1 || screen->format.bytesPerPixel == 2
+ || screen->format.bytesPerPixel == 4);
assert(screen->getPixels() != 0);
Graphics::PixelFormat screenFormat = g_system->getScreenFormat();
@@ -197,6 +198,9 @@ static bool grabScreen565(Graphics::Surface *surf) {
} else if (screenFormat.bytesPerPixel == 2) {
uint16 col = READ_UINT16(screen->getBasePtr(x, y));
screenFormat.colorToRGB(col, r, g, b);
+ } else if (screenFormat.bytesPerPixel == 4) {
+ uint32 col = READ_UINT32(screen->getBasePtr(x, y));
+ screenFormat.colorToRGB(col, r, g, b);
}
*((uint16 *)surf->getBasePtr(x, y)) = Graphics::RGBToColor<Graphics::ColorMasks<565> >(r, g, b);