From 89a1a943cecc2a8d39c88d64bcbee6cf5e02519e Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Tue, 31 Jul 2012 18:12:18 +0100 Subject: QNX: Remove dependency on QtWidgets from QNX QPA plugin Change-Id: I52027752630beee81a97644983dbccf973c0c2c2 Reviewed-by: Kevin Krammer Reviewed-by: Kevin Ottens Reviewed-by: Thomas McGuire Reviewed-by: Giuseppe D'Angelo --- src/plugins/platforms/qnx/qnx.pro | 12 +- src/plugins/platforms/qnx/qqnxglbackingstore.cpp | 182 ----------------------- src/plugins/platforms/qnx/qqnxglbackingstore.h | 95 ------------ src/plugins/platforms/qnx/qqnxintegration.cpp | 12 +- src/plugins/platforms/qnx/qqnxintegration.h | 7 - 5 files changed, 4 insertions(+), 304 deletions(-) delete mode 100644 src/plugins/platforms/qnx/qqnxglbackingstore.cpp delete mode 100644 src/plugins/platforms/qnx/qqnxglbackingstore.h diff --git a/src/plugins/platforms/qnx/qnx.pro b/src/plugins/platforms/qnx/qnx.pro index affa3c1dcd..5298824600 100644 --- a/src/plugins/platforms/qnx/qnx.pro +++ b/src/plugins/platforms/qnx/qnx.pro @@ -2,11 +2,7 @@ TARGET = qnx include(../../qpluginbase.pri) QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/platforms -QT += platformsupport platformsupport-private widgets-private - -contains(QT_CONFIG, opengles2) { - QT += opengl opengl-private -} +QT += platformsupport platformsupport-private # Uncomment this to build with support for IMF once it becomes available in the BBNDK #CONFIG += qqnx_imf @@ -80,11 +76,9 @@ HEADERS = main.h \ LIBS += -lscreen contains(QT_CONFIG, opengles2) { - SOURCES += qqnxglcontext.cpp \ - qqnxglbackingstore.cpp + SOURCES += qqnxglcontext.cpp - HEADERS += qqnxglcontext.h \ - qqnxglbackingstore.h + HEADERS += qqnxglcontext.h LIBS += -lEGL } diff --git a/src/plugins/platforms/qnx/qqnxglbackingstore.cpp b/src/plugins/platforms/qnx/qqnxglbackingstore.cpp deleted file mode 100644 index 285142c616..0000000000 --- a/src/plugins/platforms/qnx/qqnxglbackingstore.cpp +++ /dev/null @@ -1,182 +0,0 @@ -/*************************************************************************** -** -** Copyright (C) 2011 - 2012 Research In Motion -** Contact: http://www.qt-project.org/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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, Nokia gives you certain additional -** rights. These rights are described in the Nokia 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qqnxglbackingstore.h" -#include "qqnxglcontext.h" -#include "qqnxwindow.h" -#include "qqnxscreen.h" - -#include - -#include -#include - -#include - -#include - -#ifdef QQNXGLBACKINGSTORE_DEBUG -#define qGLBackingStoreDebug qDebug -#else -#define qGLBackingStoreDebug QT_NO_QDEBUG_MACRO -#endif - -QT_BEGIN_NAMESPACE - -QQnxGLPaintDevice::QQnxGLPaintDevice(QWindow *window) - : QGLPaintDevice(), - m_window(0), - m_glContext(0) -{ - m_window = static_cast(window->handle()); - - // Extract the QPlatformOpenGLContext from the window - QPlatformOpenGLContext *platformOpenGLContext = m_window->platformOpenGLContext(); - - // Convert this to a QGLContext - m_glContext = QGLContext::fromOpenGLContext(platformOpenGLContext->context()); -} - -QQnxGLPaintDevice::~QQnxGLPaintDevice() -{ - // Cleanup GL context - delete m_glContext; -} - -QPaintEngine *QQnxGLPaintDevice::paintEngine() const -{ - // Select a paint engine based on configued OpenGL version - return qt_qgl_paint_engine(); -} - -QSize QQnxGLPaintDevice::size() const -{ - // Get size of EGL surface - return m_window->geometry().size(); -} - - -QQnxGLBackingStore::QQnxGLBackingStore(QWindow *window) - : QPlatformBackingStore(window), - m_openGLContext(0), - m_paintDevice(0), - m_requestedSize(), - m_size() -{ - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window; - - // Create an OpenGL paint device which in turn creates a QGLContext for us - m_paintDevice = new QQnxGLPaintDevice(window); - m_openGLContext = m_paintDevice->context()->contextHandle(); -} - -QQnxGLBackingStore::~QQnxGLBackingStore() -{ - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window(); - - // cleanup OpenGL paint device - delete m_paintDevice; -} - -void QQnxGLBackingStore::flush(QWindow *window, const QRegion ®ion, const QPoint &offset) -{ - Q_UNUSED(region); - Q_UNUSED(offset); - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window; - - // update the display with newly rendered content - m_openGLContext->swapBuffers(window); -} - -void QQnxGLBackingStore::resize(const QSize &size, const QRegion &staticContents) -{ - Q_UNUSED(staticContents); - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window() << ", s =" << size; - - // NOTE: defer resizing window buffers until next paint as - // resize() can be called multiple times before a paint occurs - m_requestedSize = size; -} - -void QQnxGLBackingStore::beginPaint(const QRegion ®ion) -{ - Q_UNUSED(region); - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window(); - - // resize EGL surface if window surface resized - if (m_size != m_requestedSize) { - resizeSurface(m_requestedSize); - } -} - -void QQnxGLBackingStore::endPaint(const QRegion ®ion) -{ - Q_UNUSED(region); - qGLBackingStoreDebug() << Q_FUNC_INFO << "w =" << window(); -} - -void QQnxGLBackingStore::resizeSurface(const QSize &size) -{ - // need to destroy surface so make sure its not current - bool restoreCurrent = false; - QQnxGLContext *platformContext = static_cast(m_openGLContext->handle()); - if (platformContext->isCurrent()) { - m_openGLContext->doneCurrent(); - restoreCurrent = true; - } - - // destroy old EGL surface - platformContext->destroySurface(); - - // resize window's buffers - static_cast(window()->handle())->setBufferSize(size); - - // re-create EGL surface with new size - m_size = size; - platformContext->createSurface(window()->handle()); - - // make context current again - if (restoreCurrent) { - m_openGLContext->makeCurrent(window()); - } -} - -QT_END_NAMESPACE diff --git a/src/plugins/platforms/qnx/qqnxglbackingstore.h b/src/plugins/platforms/qnx/qqnxglbackingstore.h deleted file mode 100644 index 78ee58f215..0000000000 --- a/src/plugins/platforms/qnx/qqnxglbackingstore.h +++ /dev/null @@ -1,95 +0,0 @@ -/*************************************************************************** -** -** Copyright (C) 2011 - 2012 Research In Motion -** Contact: http://www.qt-project.org/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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, Nokia gives you certain additional -** rights. These rights are described in the Nokia 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QQNXGLBACKINGSTORE_H -#define QQNXGLBACKINGSTORE_H - -#include -#include - -#include - -QT_BEGIN_NAMESPACE - -class QGLContext; -class QQnxGLContext; -class QQnxScreen; -class QQnxWindow; - -class QQnxGLPaintDevice : public QGLPaintDevice -{ -public: - QQnxGLPaintDevice(QWindow *window); - ~QQnxGLPaintDevice(); - - QPaintEngine *paintEngine() const; - QSize size() const; - QGLContext *context() const { return m_glContext; } - -private: - QQnxWindow *m_window; - QGLContext *m_glContext; -}; - -class QQnxGLBackingStore : public QPlatformBackingStore -{ -public: - QQnxGLBackingStore(QWindow *window); - ~QQnxGLBackingStore(); - - QPaintDevice *paintDevice() { return m_paintDevice; } - void flush(QWindow *window, const QRegion ®ion, const QPoint &offset); - void resize(const QSize &size, const QRegion &staticContents); - void beginPaint(const QRegion ®ion); - void endPaint(const QRegion ®ion); - - void resizeSurface(const QSize &size); - -private: - QOpenGLContext *m_openGLContext; - QQnxGLPaintDevice *m_paintDevice; - QSize m_requestedSize; - QSize m_size; -}; - -QT_END_NAMESPACE - -#endif // QQNXGLBACKINGSTORE_H diff --git a/src/plugins/platforms/qnx/qqnxintegration.cpp b/src/plugins/platforms/qnx/qqnxintegration.cpp index 391a17be27..6d0c2000f8 100644 --- a/src/plugins/platforms/qnx/qqnxintegration.cpp +++ b/src/plugins/platforms/qnx/qqnxintegration.cpp @@ -84,9 +84,7 @@ #include #if !defined(QT_NO_OPENGL) -#include "qqnxglbackingstore.h" #include "qqnxglcontext.h" - #include #endif @@ -117,9 +115,6 @@ QQnxIntegration::QQnxIntegration() #endif , m_services(0) , m_fontDatabase(new QGenericUnixFontDatabase()) -#if !defined(QT_NO_OPENGL) - , m_paintUsingOpenGL(false) -#endif #if defined(Q_OS_BLACKBERRY) , m_eventDispatcher(new QQnxEventDispatcherBlackberry()) , m_bpsEventFilter(0) @@ -301,12 +296,7 @@ QPlatformWindow *QQnxIntegration::createPlatformWindow(QWindow *window) const QPlatformBackingStore *QQnxIntegration::createPlatformBackingStore(QWindow *window) const { qIntegrationDebug() << Q_FUNC_INFO; -#if !defined(QT_NO_OPENGL) - if (paintUsingOpenGL()) - return new QQnxGLBackingStore(window); - else -#endif - return new QQnxRasterBackingStore(window); + return new QQnxRasterBackingStore(window); } #if !defined(QT_NO_OPENGL) diff --git a/src/plugins/platforms/qnx/qqnxintegration.h b/src/plugins/platforms/qnx/qqnxintegration.h index 96825679e0..fe2447c0ac 100644 --- a/src/plugins/platforms/qnx/qqnxintegration.h +++ b/src/plugins/platforms/qnx/qqnxintegration.h @@ -107,10 +107,6 @@ public: QVariant styleHint(StyleHint hint) const; -#if !defined(QT_NO_OPENGL) - bool paintUsingOpenGL() const { return m_paintUsingOpenGL; } -#endif - QPlatformServices *services() const; #if defined(Q_OS_BLACKBERRY) @@ -139,9 +135,6 @@ private: #endif QQnxServices *m_services; QPlatformFontDatabase *m_fontDatabase; -#if !defined(QT_NO_OPENGL) - bool m_paintUsingOpenGL; -#endif QAbstractEventDispatcher *m_eventDispatcher; #if defined(Q_OS_BLACKBERRY) QQnxBpsEventFilter *m_bpsEventFilter; -- cgit v1.2.3