diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-04-01 18:49:59 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-05-29 19:01:57 +0200 |
commit | b39f33e311b603c6835b919778100e60759fa870 (patch) | |
tree | 4e84e3623060a7213be82696cf6c6d4fea11423c /src/opengl | |
parent | c4e09cf26790d6d293efd0e389517dcaf7f34d85 (diff) |
Move QPlatformBackingStoreOpenGLSupport handling out of platform plugins
Allows them to not depend on QtOpenGL just to provide the default
backing store OpenGL support backend.
Change-Id: I90d6d9247ce76848d9d03e2d512fb736c81488d3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/opengl')
-rw-r--r-- | src/opengl/qplatformbackingstoreopenglsupport.cpp | 12 | ||||
-rw-r--r-- | src/opengl/qplatformbackingstoreopenglsupport.h | 2 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/opengl/qplatformbackingstoreopenglsupport.cpp b/src/opengl/qplatformbackingstoreopenglsupport.cpp index 511d85a400..a188d25db5 100644 --- a/src/opengl/qplatformbackingstoreopenglsupport.cpp +++ b/src/opengl/qplatformbackingstoreopenglsupport.cpp @@ -450,6 +450,18 @@ GLuint QPlatformBackingStoreOpenGLSupport::toTexture(const QRegion &dirtyRegion, return textureId; } +static QPlatformBackingStoreOpenGLSupportBase *createOpenGLSupport() +{ + return new QPlatformBackingStoreOpenGLSupport; +} + +static void setDefaultOpenGLSupportFactoryFunction() +{ + if (!QPlatformBackingStoreOpenGLSupportBase::factoryFunction()) + QPlatformBackingStoreOpenGLSupportBase::setFactoryFunction(createOpenGLSupport); +} +Q_CONSTRUCTOR_FUNCTION(setDefaultOpenGLSupportFactoryFunction); + #endif // QT_NO_OPENGL QT_END_NAMESPACE diff --git a/src/opengl/qplatformbackingstoreopenglsupport.h b/src/opengl/qplatformbackingstoreopenglsupport.h index 8868703deb..4821f7300f 100644 --- a/src/opengl/qplatformbackingstoreopenglsupport.h +++ b/src/opengl/qplatformbackingstoreopenglsupport.h @@ -64,14 +64,12 @@ class QOpenGLBackingStore; class Q_OPENGL_EXPORT QPlatformBackingStoreOpenGLSupport : public QPlatformBackingStoreOpenGLSupportBase { public: - explicit QPlatformBackingStoreOpenGLSupport(QPlatformBackingStore *backingStore) : backingStore(backingStore) {} ~QPlatformBackingStoreOpenGLSupport() override; void composeAndFlush(QWindow *window, const QRegion ®ion, const QPoint &offset, QPlatformTextureList *textures, bool translucentBackground) override; GLuint toTexture(const QRegion &dirtyRegion, QSize *textureSize, QPlatformBackingStore::TextureFlags *flags) const override; private: - QPlatformBackingStore *backingStore = nullptr; QScopedPointer<QOpenGLContext> context; mutable GLuint textureId = 0; mutable QSize textureSize; |