From 03665fac214574ec58458676789347855c34c29a Mon Sep 17 00:00:00 2001 From: uruk Date: Wed, 24 Jul 2013 19:47:41 +0200 Subject: AVALANCHE: Graphics: double screen height. --- engines/avalanche/graphics.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/engines/avalanche/graphics.cpp b/engines/avalanche/graphics.cpp index 8035491bfb..287f85c092 100644 --- a/engines/avalanche/graphics.cpp +++ b/engines/avalanche/graphics.cpp @@ -48,7 +48,7 @@ Graphics::Graphics(AvalancheEngine *vm) { } void Graphics::init() { - initGraphics(kScreenWidth, kScreenHeight, true); + initGraphics(kScreenWidth, kScreenHeight * 2, true); // Doubling the height. for (int i = 0; i < 64; ++i) { _egaPalette[i][0] = (i >> 2 & 1) * 0xaa + (i >> 5 & 1) * 0x55; @@ -141,8 +141,18 @@ void Graphics::drawPicture(const byte *source, uint16 destX, uint16 destY) { } void Graphics::refreshScreen() { - g_system->copyRectToScreen(_surface.pixels, _surface.pitch , 0, 0, kScreenWidth, kScreenHeight); + // These cycles are for doubling the screen height. + ::Graphics::Surface source; + source.create(kScreenWidth, kScreenHeight * 2, ::Graphics::PixelFormat::createFormatCLUT8()); + for (uint16 y = 0; y < source.h / 2; y++) + for (uint16 x = 0; x < source.w; x++) + for (byte j = 0; j < 2; j++) + *(byte *)source.getBasePtr(x, y * 2 + j) = *(byte *)_surface.getBasePtr(x, y); + + // Now we copy the stretched picture to the screen. + g_system->copyRectToScreen(source.pixels, source.pitch , 0, 0, kScreenWidth, kScreenHeight * 2); g_system->updateScreen(); } + } // End of namespace Avalanche -- cgit v1.2.3