diff options
author | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-09-16 14:12:54 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@digia.com> | 2014-10-10 08:36:47 +0200 |
commit | 1f040d401d322cec9dc56c93e78899a429cb6e5a (patch) | |
tree | a604b60b9964f098dd07e66204abd7b564e5f3d8 /src/gui/kernel | |
parent | 881ceeff428c377d02ae3881beccdbb028385075 (diff) |
eglfs: Add support for systems without pbuffer support
Use a small native window and window surface in case the hooks indicate
that pbuffer support is not available.
Change-Id: I6515309041f0e1e2f5321d59941f35d6ee16dca7
Reviewed-by: Louai Al-Khanji <louai.al-khanji@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qopenglcontext.cpp | 1 | ||||
-rw-r--r-- | src/gui/kernel/qplatformopenglcontext.cpp | 10 | ||||
-rw-r--r-- | src/gui/kernel/qplatformopenglcontext.h | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/src/gui/kernel/qopenglcontext.cpp b/src/gui/kernel/qopenglcontext.cpp index 8b2378788f..51b4a6a079 100644 --- a/src/gui/kernel/qopenglcontext.cpp +++ b/src/gui/kernel/qopenglcontext.cpp @@ -606,6 +606,7 @@ bool QOpenGLContext::create() d->platformGLContext = QGuiApplicationPrivate::platformIntegration()->createPlatformOpenGLContext(this); if (!d->platformGLContext) return false; + d->platformGLContext->initialize(); d->platformGLContext->setContext(this); if (!d->platformGLContext->isSharing()) d->shareContext = 0; diff --git a/src/gui/kernel/qplatformopenglcontext.cpp b/src/gui/kernel/qplatformopenglcontext.cpp index 527bfdd983..bf0dccd440 100644 --- a/src/gui/kernel/qplatformopenglcontext.cpp +++ b/src/gui/kernel/qplatformopenglcontext.cpp @@ -89,6 +89,16 @@ QPlatformOpenGLContext::~QPlatformOpenGLContext() } /*! + Called after a new instance is constructed. The default implementation does nothing. + + Subclasses can use this function to perform additional initialization that relies on + virtual functions. + */ +void QPlatformOpenGLContext::initialize() +{ +} + +/*! Reimplement in subclass if your platform uses framebuffer objects for surfaces. The default implementation returns 0. diff --git a/src/gui/kernel/qplatformopenglcontext.h b/src/gui/kernel/qplatformopenglcontext.h index 261b6921a4..0a2bacfbde 100644 --- a/src/gui/kernel/qplatformopenglcontext.h +++ b/src/gui/kernel/qplatformopenglcontext.h @@ -63,6 +63,8 @@ public: QPlatformOpenGLContext(); virtual ~QPlatformOpenGLContext(); + virtual void initialize(); + virtual QSurfaceFormat format() const = 0; virtual void swapBuffers(QPlatformSurface *surface) = 0; |