changeset 14126:7bca289f89b7 draft

(svn r18673) -Fix (r17943): Deja vu: 3 byte structs are padded to a word on ARM.
author peter1138 <peter1138@openttd.org>
date Thu, 31 Dec 2009 07:39:05 +0000
parents 16544b3aa89c
children 39a257893f4c
files src/screenshot.cpp
diffstat 1 files changed, 4 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/screenshot.cpp
+++ b/src/screenshot.cpp
@@ -78,12 +78,6 @@
 };
 assert_compile(sizeof(RgbQuad) == 4);
 
-/** Pixel data in 24bpp BMP */
-struct RgbTriplet {
-	byte b, g, r;
-};
-assert_compile(sizeof(RgbTriplet) == 3);
-
 /**
  * Generic .BMP writer
  * @param name file name including extension
@@ -182,11 +176,11 @@
 				/* Convert from 'native' 32bpp to BMP-like 24bpp.
 				 * Works for both big and little endian machines */
 				Colour *src = ((Colour *)buff) + n * w;
-				RgbTriplet *dst = (RgbTriplet *)line;
+				byte *dst = line;
 				for (uint i = 0; i < w; i++) {
-					dst[i].r = src[i].r;
-					dst[i].g = src[i].g;
-					dst[i].b = src[i].b;
+					dst[i * 3    ] = src[i].b;
+					dst[i * 3 + 1] = src[i].g;
+					dst[i * 3 + 2] = src[i].r;
 				}
 			}
 			/* Write to file */