[Scummvm-cvs-logs] SF.net SVN: scummvm: [24845] tools/trunk/encode_dxa.cpp

kirben at users.sourceforge.net kirben at users.sourceforge.net
Mon Dec 11 23:52:35 CET 2006


Revision: 24845
          http://scummvm.svn.sourceforge.net/scummvm/?rev=24845&view=rev
Author:   kirben
Date:     2006-12-11 14:52:34 -0800 (Mon, 11 Dec 2006)

Log Message:
-----------
Add cyx's patch for endian issues in DXA encoder

Modified Paths:
--------------
    tools/trunk/encode_dxa.cpp

Modified: tools/trunk/encode_dxa.cpp
===================================================================
--- tools/trunk/encode_dxa.cpp	2006-12-11 22:48:57 UTC (rev 24844)
+++ tools/trunk/encode_dxa.cpp	2006-12-11 22:52:34 UTC (rev 24845)
@@ -487,13 +487,17 @@
 					*codeB++ = 30 + count;
 					memcpy(dataB, pixels, count);
 					dataB += count;
-					memcpy(maskB, &code, codeSize);
+					if (codeSize == 2) {
+						WRITE_BE_UINT16(maskB, code);
+					} else {
+						WRITE_BE_UINT32(maskB, code);
+					}
 					maskB += codeSize;
 				} else {
 					if (diff.count <= 12) {
 						/* difference map */
 						*codeB++ = 1;
-						*(uint16*)maskB = diff.map;
+						WRITE_BE_UINT16(maskB, diff.map);
 						maskB += 2;
 						memcpy(dataB, diff.pixels, diff.count);
 						dataB += diff.count;
@@ -513,13 +517,13 @@
 	int size;
 
 	size = dataB - _dataBuf;
-	memcpy(outb, &size, 4);
+	WRITE_BE_UINT32(outb, size);
 	outb += 4;
 	size = motB - _motBuf;
-	memcpy(outb, &size, 4);
+	WRITE_BE_UINT32(outb, size);
 	outb += 4;
 	size = maskB - _maskBuf;
-	memcpy(outb, &size, 4);
+	WRITE_BE_UINT32(outb, size);
 	outb += 4;
 
 	/* this size is always constant throughout a DXA */
@@ -738,7 +742,7 @@
 	char strbuf[512];
 	int width, height, framerate, frames;
 	ScaleMode scaleMode;
-  
+
 	/* compression mode */
 	gCompMode = kMP3Mode;
 	int i = 1;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list