diff options
author | Liang Qi <liang.qi@qt.io> | 2018-01-15 20:38:23 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2018-01-15 20:38:23 +0100 |
commit | a10fec1d386efd99f95973c7d446f94622a5da56 (patch) | |
tree | 688ad811c51ae0793f43010321c807d533425f45 /src/plugins/imageformats/shared | |
parent | 9839bdba39d7f96de11071b9c6ab4c9c6635a976 (diff) | |
parent | 54cdb5b07b2ae2130ce73c6bb22c65b4ad1cba03 (diff) |
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts:
.qmake.conf
Change-Id: If4baad0b1949c1c8f7157c213fc492775053ae0b
Diffstat (limited to 'src/plugins/imageformats/shared')
-rw-r--r-- | src/plugins/imageformats/shared/qiiofhelpers.cpp | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/src/plugins/imageformats/shared/qiiofhelpers.cpp b/src/plugins/imageformats/shared/qiiofhelpers.cpp index 2cd8b74..2b16787 100644 --- a/src/plugins/imageformats/shared/qiiofhelpers.cpp +++ b/src/plugins/imageformats/shared/qiiofhelpers.cpp @@ -94,9 +94,9 @@ static size_t cbPutBytes(void *info, const void *buffer, size_t count) } -// QImage <-> CGImage conversion functions -typedef QImage (*cgImageToQImagePtr)(CGImageRef image); -typedef CGImageRef (*qImageToCGImagePtr)(const QImage &image); +// QImage <-> CGImage conversion functions from QtGui on darwin +CGImageRef qt_mac_toCGImage(const QImage &qImage); +QImage qt_mac_toQImage(CGImageRef image); QImageIOPlugin::Capabilities QIIOFHelpers::systemCapabilities(const QString &uti) { @@ -119,13 +119,8 @@ QImageIOPlugin::Capabilities QIIOFHelpers::systemCapabilities(const QString &uti bool QIIOFHelpers::readImage(QImageIOHandler *q_ptr, QImage *out) { static const CGDataProviderSequentialCallbacks cgCallbacks = { 0, &cbGetBytes, &cbSkipForward, &cbRewind, nullptr }; - static cgImageToQImagePtr cgImageToQImageFn = nullptr; - if (!cgImageToQImageFn) { - if (QPlatformNativeInterface *pni = QGuiApplication::platformNativeInterface()) - cgImageToQImageFn = reinterpret_cast<cgImageToQImagePtr>(pni->nativeResourceFunctionForIntegration(QByteArrayLiteral("cgImageToQImage"))); - } - if (!q_ptr || !q_ptr->device() || !out || !cgImageToQImageFn) + if (!q_ptr || !q_ptr->device() || !out) return false; QCFType<CGDataProviderRef> cgDataProvider; @@ -145,7 +140,7 @@ bool QIIOFHelpers::readImage(QImageIOHandler *q_ptr, QImage *out) if (!cgImage) return false; - *out = cgImageToQImageFn(cgImage); + *out = qt_mac_toQImage(cgImage); return !out->isNull(); } @@ -153,16 +148,11 @@ bool QIIOFHelpers::readImage(QImageIOHandler *q_ptr, QImage *out) bool QIIOFHelpers::writeImage(QImageIOHandler *q_ptr, const QImage &in, const QString &uti) { static const CGDataConsumerCallbacks cgCallbacks = { &cbPutBytes, nullptr }; - static qImageToCGImagePtr qImageToCGImageFn = nullptr; - if (!qImageToCGImageFn) { - if (QPlatformNativeInterface *pni = QGuiApplication::platformNativeInterface()) - qImageToCGImageFn = reinterpret_cast<qImageToCGImagePtr>(pni->nativeResourceFunctionForIntegration(QByteArrayLiteral("qImageToCGImage"))); - } - if (!q_ptr || !q_ptr->device() || in.isNull() || !qImageToCGImageFn) + if (!q_ptr || !q_ptr->device() || in.isNull()) return false; - QCFType<CGImageRef> cgImage = qImageToCGImageFn(in); + QCFType<CGImageRef> cgImage = qt_mac_toCGImage(in); QCFType<CGDataConsumerRef> cgDataConsumer = CGDataConsumerCreate(q_ptr->device(), &cgCallbacks); QCFType<CFStringRef> cfUti = uti.toCFString(); QCFType<CGImageDestinationRef> cgImageDest = CGImageDestinationCreateWithDataConsumer(cgDataConsumer, cfUti, 1, nullptr); |