From 0789a8a18e999cd56d278fa5f1fcf5f9e9ca7c36 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Wed, 15 Nov 2006 01:52:20 +0000 Subject: Fix endian problem with fl_read_image() and QuickDraw on Intel-based Macs. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5544 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/fl_read_image_mac.cxx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/fl_read_image_mac.cxx b/src/fl_read_image_mac.cxx index e5e75ee4a..3cdbd48c4 100644 --- a/src/fl_read_image_mac.cxx +++ b/src/fl_read_image_mac.cxx @@ -3,7 +3,7 @@ // // WIN32 image reading routines for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2005 by Bill Spitzak and others. +// Copyright 1998-2006 by Bill Spitzak and others. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Library General Public @@ -108,12 +108,20 @@ fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate // Copy the image from the off-screen buffer to the memory buffer. for (idy = 0, pdst = p; idy < h; idy ++) +#ifdef __i386__ + for (idx = 0, psrc = base + idy * rowBytes; idx < w; idx ++, psrc += 4, pdst += d) { + pdst[0] = psrc[2]; + pdst[1] = psrc[1]; + pdst[2] = psrc[0]; + } +#else for (idx = 0, psrc = base + idy * rowBytes + 1; idx < w; idx ++, psrc += 4, pdst += d) { pdst[0] = psrc[0]; pdst[1] = psrc[1]; pdst[2] = psrc[2]; } - +#endif // __i386__ + // Unlock and delete the off-screen buffer, then return... UnlockPixels(pm); fl_delete_offscreen(osbuffer); -- cgit v1.2.3