summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qimage_darwin.mm
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-12-04 09:58:43 +0100
committerLiang Qi <liang.qi@qt.io>2018-12-04 09:58:43 +0100
commit5d5c00c67682bce105197b659687fd1fee8f60cf (patch)
tree686e41dc3ea121235fb73afb9157ed603f1bfeff /src/gui/image/qimage_darwin.mm
parentf213e818f03d35cb82e3daf187415197fd156f8e (diff)
parentb82559244e2dc03f1ceff66bb67630df4300dc7c (diff)
Merge remote-tracking branch 'origin/5.12' into dev
Conflicts: src/gui/painting/qdrawhelper.cpp Change-Id: I4916e07b635e1d3830e9b46ef7914f99bec3098e
Diffstat (limited to 'src/gui/image/qimage_darwin.mm')
-rw-r--r--src/gui/image/qimage_darwin.mm29
1 files changed, 4 insertions, 25 deletions
diff --git a/src/gui/image/qimage_darwin.mm b/src/gui/image/qimage_darwin.mm
index a5c391ad21..7ca1a0869a 100644
--- a/src/gui/image/qimage_darwin.mm
+++ b/src/gui/image/qimage_darwin.mm
@@ -40,6 +40,7 @@
#include "qimage.h"
#include <private/qcore_mac_p.h>
+#include <private/qcoregraphics_p.h>
#import <Foundation/Foundation.h>
#import <CoreGraphics/CoreGraphics.h>
@@ -98,32 +99,10 @@ CGImageRef QImage::toCGImage() const
if (isNull())
return nil;
- // Determine the target native format
- uint cgflags = kCGImageAlphaNone;
- switch (format()) {
- case QImage::Format_ARGB32:
- cgflags = kCGImageAlphaFirst | kCGBitmapByteOrder32Host;
- break;
- case QImage::Format_RGB32:
- cgflags = kCGImageAlphaNoneSkipFirst | kCGBitmapByteOrder32Host;
- break;
- case QImage::Format_RGBA8888_Premultiplied:
- cgflags = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big;
- break;
- case QImage::Format_RGBA8888:
- cgflags = kCGImageAlphaLast | kCGBitmapByteOrder32Big;
- break;
- case QImage::Format_RGBX8888:
- cgflags = kCGImageAlphaNoneSkipLast | kCGBitmapByteOrder32Big;
- break;
- case QImage::Format_ARGB32_Premultiplied:
- cgflags = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host;
- break;
- default: break;
- }
+ CGBitmapInfo bitmapInfo = qt_mac_bitmapInfoForImage(*this);
// Format not supported: return nil CGImageRef
- if (cgflags == kCGImageAlphaNone)
+ if (bitmapInfo == kCGImageAlphaNone)
return nil;
// Create a data provider that owns a copy of the QImage and references the image data.
@@ -140,7 +119,7 @@ CGImageRef QImage::toCGImage() const
const bool shouldInterpolate = false;
return CGImageCreate(width(), height(), bitsPerComponent, bitsPerPixel,
- this->bytesPerLine(), colorSpace, cgflags, dataProvider,
+ this->bytesPerLine(), colorSpace, bitmapInfo, dataProvider,
decode, shouldInterpolate, kCGRenderingIntentDefault);
}