[QNX] Use QRhiBackingstore for non-raster surface windows

Since the change to use compose render-to-texture widgets through QRhi,
the RasterGLSurface is not existing anymore and it was used in QNX QPA
to check the support for using backingstore with non-raster windows.
With the use of QRhiBackingstore the QNX QPA now supports
render-to-texture widgets for non-raster surface windows.

Fixes: QTBUG-114938
Task-number: QTBUG-114938
Pick-to: 6.5 6.6 6.7
Change-Id: I01d4a34efe4902a527051776b0460ccf22e5d232
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
This commit is contained in:
Tuomas Vaarala 2024-05-15 13:21:08 +03:00
parent 5e699c2a8b
commit c9ddc4b8e1
2 changed files with 20 additions and 2 deletions

View File

@ -414,6 +414,12 @@ qt_internal_extend_target(Gui CONDITION APPLE
${FWImageIO}
)
qt_internal_extend_target(Gui CONDITION QNX
SOURCES
painting/qrasterbackingstore.cpp painting/qrasterbackingstore_p.h
painting/qrhibackingstore.cpp painting/qrhibackingstore_p.h
)
qt_internal_extend_target(Gui CONDITION QT_FEATURE_animation
SOURCES
animation/qguivariantanimation.cpp

View File

@ -49,6 +49,7 @@
#include <qpa/qwindowsysteminterface.h>
#include <QtGui/private/qguiapplication_p.h>
#include <QtGui/private/qrhibackingstore_p.h>
#if !defined(QT_NO_OPENGL)
#include "qqnxglcontext.h"
@ -328,8 +329,19 @@ QPlatformWindow *QQnxIntegration::createPlatformWindow(QWindow *window) const
QPlatformBackingStore *QQnxIntegration::createPlatformBackingStore(QWindow *window) const
{
qCDebug(lcQpaQnx) << Q_FUNC_INFO;
QSurface::SurfaceType surfaceType = window->surfaceType();
qCDebug(lcQpaQnx) << Q_FUNC_INFO << surfaceType;
switch (surfaceType) {
case QSurface::RasterSurface:
return new QQnxRasterBackingStore(window);
#if !defined(QT_NO_OPENGL)
// Return a QRhiBackingStore for non-raster surface windows
case QSurface::OpenGLSurface:
return new QRhiBackingStore(window);
#endif
default:
return nullptr;
}
}
#if !defined(QT_NO_OPENGL)