diff options
Diffstat (limited to 'src/plugins/platforms/mirclient/qmirclientglcontext.cpp')
-rw-r--r-- | src/plugins/platforms/mirclient/qmirclientglcontext.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/plugins/platforms/mirclient/qmirclientglcontext.cpp b/src/plugins/platforms/mirclient/qmirclientglcontext.cpp index e1e7727486..b1ca0b1f7c 100644 --- a/src/plugins/platforms/mirclient/qmirclientglcontext.cpp +++ b/src/plugins/platforms/mirclient/qmirclientglcontext.cpp @@ -40,6 +40,7 @@ #include "qmirclientlogging.h" #include <QtPlatformSupport/private/qeglconvenience_p.h> #include <QtGui/private/qopenglcontext_p.h> +#include <dlfcn.h> #if !defined(QT_NO_DEBUG) static void printOpenGLESConfig() { @@ -143,12 +144,15 @@ void QMirClientOpenGLContext::swapBuffers(QPlatformSurface* surface) ubuntuWindow->onSwapBuffersDone(); } -void (*QMirClientOpenGLContext::getProcAddress(const QByteArray& procName)) () +QFunctionPointer QMirClientOpenGLContext::getProcAddress(const char *procName) { #if defined(QT_NO_DEBUG) eglBindAPI(api_in_use()); #else ASSERT(eglBindAPI(api_in_use()) == EGL_TRUE); #endif - return eglGetProcAddress(procName.constData()); + QFunctionPointer proc = (QFunctionPointer) eglGetProcAddress(procName); + if (!proc) + proc = (QFunctionPointer) dlsym(RTLD_DEFAULT, procName); + return proc; } |