mirror of
https://github.com/fltk/fltk.git
synced 2026-05-27 10:57:58 +08:00
Fl_Gl_Device_Plugin.cxx: fixed compilation error under some 10.4
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7613 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
@@ -90,19 +90,23 @@ static void print_gl_window(Fl_Gl_Window *glw, int x, int y, int height)
|
|||||||
glPopClientAttrib();
|
glPopClientAttrib();
|
||||||
fl_gc = save_gc;
|
fl_gc = save_gc;
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
|
// kCGBitmapByteOrder32Host and CGBitmapInfo are supposed to arrive with 10.4
|
||||||
|
// but some 10.4 don't have kCGBitmapByteOrder32Host, so we play a little #define game
|
||||||
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
|
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4
|
||||||
#define kCGBitmapByteOrder32Big 0
|
#define kCGBitmapByteOrder32Host 0
|
||||||
#define CGBitmapInfo CGImageAlphaInfo
|
#define CGBitmapInfo CGImageAlphaInfo
|
||||||
|
#elif ! defined(kCGBitmapByteOrder32Host)
|
||||||
|
#ifdef __BIG_ENDIAN__
|
||||||
|
#define kCGBitmapByteOrder32Host (4 << 12)
|
||||||
|
#else /* Little endian. */
|
||||||
|
#define kCGBitmapByteOrder32Host (2 << 12)
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
CGColorSpaceRef cSpace = CGColorSpaceCreateDeviceRGB();
|
CGColorSpaceRef cSpace = CGColorSpaceCreateDeviceRGB();
|
||||||
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, baseAddress, mByteWidth * glw->h(), imgProviderReleaseData);
|
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, baseAddress, mByteWidth * glw->h(), imgProviderReleaseData);
|
||||||
CGImageRef image = CGImageCreate(glw->w(), glw->h(), 8, 8*bytesperpixel, mByteWidth, cSpace,
|
CGImageRef image = CGImageCreate(glw->w(), glw->h(), 8, 8*bytesperpixel, mByteWidth, cSpace,
|
||||||
#if __BIG_ENDIAN__
|
(CGBitmapInfo)(kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host),
|
||||||
(CGBitmapInfo)(kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Big) /* XRGB Big Endian */
|
provider, NULL, false, kCGRenderingIntentDefault);
|
||||||
#else
|
|
||||||
kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Little /* XRGB Little Endian */
|
|
||||||
#endif
|
|
||||||
, provider, NULL, false, kCGRenderingIntentDefault);
|
|
||||||
if(image == NULL) return;
|
if(image == NULL) return;
|
||||||
CGContextSaveGState(fl_gc);
|
CGContextSaveGState(fl_gc);
|
||||||
CGContextTranslateCTM(fl_gc, 0, height);
|
CGContextTranslateCTM(fl_gc, 0, height);
|
||||||
|
|||||||
Reference in New Issue
Block a user