summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/mirclient/qmirclientbackingstore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientbackingstore.cpp')
-rw-r--r--src/plugins/platforms/mirclient/qmirclientbackingstore.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientbackingstore.cpp b/src/plugins/platforms/mirclient/qmirclientbackingstore.cpp
index a4bb8864ab..51363619d9 100644
--- a/src/plugins/platforms/mirclient/qmirclientbackingstore.cpp
+++ b/src/plugins/platforms/mirclient/qmirclientbackingstore.cpp
@@ -61,6 +61,7 @@ QMirClientBackingStore::QMirClientBackingStore(QWindow* window)
QMirClientBackingStore::~QMirClientBackingStore()
{
+ mContext->makeCurrent(window()); // needed as QOpenGLTexture destructor assumes current context
}
void QMirClientBackingStore::flush(QWindow* window, const QRegion& region, const QPoint& offset)
@@ -76,7 +77,6 @@ void QMirClientBackingStore::flush(QWindow* window, const QRegion& region, const
mBlitter->create();
mBlitter->bind();
- mBlitter->setRedBlueSwizzle(true);
mBlitter->blit(mTexture->textureId(), QMatrix4x4(), QOpenGLTextureBlitter::OriginTopLeft);
mBlitter->release();
@@ -137,7 +137,9 @@ void QMirClientBackingStore::beginPaint(const QRegion& region)
void QMirClientBackingStore::resize(const QSize& size, const QRegion& /*staticContents*/)
{
- mImage = QImage(size, QImage::Format_RGB32);
+ mImage = QImage(size, QImage::Format_RGBA8888);
+
+ mContext->makeCurrent(window());
if (mTexture->isCreated())
mTexture->destroy();
@@ -147,3 +149,9 @@ QPaintDevice* QMirClientBackingStore::paintDevice()
{
return &mImage;
}
+
+QImage QMirClientBackingStore::toImage() const
+{
+ // used by QPlatformBackingStore::composeAndFlush
+ return mImage;
+}