diff options
author | Sven Hesse | 2007-08-19 17:26:06 +0000 |
---|---|---|
committer | Sven Hesse | 2007-08-19 17:26:06 +0000 |
commit | 2d15e4af78cf70fbc5063824b25b84af587b7d9b (patch) | |
tree | 65acbebc16aaf3dc7b082c47a0fb552102afe8a5 /engines/gob/driver_vga.cpp | |
parent | 5103e92410e92aff9eebd6d7fc7ed3203ebba1e7 (diff) | |
download | scummvm-rg350-2d15e4af78cf70fbc5063824b25b84af587b7d9b.tar.gz scummvm-rg350-2d15e4af78cf70fbc5063824b25b84af587b7d9b.tar.bz2 scummvm-rg350-2d15e4af78cf70fbc5063824b25b84af587b7d9b.zip |
Checking in patch #1777241 by Uwe Ryssel (GOB: Some optimizations for slow computers)
svn-id: r28664
Diffstat (limited to 'engines/gob/driver_vga.cpp')
-rw-r--r-- | engines/gob/driver_vga.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/engines/gob/driver_vga.cpp b/engines/gob/driver_vga.cpp index 13e6aca4a8..8b7f5105a8 100644 --- a/engines/gob/driver_vga.cpp +++ b/engines/gob/driver_vga.cpp @@ -113,18 +113,26 @@ void VGAVideoDriver::drawSprite(SurfaceDesc *source, SurfaceDesc *dest, byte *srcPos = source->getVidMem() + (top * source->getWidth()) + left; byte *destPos = dest->getVidMem() + (y * dest->getWidth()) + x; - while (height--) { - if (transp) { + if (transp) + { + while (height--) { for (int16 i = 0; i < width; ++i) { if (srcPos[i]) destPos[i] = srcPos[i]; - } - } else - for (int16 i = 0; i < width; ++i) - destPos[i] = srcPos[i]; + } - srcPos += source->getWidth(); - destPos += dest->getWidth(); + srcPos += source->getWidth(); + destPos += dest->getWidth(); + } + } + else + { + while (height--) { + memcpy(destPos, srcPos, width); + + srcPos += source->getWidth(); + destPos += dest->getWidth(); + } } } |