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
This commit is contained in:
Michael R Sweet 2006-11-15 01:52:20 +00:00
parent 489e8cdd05
commit 0789a8a18e
2 changed files with 12 additions and 2 deletions

View File

@ -1,5 +1,7 @@
CHANGES IN FLTK 1.1.8
- fl_read_image() was broken on Intel-based Macs (STR
#1490)
- Fl_Progress was using the wrong width to calculate
progress (STR #1492)
- Documentation fixes (STR #1454, STR #1455, STR #1456,

View File

@ -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,11 +108,19 @@ 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);