aboutsummaryrefslogtreecommitdiff
path: root/engines/bladerunner/bladerunner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/bladerunner/bladerunner.cpp')
-rw-r--r--engines/bladerunner/bladerunner.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/engines/bladerunner/bladerunner.cpp b/engines/bladerunner/bladerunner.cpp
index e3e54299fb..9621612ac6 100644
--- a/engines/bladerunner/bladerunner.cpp
+++ b/engines/bladerunner/bladerunner.cpp
@@ -2163,14 +2163,18 @@ void BladeRunnerEngine::blitToScreen(const Graphics::Surface &src) const {
Graphics::Surface BladeRunnerEngine::generateThumbnail() const {
Graphics::Surface thumbnail;
- thumbnail.create(640 / 8, 480 / 8, _surfaceFront.format);
+ thumbnail.create(640 / 8, 480 / 8, gameDataPixelFormat());
for (int y = 0; y < thumbnail.h; ++y) {
for (int x = 0; x < thumbnail.w; ++x) {
- uint16 *dstPixel = (uint16 *)thumbnail.getBasePtr(x, y);
- const uint16 *srcPixel = (const uint16 *)_surfaceFront.getBasePtr(x * 8, y * 8);
+ uint8 r, g, b;
- *dstPixel = *srcPixel;
+ uint16 srcPixel = *(uint16 *)_surfaceFront.getBasePtr(x * 8, y * 8);
+ uint16 *dstPixel = (uint16 *)thumbnail.getBasePtr(x, y);
+
+ // Throw away alpha channel as it is not needed
+ _surfaceFront.format.colorToRGB(srcPixel, r, g, b);
+ *dstPixel = thumbnail.format.RGBToColor(r, g, b);
}
}