summaryrefslogtreecommitdiffstats
path: root/src/platformsupport
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2016-09-08 23:08:29 +0200
committerTor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>2016-09-18 14:33:04 +0000
commit2d2d90781abdcdbd2a98201877563c83d926dd1a (patch)
treeb3815b25635c1f2031c91edf1e2dc7b6b776be4d /src/platformsupport
parent41ab34d9e8b30190dc5aef672625902611663ce5 (diff)
macOS: Implement QCocoaBackingStore in terms of QRasterBackingStore
The previous detection of device pixel ratio changes in paintDevice() is not needed, as QBackingStore::beginPaint() already does this check and calls resize(). Change-Id: I9ee8410fa3a5404c5ec19d2cba4543a9e3359fe9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Diffstat (limited to 'src/platformsupport')
-rw-r--r--src/platformsupport/graphics/qrasterbackingstore.cpp13
-rw-r--r--src/platformsupport/graphics/qrasterbackingstore_p.h9
-rw-r--r--src/platformsupport/platformsupport.pro2
3 files changed, 17 insertions, 7 deletions
diff --git a/src/platformsupport/graphics/qrasterbackingstore.cpp b/src/platformsupport/graphics/qrasterbackingstore.cpp
index 58e811dff1..325c98b93d 100644
--- a/src/platformsupport/graphics/qrasterbackingstore.cpp
+++ b/src/platformsupport/graphics/qrasterbackingstore.cpp
@@ -62,13 +62,20 @@ void QRasterBackingStore::resize(const QSize &size, const QRegion &staticContent
if (m_image.size() == effectiveBufferSize)
return;
- QImage::Format format = window()->format().hasAlpha() ? QImage::Format_ARGB32_Premultiplied : QImage::Format_RGB32;
- m_image = QImage(effectiveBufferSize, format);
+ m_image = QImage(effectiveBufferSize, format());
m_image.setDevicePixelRatio(windowDevicePixelRatio);
- if (format == QImage::Format_ARGB32_Premultiplied)
+ if (m_image.format() == QImage::Format_ARGB32_Premultiplied)
m_image.fill(Qt::transparent);
}
+QImage::Format QRasterBackingStore::format() const
+{
+ if (window()->format().hasAlpha())
+ return QImage::Format_ARGB32_Premultiplied;
+ else
+ return QImage::Format_RGB32;
+}
+
QPaintDevice *QRasterBackingStore::paintDevice()
{
return &m_image;
diff --git a/src/platformsupport/graphics/qrasterbackingstore_p.h b/src/platformsupport/graphics/qrasterbackingstore_p.h
index de96c99b5a..55976d2ceb 100644
--- a/src/platformsupport/graphics/qrasterbackingstore_p.h
+++ b/src/platformsupport/graphics/qrasterbackingstore_p.h
@@ -62,13 +62,16 @@ public:
QRasterBackingStore(QWindow *window);
~QRasterBackingStore();
- QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
- QImage toImage() const Q_DECL_OVERRIDE;
- void resize (const QSize &size, const QRegion &) Q_DECL_OVERRIDE;
+ void resize(const QSize &size, const QRegion &staticContents) Q_DECL_OVERRIDE;
bool scroll(const QRegion &area, int dx, int dy) Q_DECL_OVERRIDE;
void beginPaint(const QRegion &region) Q_DECL_OVERRIDE;
+ QPaintDevice *paintDevice() Q_DECL_OVERRIDE;
+ QImage toImage() const Q_DECL_OVERRIDE;
+
protected:
+ virtual QImage::Format format() const;
+
QImage m_image;
};
diff --git a/src/platformsupport/platformsupport.pro b/src/platformsupport/platformsupport.pro
index 15bbaf94c9..19efa60f48 100644
--- a/src/platformsupport/platformsupport.pro
+++ b/src/platformsupport/platformsupport.pro
@@ -29,6 +29,6 @@ unix:!darwin:qtConfig(dbus) {
include(dbusmenu/dbusmenu.pri)
include(dbustray/dbustray.pri)
}
-uikit: include(graphics/graphics.pri)
+darwin: include(graphics/graphics.pri)
load(qt_module)