Remove widgets dependency from eglfs

eglfs uses the (old) OpenGL paint engine for paint operations. This drags in a
QWidget dependency and hence everything bar the kitchen sink. This change
gets eglfs buildable without widget support although anything which relies
on a QPaintDevice will end up rendering nothing to the screen. (Similar
to the QWS simplegl driver)

Change-Id: If7fcdb79038ef7568e771402fd1667bc0318ff5f
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
This commit is contained in:
Donald Carr 2012-03-06 22:35:30 +00:00 committed by Qt by Nokia
parent 5434295389
commit d26ef66a66
3 changed files with 21 additions and 8 deletions

View File

@ -2,7 +2,11 @@ TARGET = qeglfs
TEMPLATE = lib
CONFIG += plugin
QT += opengl core-private gui-private opengl-private platformsupport-private widgets-private
QT += core-private gui-private platformsupport-private
!contains(QT_CONFIG, no-widgets) {
QT += opengl opengl-private widgets-private
}
DESTDIR = $$QT.gui.plugins/platforms

View File

@ -39,17 +39,19 @@
**
****************************************************************************/
#include <QtOpenGL/private/qgl_p.h>
#include "qeglfsbackingstore.h"
#ifndef QT_NO_WIDGETS
#include <QtOpenGL/private/qgl_p.h>
#include <QtOpenGL/private/qglpaintdevice_p.h>
#endif //QT_NO_WIDGETS
#include <QtGui/QPlatformOpenGLContext>
#include <QtGui/QScreen>
#include <QtOpenGL/private/qglpaintdevice_p.h>
QT_BEGIN_NAMESPACE
#ifndef QT_NO_WIDGETS
class QEglFSPaintDevice : public QGLPaintDevice
{
public:
@ -73,15 +75,20 @@ private:
QEglFSScreen *m_screen;
QGLContext *m_context;
};
#endif //QT_NO_WIDGETS
QEglFSBackingStore::QEglFSBackingStore(QWindow *window)
: QPlatformBackingStore(window)
: QPlatformBackingStore(window),
m_paintDevice(0)
{
#ifdef QEGL_EXTRA_DEBUG
qWarning("QEglBackingStore %p, %p", window, window->screen());
#endif
#ifdef QT_NO_WIDGETS
m_paintDevice = new QImage(0,0);
#else
m_paintDevice = new QEglFSPaintDevice(static_cast<QEglFSScreen *>(window->screen()->handle()));
#endif //QT_NO_WIDGETS
}
void QEglFSBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
@ -92,7 +99,9 @@ void QEglFSBackingStore::flush(QWindow *window, const QRegion &region, const QPo
#ifdef QEGL_EXTRA_DEBUG
qWarning("QEglBackingStore::flush %p", window);
#endif
#ifndef QT_NO_WIDGETS
static_cast<QEglFSPaintDevice *>(m_paintDevice)->context()->swapBuffers();
#endif //QT_NO_WIDGETS
}
void QEglFSBackingStore::resize(const QSize &size, const QRegion &staticContents)

View File

@ -53,7 +53,7 @@ class QEglFSBackingStore : public QPlatformBackingStore
{
public:
QEglFSBackingStore(QWindow *window);
~QEglFSBackingStore() {}
~QEglFSBackingStore() { delete m_paintDevice; }
QPaintDevice *paintDevice() { return m_paintDevice; }
void flush(QWindow *window, const QRegion &region, const QPoint &offset);