diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-07-28 15:31:44 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2020-07-29 20:34:15 +0200 |
commit | 3d03f4e989e0ae53569a1a2e390d71c41d91f329 (patch) | |
tree | 4504dea0fdb942778902ff823636da531ae69aaa /src/opengl/qplatformbackingstoreopenglsupport.cpp | |
parent | d14cf6d3d980e9289d95b197ca46a55e9e263b22 (diff) |
Register QPlatformBackingStoreOpenGLSupport when needed
Static builds can not rely on a constructor function in the QtOpenGL
library, as that will be linked out unless something in the application
pulls it in.
Instead we export a helper function that clients that depend on
OpenGL support in QPlatformBackingStore can use to bring it it.
Change-Id: Ic54058bf413a476287884c78df5624b862f97695
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'src/opengl/qplatformbackingstoreopenglsupport.cpp')
-rw-r--r-- | src/opengl/qplatformbackingstoreopenglsupport.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/opengl/qplatformbackingstoreopenglsupport.cpp b/src/opengl/qplatformbackingstoreopenglsupport.cpp index 6f893671c0..46e36c23d4 100644 --- a/src/opengl/qplatformbackingstoreopenglsupport.cpp +++ b/src/opengl/qplatformbackingstoreopenglsupport.cpp @@ -450,17 +450,14 @@ GLuint QPlatformBackingStoreOpenGLSupport::toTexture(const QRegion &dirtyRegion, return textureId; } -static QPlatformBackingStoreOpenGLSupportBase *createOpenGLSupport() +void qt_registerDefaultPlatformBackingStoreOpenGLSupport() { - return new QPlatformBackingStoreOpenGLSupport; -} - -static void setDefaultOpenGLSupportFactoryFunction() -{ - if (!QPlatformBackingStoreOpenGLSupportBase::factoryFunction()) - QPlatformBackingStoreOpenGLSupportBase::setFactoryFunction(createOpenGLSupport); + if (!QPlatformBackingStoreOpenGLSupportBase::factoryFunction()) { + QPlatformBackingStoreOpenGLSupportBase::setFactoryFunction([]() -> QPlatformBackingStoreOpenGLSupportBase* { + return new QPlatformBackingStoreOpenGLSupport; + }); + } } -Q_CONSTRUCTOR_FUNCTION(setDefaultOpenGLSupportFactoryFunction); #endif // QT_NO_OPENGL |