summaryrefslogtreecommitdiffstats
path: root/src/hardwareintegration
diff options
context:
space:
mode:
Diffstat (limited to 'src/hardwareintegration')
-rw-r--r--src/hardwareintegration/client/brcm-egl/brcm-egl.pri2
-rw-r--r--src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp2
-rw-r--r--src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp9
-rw-r--r--src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h2
-rw-r--r--src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp9
-rw-r--r--src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp9
-rw-r--r--src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri2
7 files changed, 27 insertions, 8 deletions
diff --git a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
index 64cb44677..3961f4f1e 100644
--- a/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
+++ b/src/hardwareintegration/client/brcm-egl/brcm-egl.pri
@@ -3,6 +3,8 @@ INCLUDEPATH += $$PWD
QMAKE_USE += egl wayland-client
QT += egl_support-private
+LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD
+
SOURCES += $$PWD/qwaylandbrcmeglintegration.cpp \
$$PWD/qwaylandbrcmglcontext.cpp \
$$PWD/qwaylandbrcmeglwindow.cpp
diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
index 4d56d66e6..22618b4aa 100644
--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
+++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmeglwindow.cpp
@@ -254,7 +254,7 @@ void QWaylandBrcmEglWindow::swapBuffers()
m_buffers[m_current]->bind();
attach(m_buffers[m_current], 0, 0);
damage(QRect(QPoint(), geometry().size()));
- commit();
+ wl_surface::commit();
m_current = (m_current + 1) % m_count;
m_buffers[m_current]->waitForRelease();
diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp
index f5480b0ed..5c585746c 100644
--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp
+++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.cpp
@@ -48,6 +48,8 @@
#include <qpa/qplatformopenglcontext.h>
#include <QtGui/QSurfaceFormat>
+#include <dlfcn.h>
+
QT_BEGIN_NAMESPACE
namespace QtWaylandClient {
@@ -92,9 +94,12 @@ void QWaylandBrcmGLContext::swapBuffers(QPlatformSurface *surface)
static_cast<QWaylandBrcmEglWindow *>(surface)->swapBuffers();
}
-void (*QWaylandBrcmGLContext::getProcAddress(const char *procName)) ()
+QFunctionPointer QWaylandBrcmGLContext::getProcAddress(const char *procName)
{
- return eglGetProcAddress(procName);
+ QFunctionPointer proc = (QFunctionPointer) eglGetProcAddress(procName);
+ if (!proc)
+ proc = (QFunctionPointer) dlsym(RTLD_DEFAULT, procName);
+ return proc;
}
EGLConfig QWaylandBrcmGLContext::eglConfig() const
diff --git a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
index ee8bc86fe..d27333576 100644
--- a/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
+++ b/src/hardwareintegration/client/brcm-egl/qwaylandbrcmglcontext.h
@@ -63,7 +63,7 @@ public:
bool makeCurrent(QPlatformSurface *surface) override;
void doneCurrent() override;
- void (*getProcAddress(const char *procName)) () override;
+ QFunctionPointer getProcAddress(const char *procName) override;
QSurfaceFormat format() const override { return m_format; }
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
index f70c75a33..2a9e39ed6 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -59,6 +59,8 @@
#include <QtCore/qmutex.h>
+#include <dlfcn.h>
+
// Constants from EGL_KHR_create_context
#ifndef EGL_CONTEXT_MINOR_VERSION_KHR
#define EGL_CONTEXT_MINOR_VERSION_KHR 0x30FB
@@ -575,9 +577,12 @@ bool QWaylandGLContext::isValid() const
return m_context != EGL_NO_CONTEXT;
}
-void (*QWaylandGLContext::getProcAddress(const char *procName)) ()
+QFunctionPointer QWaylandGLContext::getProcAddress(const char *procName)
{
- return eglGetProcAddress(procName);
+ QFunctionPointer proc = (QFunctionPointer) eglGetProcAddress(procName);
+ if (!proc)
+ proc = (QFunctionPointer) dlsym(RTLD_DEFAULT, procName);
+ return proc;
}
EGLConfig QWaylandGLContext::eglConfig() const
diff --git a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp
index 439acc00c..33ae2e038 100644
--- a/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp
+++ b/src/hardwareintegration/client/xcomposite-glx/qwaylandxcompositeglxcontext.cpp
@@ -45,6 +45,8 @@
#include <QRegion>
+#include <dlfcn.h>
+
QT_BEGIN_NAMESPACE
namespace QtWaylandClient {
@@ -94,9 +96,12 @@ void QWaylandXCompositeGLXContext::swapBuffers(QPlatformSurface *surface)
w->waitForFrameSync();
}
-void (*QWaylandXCompositeGLXContext::getProcAddress(const char *procName)) ()
+QFunctionPointer QWaylandXCompositeGLXContext::getProcAddress(const char *procName)
{
- return glXGetProcAddress(reinterpret_cast<const GLubyte *>(procName));
+ QFunctionPointer proc = glXGetProcAddress(reinterpret_cast<const GLubyte *>(procName));
+ if (!proc)
+ proc = (QFunctionPointer) dlsym(RTLD_DEFAULT, procName);
+ return proc;
}
QSurfaceFormat QWaylandXCompositeGLXContext::format() const
diff --git a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
index 067378af1..2307319af 100644
--- a/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
+++ b/src/hardwareintegration/client/xcomposite-glx/xcomposite-glx.pri
@@ -3,6 +3,8 @@ include ($$PWD/../xcomposite_share/xcomposite_share.pri)
QMAKE_USE += wayland-client glx
+LIBS_PRIVATE += $$QMAKE_LIBS_DYNLOAD
+
QT += glx_support-private
SOURCES += \