diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/platforms/xcb/qdri2context.cpp | 273 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qdri2context.h | 81 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection.cpp | 108 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbconnection.h | 22 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbintegration.cpp | 6 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 42 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/qxcbwindow.cpp | 9 | ||||
-rw-r--r-- | src/plugins/platforms/xcb/xcb.pro | 12 |
8 files changed, 8 insertions, 545 deletions
diff --git a/src/plugins/platforms/xcb/qdri2context.cpp b/src/plugins/platforms/xcb/qdri2context.cpp deleted file mode 100644 index 5f116fe0f6..0000000000 --- a/src/plugins/platforms/xcb/qdri2context.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qdri2context.h" - -#include "qxcbwindow.h" -#include "qxcbconnection.h" - -#include <QtCore/QDebug> -#include <QtWidgets/QWidget> - -#include <xcb/dri2.h> -#include <xcb/xfixes.h> - -#define MESA_EGL_NO_X11_HEADERS -#define EGL_EGLEXT_PROTOTYPES -#include <EGL/egl.h> -#include <EGL/eglext.h> - -#define GL_GLEXT_PROTOTYPES -#include <GLES2/gl2.h> -#include <GLES2/gl2ext.h> - -QT_BEGIN_NAMESPACE - -class QDri2ContextPrivate -{ -public: - QDri2ContextPrivate(QXcbWindow *window) - : qXcbWindow(window) - , windowFormat(window->widget()->platformWindowFormat()) - , image(0) - { - } - - xcb_window_t xcbWindow() { return qXcbWindow->window(); } - xcb_connection_t *xcbConnection() { return qXcbWindow->xcb_connection(); } - - QXcbWindow *qXcbWindow; - QPlatformWindowFormat windowFormat; - - EGLContext eglContext; - - EGLImageKHR image; - - GLuint fbo; - GLuint rbo; - GLuint depth; - - QSize size; -}; - -QDri2Context::QDri2Context(QXcbWindow *window) - : d_ptr(new QDri2ContextPrivate(window)) -{ - Q_D(QDri2Context); - - static const EGLint contextAttribs[] = { - EGL_CONTEXT_CLIENT_VERSION, 2, - EGL_NONE - }; - - eglBindAPI(EGL_OPENGL_ES_API); - - EGLContext shareContext = EGL_NO_CONTEXT; - if (window->widget()->platformWindowFormat().sharedGLContext()) { - QDri2Context *context = static_cast<QDri2Context *>(window->widget()->platformWindowFormat().sharedGLContext()); - shareContext = context->d_func()->eglContext; - } - d->eglContext = eglCreateContext(EGL_DISPLAY_FROM_XCB(d->qXcbWindow), NULL, - shareContext, contextAttribs); - - if (d->eglContext == EGL_NO_CONTEXT) { - qDebug() << "No eglContext!" << eglGetError(); - } - - EGLBoolean makeCurrentSuccess = eglMakeCurrent(EGL_DISPLAY_FROM_XCB(d->qXcbWindow),EGL_NO_SURFACE,EGL_NO_SURFACE,d->eglContext); - if (!makeCurrentSuccess) { - qDebug() << "eglMakeCurrent failed!" << eglGetError(); - } - - xcb_dri2_create_drawable (d->xcbConnection(), d->xcbWindow()); - - glGenFramebuffers(1,&d->fbo); - glBindFramebuffer(GL_FRAMEBUFFER,d->fbo); - glActiveTexture(GL_TEXTURE0); - - glGenRenderbuffers(1, &d->rbo); - glBindRenderbuffer(GL_RENDERBUFFER, d->rbo); - - glGenRenderbuffers(1,&d->depth); - glBindRenderbuffer(GL_RENDERBUFFER, d->depth); - - resize(d->qXcbWindow->widget()->geometry().size()); - - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, d->rbo); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_RENDERER,d->depth); - glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, GL_RENDERER,d->depth); - - //restore the old current context - const QPlatformOpenGLContext *currentContext = QPlatformOpenGLContext::currentContext(); - if (currentContext) - const_cast<QPlatformOpenGLContext*>(currentContext)->makeCurrent(); -} - -QDri2Context::~QDri2Context() -{ - //cleanup -} - -void QDri2Context::makeCurrent() -{ - Q_D(QDri2Context); - - eglMakeCurrent(EGL_DISPLAY_FROM_XCB(d->qXcbWindow),EGL_NO_SURFACE,EGL_NO_SURFACE,d->eglContext); - glBindFramebuffer(GL_FRAMEBUFFER,d->fbo); - -} - -void QDri2Context::doneCurrent() -{ - Q_D(QDri2Context); - eglMakeCurrent(EGL_DISPLAY_FROM_XCB(d->qXcbWindow),EGL_NO_SURFACE,EGL_NO_SURFACE,EGL_NO_CONTEXT); -} - -void QDri2Context::swapBuffers() -{ - Q_D(QDri2Context); - xcb_rectangle_t rectangle; - rectangle.x = 0; - rectangle.y = 0; - rectangle.width = d->qXcbWindow->widget()->geometry().width(); - rectangle.height = d->qXcbWindow->widget()->geometry().height(); - - xcb_xfixes_region_t xfixesRegion = xcb_generate_id(d->xcbConnection()); - xcb_xfixes_create_region(d->xcbConnection(), xfixesRegion, - 1, &rectangle); - - xcb_dri2_copy_region_cookie_t cookie = xcb_dri2_copy_region_unchecked(d->xcbConnection(), - d->qXcbWindow->window(), - xfixesRegion, - XCB_DRI2_ATTACHMENT_BUFFER_FRONT_LEFT, - XCB_DRI2_ATTACHMENT_BUFFER_BACK_LEFT); - - xcb_dri2_copy_region_reply_t *reply = xcb_dri2_copy_region_reply(d->xcbConnection(),cookie,NULL); - - //cleanup - delete reply; - xcb_xfixes_destroy_region(d->xcbConnection(), xfixesRegion); - -} - -void * QDri2Context::getProcAddress(const QString &procName) -{ - return (void *)eglGetProcAddress(qPrintable(procName)); -} - -void QDri2Context::resize(const QSize &size) -{ - Q_D(QDri2Context); - d->size= size; - - glBindFramebuffer(GL_FRAMEBUFFER,d->fbo); - - xcb_dri2_dri2_buffer_t *backBfr = backBuffer(); - - if (d->image) { - qDebug() << "destroing image"; - eglDestroyImageKHR(EGL_DISPLAY_FROM_XCB(d->qXcbWindow),d->image); - } - - EGLint imgAttribs[] = { - EGL_WIDTH, d->size.width(), - EGL_HEIGHT, d->size.height(), - EGL_DRM_BUFFER_STRIDE_MESA, backBfr->pitch /4, - EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, - EGL_NONE - }; - - d->image = eglCreateImageKHR(EGL_DISPLAY_FROM_XCB(d->qXcbWindow), - EGL_NO_CONTEXT, - EGL_DRM_BUFFER_MESA, - (EGLClientBuffer) backBfr->name, - imgAttribs); - - glBindRenderbuffer(GL_RENDERBUFFER, d->rbo); - glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, - d->image); - - glBindRenderbuffer(GL_RENDERBUFFER, d->depth); - glRenderbufferStorage(GL_RENDERBUFFER,GL_DEPTH24_STENCIL8_OES,d->size.width(), d->size.height()); - -} - -QPlatformWindowFormat QDri2Context::platformWindowFormat() const -{ - Q_D(const QDri2Context); - return d->windowFormat; -} - -xcb_dri2_dri2_buffer_t * QDri2Context::backBuffer() -{ - Q_D(QDri2Context); - - unsigned int backBufferAttachment = XCB_DRI2_ATTACHMENT_BUFFER_BACK_LEFT; - xcb_dri2_get_buffers_cookie_t cookie = xcb_dri2_get_buffers_unchecked (d->xcbConnection(), - d->xcbWindow(), - 1, 1, &backBufferAttachment); - - xcb_dri2_get_buffers_reply_t *reply = xcb_dri2_get_buffers_reply (d->xcbConnection(), cookie, NULL); - if (!reply) { - qDebug() << "failed to get buffers reply"; - return 0; - } - - xcb_dri2_dri2_buffer_t *buffers = xcb_dri2_get_buffers_buffers (reply); - if (!buffers) { - qDebug() << "failed to get buffers"; - return 0; - } - - Q_ASSERT(reply->count == 1); - - delete reply; - - return buffers; -} - -void * QDri2Context::eglContext() const -{ - Q_D(const QDri2Context); - return d->eglContext; -} - -QT_END_NAMESPACE diff --git a/src/plugins/platforms/xcb/qdri2context.h b/src/plugins/platforms/xcb/qdri2context.h deleted file mode 100644 index e355eb5c28..0000000000 --- a/src/plugins/platforms/xcb/qdri2context.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QDRI2CONTEXT_H -#define QDRI2CONTEXT_H - -#include <qpa/qplatformopenglcontext.h> - -struct xcb_dri2_dri2_buffer_t; - -QT_BEGIN_NAMESPACE - -class QXcbWindow; -class QDri2ContextPrivate; - -class QDri2Context : public QPlatformOpenGLContext -{ - Q_DECLARE_PRIVATE(QDri2Context); -public: - QDri2Context(QXcbWindow *window); - ~QDri2Context(); - - void makeCurrent(); - void doneCurrent(); - void swapBuffers(); - void* getProcAddress(const QString& procName); - - void resize(const QSize &size); - - QPlatformWindowFormat platformWindowFormat() const; - - void *eglContext() const; - -protected: - xcb_dri2_dri2_buffer_t *backBuffer(); - QScopedPointer<QDri2ContextPrivate> d_ptr; -private: - Q_DISABLE_COPY(QDri2Context) -}; - -QT_END_NAMESPACE - -#endif // QDRI2CONTEXT_H diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp index 3261bd189d..85f6fc9213 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection.cpp @@ -82,17 +82,6 @@ #include <EGL/egl.h> #endif -#ifdef XCB_USE_DRI2 -#include <xcb/dri2.h> -extern "C" { -#include <xf86drm.h> -} -#define MESA_EGL_NO_X11_HEADERS -#define EGL_EGLEXT_PROTOTYPES -#include <EGL/egl.h> -#include <EGL/eglext.h> -#endif - #if defined(XCB_USE_XINPUT2) || defined(XCB_USE_XINPUT2_MAEMO) #include <X11/extensions/XInput2.h> #include <X11/extensions/XI2proto.h> @@ -261,12 +250,6 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, const char #ifdef XCB_USE_XINPUT2_MAEMO , m_xinputData(0) #endif -#ifdef XCB_USE_DRI2 - , m_dri2_major(0) - , m_dri2_minor(0) - , m_dri2_support_probed(false) - , m_has_support_for_dri2(false) -#endif , xfixes_first_event(0) , xrandr_first_event(0) , has_glx_extension(false) @@ -359,9 +342,6 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, const char m_drag = new QXcbDrag(this); #endif -#ifdef XCB_USE_DRI2 - initializeDri2(); -#endif sync(); } @@ -1410,94 +1390,6 @@ bool QXcbConnection::hasEgl() const } #endif // defined(XCB_USE_EGL) -#ifdef XCB_USE_DRI2 -void QXcbConnection::initializeDri2() -{ - xcb_dri2_connect_cookie_t connect_cookie = xcb_dri2_connect_unchecked (m_connection, - m_screens[0]->root(), - XCB_DRI2_DRIVER_TYPE_DRI); - - xcb_dri2_connect_reply_t *connect = xcb_dri2_connect_reply (m_connection, - connect_cookie, NULL); - - if (! connect || connect->driver_name_length + connect->device_name_length == 0) { - qWarning("QXcbConnection: Failed to connect to DRI2"); - return; - } - - m_dri2_device_name = QByteArray(xcb_dri2_connect_device_name (connect), - xcb_dri2_connect_device_name_length (connect)); - delete connect; - - int fd = open(m_dri2_device_name.constData(), O_RDWR); - if (fd < 0) { - qWarning() << "QXcbConnection: Couldn't open DRI2 device" << m_dri2_device_name; - m_dri2_device_name = QByteArray(); - return; - } - - drm_magic_t magic; - if (drmGetMagic(fd, &magic)) { - qWarning("QXcbConnection: Failed to get drmMagic"); - return; - } - - xcb_dri2_authenticate_cookie_t authenticate_cookie = xcb_dri2_authenticate_unchecked(m_connection, - m_screens[0]->root(), magic); - xcb_dri2_authenticate_reply_t *authenticate = xcb_dri2_authenticate_reply(m_connection, - authenticate_cookie, NULL); - if (authenticate == NULL || !authenticate->authenticated) { - qWarning("QXcbConnection: DRI2: failed to authenticate"); - free(authenticate); - return; - } - - delete authenticate; - - EGLDisplay display = eglGetDRMDisplayMESA(fd); - if (!display) { - qWarning("QXcbConnection: Failed to create EGL display using DRI2"); - return; - } - - m_egl_display = display; - EGLint major,minor; - if (!eglInitialize(display, &major, &minor)) { - qWarning("QXcbConnection: Failed to initialize EGL display using DRI2"); - return; - } -} - -bool QXcbConnection::hasSupportForDri2() const -{ - if (!m_dri2_support_probed) { - xcb_generic_error_t *error = 0; - - xcb_prefetch_extension_data (m_connection, &xcb_dri2_id); - - xcb_dri2_query_version_cookie_t dri2_query_cookie = xcb_dri2_query_version (m_connection, - XCB_DRI2_MAJOR_VERSION, - XCB_DRI2_MINOR_VERSION); - - xcb_dri2_query_version_reply_t *dri2_query = xcb_dri2_query_version_reply (m_connection, - dri2_query_cookie, &error); - if (!dri2_query || error) { - delete error; - delete dri2_query; - return false; - } - - QXcbConnection *that = const_cast<QXcbConnection *>(this); - that->m_dri2_major = dri2_query->major_version; - that->m_dri2_minor = dri2_query->minor_version; - - that->m_has_support_for_dri2 = true; - that->m_dri2_support_probed = true; - } - return m_has_support_for_dri2; -} -#endif //XCB_USE_DRI2 - #if defined(XCB_USE_XINPUT2) || defined(XCB_USE_XINPUT2_MAEMO) // Borrowed from libXi. int QXcbConnection::xi2CountBits(unsigned char *ptr, int len) diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h index cbfdd803f2..8b2315c67e 100644 --- a/src/plugins/platforms/xcb/qxcbconnection.h +++ b/src/plugins/platforms/xcb/qxcbconnection.h @@ -338,14 +338,10 @@ public: void *xlib_display() const { return m_xlib_display; } #endif -#ifdef XCB_USE_DRI2 - bool hasSupportForDri2() const; - QByteArray dri2DeviceName() const { return m_dri2_device_name; } -#endif #ifdef XCB_USE_EGL bool hasEgl() const; #endif -#if defined(XCB_USE_EGL) || defined(XCB_USE_DRI2) +#if defined(XCB_USE_EGL) void *egl_display() const { return m_egl_display; } #endif #ifdef XCB_USE_XINPUT2_MAEMO @@ -393,9 +389,6 @@ private: void initializeXRender(); void initializeXRandr(); void initializeXShape(); -#ifdef XCB_USE_DRI2 - void initializeDri2(); -#endif #ifdef XCB_USE_XINPUT2_MAEMO void initializeXInput2Maemo(); void finalizeXInput2Maemo(); @@ -478,14 +471,7 @@ private: QHash<int, QWindowSystemInterface::TouchPoint> m_touchPoints; QHash<int, XInput2DeviceData*> m_touchDevices; #endif -#ifdef XCB_USE_DRI2 - uint32_t m_dri2_major; - uint32_t m_dri2_minor; - bool m_dri2_support_probed; - bool m_has_support_for_dri2; - QByteArray m_dri2_device_name; -#endif -#if defined(XCB_USE_EGL) || defined(XCB_USE_DRI2) +#if defined(XCB_USE_EGL) void *m_egl_display; bool m_has_egl; #endif @@ -552,9 +538,9 @@ cookie_t q_xcb_call_template(const cookie_t &cookie, QXcbConnection *connection, #endif -#if defined(XCB_USE_DRI2) || defined(XCB_USE_EGL) +#if defined(XCB_USE_EGL) #define EGL_DISPLAY_FROM_XCB(object) ((EGLDisplay)(object->connection()->egl_display())) -#endif //endifXCB_USE_DRI2 +#endif QT_END_NAMESPACE diff --git a/src/plugins/platforms/xcb/qxcbintegration.cpp b/src/plugins/platforms/xcb/qxcbintegration.cpp index f6077316e6..5170ff9e10 100644 --- a/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -190,11 +190,9 @@ QPlatformOpenGLContext *QXcbIntegration::createPlatformOpenGLContext(QOpenGLCont #elif defined(XCB_USE_EGL) return new QEGLXcbPlatformContext(context->format(), context->shareHandle(), screen->connection()->egl_display(), screen->connection()); -#elif defined(XCB_USE_DRI2) - return new QDri2Context(context->format(), context->shareHandle()); #else Q_UNUSED(screen); - qWarning("QXcbIntegration: Cannot create platform OpenGL context, none of GLX, EGL, or DRI2 are enabled"); + qWarning("QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled"); return 0; #endif } @@ -211,7 +209,7 @@ bool QXcbIntegration::hasCapability(QPlatformIntegration::Capability cap) const case ThreadedPixmaps: return true; #if defined(XCB_USE_GLX) case OpenGL: return m_connections.at(0)->hasGLX(); -#elif defined(XCB_USE_EGL) || defined(XCB_USE_DRI2) +#elif defined(XCB_USE_EGL) case OpenGL: return true; #else case OpenGL: return false; diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp index 335866dc9d..40f39843e5 100644 --- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp +++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp @@ -53,8 +53,6 @@ #if defined(XCB_USE_EGL) #include "QtPlatformSupport/private/qeglplatformcontext_p.h" -#elif defined (XCB_USE_DRI2) -#include "qdri2context.h" #endif QT_BEGIN_NAMESPACE @@ -69,7 +67,6 @@ public: insert("egldisplay",QXcbNativeInterface::EglDisplay); insert("connection",QXcbNativeInterface::Connection); insert("screen",QXcbNativeInterface::Screen); - insert("graphicsdevice",QXcbNativeInterface::GraphicsDevice); insert("eglcontext",QXcbNativeInterface::EglContext); } }; @@ -122,9 +119,6 @@ void *QXcbNativeInterface::nativeResourceForWindow(const QByteArray &resourceStr case Screen: result = qPlatformScreenForWindow(window); break; - case GraphicsDevice: - result = graphicsDeviceForWindow(window); - break; default: break; } @@ -165,7 +159,7 @@ void *QXcbNativeInterface::displayForWindow(QWindow *window) void *QXcbNativeInterface::eglDisplayForWindow(QWindow *window) { -#if defined(XCB_USE_DRI2) || defined(XCB_USE_EGL) +#if defined(XCB_USE_EGL) QXcbScreen *screen = qPlatformScreenForWindow(window); return screen->connection()->egl_display(); #else @@ -186,19 +180,6 @@ void *QXcbNativeInterface::screenForWindow(QWindow *window) return screen->screen(); } -void *QXcbNativeInterface::graphicsDeviceForWindow(QWindow *window) -{ -#if defined(XCB_USE_DRI2) - QXcbScreen *screen = qPlatformScreenForWindow(window); - QByteArray deviceName = screen->connection()->dri2DeviceName(); - return deviceName.data(); -#else - Q_UNUSED(window); - return 0; -#endif - -} - void * QXcbNativeInterface::eglContextForContext(QOpenGLContext *context) { Q_ASSERT(context); @@ -206,27 +187,6 @@ void * QXcbNativeInterface::eglContextForContext(QOpenGLContext *context) QEGLPlatformContext *eglPlatformContext = static_cast<QEGLPlatformContext *>(context->handle()); return eglPlatformContext->eglContext(); #endif -#if 0 - Q_ASSERT(window); - QPlatformOpenGLContext *platformContext = window->glContext()->handle(); - if (!platformContext) { - qDebug() << "QWindow" << window << "does not have a glContext" - << "cannot return EGLContext"; - return 0; - } -#if defined(XCB_USE_EGL) - QEGLPlatformContext *eglPlatformContext = static_cast<QEGLPlatformContext *>(platformContext); - return eglPlatformContext->eglContext(); -#elif defined (XCB_USE_DRI2) - QDri2Context *dri2Context = static_cast<QDri2Context *>(platformContext); - return dri2Context->eglContext(); -#else - return 0; -#endif -#else - Q_UNUSED(context) - return 0; -#endif } QT_END_NAMESPACE diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp index 30f833012c..48754b0a60 100644 --- a/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -55,10 +55,6 @@ #include <qpa/qplatformintegration.h> -#ifdef XCB_USE_DRI2 -#include "qdri2context.h" -#endif - // FIXME This workaround can be removed for xcb-icccm > 3.8 #define class class_name #include <xcb/xcb_icccm.h> @@ -1391,11 +1387,6 @@ void QXcbWindow::handleConfigureNotifyEvent(const xcb_configure_notify_event_t * } m_dirtyFrameMargins = true; - -#if XCB_USE_DRI2 - if (m_context) - static_cast<QDri2Context *>(m_context)->resize(rect.size()); -#endif } bool QXcbWindow::isExposed() const diff --git a/src/plugins/platforms/xcb/xcb.pro b/src/plugins/platforms/xcb/xcb.pro index 617f2e685c..58521686aa 100644 --- a/src/plugins/platforms/xcb/xcb.pro +++ b/src/plugins/platforms/xcb/xcb.pro @@ -74,17 +74,7 @@ contains(QT_CONFIG, xcb-render) { !contains(DEFINES, QT_NO_SHAPE):LIBS += -lxcb-shape -# DEFINES += XCB_USE_DRI2 -contains(DEFINES, XCB_USE_DRI2) { - LIBS += -lxcb-dri2 -lEGL - - CONFIG += link_pkgconfig - PKGCONFIG += libdrm - - HEADERS += qdri2context.h - SOURCES += qdri2context.cpp - -} else:contains(QT_CONFIG, opengl) { +contains(QT_CONFIG, opengl) { contains(QT_CONFIG, opengles2) { DEFINES += XCB_USE_EGL LIBS += -lEGL |