From 098bc2f905db057224411252f33c6c0bd16bc01d Mon Sep 17 00:00:00 2001 From: castano Date: Wed, 4 Mar 2009 09:36:40 +0000 Subject: [PATCH] Fix some endiannes errors. --- src/nvimage/DirectDrawSurface.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/nvimage/DirectDrawSurface.cpp b/src/nvimage/DirectDrawSurface.cpp index e74c4d5..d8a4d86 100644 --- a/src/nvimage/DirectDrawSurface.cpp +++ b/src/nvimage/DirectDrawSurface.cpp @@ -406,10 +406,14 @@ namespace nv s << pf.flags; s << pf.fourcc; s << pf.bitcount; - s << pf.rmask; - s << pf.gmask; - s << pf.bmask; - s << pf.amask; + s.serialize(&pf.rmask, sizeof(pf.rmask)); + s.serialize(&pf.gmask, sizeof(pf.gmask)); + s.serialize(&pf.bmask, sizeof(pf.bmask)); + s.serialize(&pf.amask, sizeof(pf.amask)); + // s << pf.rmask; + // s << pf.gmask; + // s << pf.bmask; + // s << pf.amask; return s; } @@ -445,7 +449,9 @@ namespace nv s << header.pitch; s << header.depth; s << header.mipmapcount; - s.serialize(header.reserved, 11 * sizeof(uint)); + for (int i = 0; i < 11; i++) { + s << header.reserved[i]; + } s << header.pf; s << header.caps; s << header.notused; @@ -1043,6 +1049,8 @@ void DirectDrawSurface::readLinearImage(Image * img) uint byteCount = (header.pf.bitcount + 7) / 8; +#pragma message("Support floating point linear images and other FOURCC codes.") + // Read linear RGB images. for (uint y = 0; y < h; y++) {