mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-19 00:15:30 +00:00
IMAGE: Properly load bottom origin RLE encoded TGA images
This commit is contained in:
parent
00fd499b57
commit
bc039f6b10
@ -27,6 +27,7 @@
|
||||
#include "image/tga.h"
|
||||
|
||||
#include "common/util.h"
|
||||
#include "common/algorithm.h"
|
||||
#include "common/stream.h"
|
||||
#include "common/textconsole.h"
|
||||
#include "common/error.h"
|
||||
@ -437,6 +438,22 @@ bool TGADecoder::readDataRLE(Common::SeekableReadStream &tga, byte imageType, by
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
// If it's a bottom origin image, we need to vertically flip the image
|
||||
if (!_originTop) {
|
||||
byte *tempLine = new byte[_surface.pitch];
|
||||
byte *line1 = (byte *)_surface.getBasePtr(0, 0);
|
||||
byte *line2 = (byte *)_surface.getBasePtr(0, _surface.h - 1);
|
||||
|
||||
for (int y = 0; y < (_surface.h / 2); ++y, line1 += _surface.pitch, line2 -= _surface.pitch) {
|
||||
Common::copy(line1, line1 + _surface.pitch, tempLine);
|
||||
Common::copy(line2, line2 + _surface.pitch, line1);
|
||||
Common::copy(tempLine, tempLine + _surface.pitch, line2);
|
||||
}
|
||||
|
||||
delete[] tempLine;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user