diff options
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientbackingstore.cpp')
-rw-r--r-- | src/plugins/platforms/mirclient/qmirclientbackingstore.cpp | 12 |
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; +} |