[Scummvm-git-logs] scummvm master -> bc039f6b10dc8203f007c943815473d20b5c672b

dreammaster dreammaster at scummvm.org
Sun Jan 1 08:36:12 CET 2017


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
bc039f6b10 IMAGE: Properly load bottom origin RLE encoded TGA images


Commit: bc039f6b10dc8203f007c943815473d20b5c672b
    https://github.com/scummvm/scummvm/commit/bc039f6b10dc8203f007c943815473d20b5c672b
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2017-01-01T02:36:01-05:00

Commit Message:
IMAGE: Properly load bottom origin RLE encoded TGA images

Changed paths:
    image/tga.cpp


diff --git a/image/tga.cpp b/image/tga.cpp
index adfe7ee..b23c597 100644
--- a/image/tga.cpp
+++ b/image/tga.cpp
@@ -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;
 }
 





More information about the Scummvm-git-logs mailing list