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:
parent
5434295389
commit
d26ef66a66
@ -2,7 +2,11 @@ TARGET = qeglfs
|
|||||||
TEMPLATE = lib
|
TEMPLATE = lib
|
||||||
CONFIG += plugin
|
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
|
DESTDIR = $$QT.gui.plugins/platforms
|
||||||
|
|
||||||
|
@ -39,17 +39,19 @@
|
|||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <QtOpenGL/private/qgl_p.h>
|
|
||||||
|
|
||||||
#include "qeglfsbackingstore.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/QPlatformOpenGLContext>
|
||||||
#include <QtGui/QScreen>
|
#include <QtGui/QScreen>
|
||||||
|
|
||||||
#include <QtOpenGL/private/qglpaintdevice_p.h>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
#ifndef QT_NO_WIDGETS
|
||||||
class QEglFSPaintDevice : public QGLPaintDevice
|
class QEglFSPaintDevice : public QGLPaintDevice
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -73,15 +75,20 @@ private:
|
|||||||
QEglFSScreen *m_screen;
|
QEglFSScreen *m_screen;
|
||||||
QGLContext *m_context;
|
QGLContext *m_context;
|
||||||
};
|
};
|
||||||
|
#endif //QT_NO_WIDGETS
|
||||||
|
|
||||||
QEglFSBackingStore::QEglFSBackingStore(QWindow *window)
|
QEglFSBackingStore::QEglFSBackingStore(QWindow *window)
|
||||||
: QPlatformBackingStore(window)
|
: QPlatformBackingStore(window),
|
||||||
|
m_paintDevice(0)
|
||||||
{
|
{
|
||||||
#ifdef QEGL_EXTRA_DEBUG
|
#ifdef QEGL_EXTRA_DEBUG
|
||||||
qWarning("QEglBackingStore %p, %p", window, window->screen());
|
qWarning("QEglBackingStore %p, %p", window, window->screen());
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef QT_NO_WIDGETS
|
||||||
|
m_paintDevice = new QImage(0,0);
|
||||||
|
#else
|
||||||
m_paintDevice = new QEglFSPaintDevice(static_cast<QEglFSScreen *>(window->screen()->handle()));
|
m_paintDevice = new QEglFSPaintDevice(static_cast<QEglFSScreen *>(window->screen()->handle()));
|
||||||
|
#endif //QT_NO_WIDGETS
|
||||||
}
|
}
|
||||||
|
|
||||||
void QEglFSBackingStore::flush(QWindow *window, const QRegion ®ion, const QPoint &offset)
|
void QEglFSBackingStore::flush(QWindow *window, const QRegion ®ion, const QPoint &offset)
|
||||||
@ -92,7 +99,9 @@ void QEglFSBackingStore::flush(QWindow *window, const QRegion ®ion, const QPo
|
|||||||
#ifdef QEGL_EXTRA_DEBUG
|
#ifdef QEGL_EXTRA_DEBUG
|
||||||
qWarning("QEglBackingStore::flush %p", window);
|
qWarning("QEglBackingStore::flush %p", window);
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef QT_NO_WIDGETS
|
||||||
static_cast<QEglFSPaintDevice *>(m_paintDevice)->context()->swapBuffers();
|
static_cast<QEglFSPaintDevice *>(m_paintDevice)->context()->swapBuffers();
|
||||||
|
#endif //QT_NO_WIDGETS
|
||||||
}
|
}
|
||||||
|
|
||||||
void QEglFSBackingStore::resize(const QSize &size, const QRegion &staticContents)
|
void QEglFSBackingStore::resize(const QSize &size, const QRegion &staticContents)
|
||||||
|
@ -53,7 +53,7 @@ class QEglFSBackingStore : public QPlatformBackingStore
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QEglFSBackingStore(QWindow *window);
|
QEglFSBackingStore(QWindow *window);
|
||||||
~QEglFSBackingStore() {}
|
~QEglFSBackingStore() { delete m_paintDevice; }
|
||||||
|
|
||||||
QPaintDevice *paintDevice() { return m_paintDevice; }
|
QPaintDevice *paintDevice() { return m_paintDevice; }
|
||||||
void flush(QWindow *window, const QRegion ®ion, const QPoint &offset);
|
void flush(QWindow *window, const QRegion ®ion, const QPoint &offset);
|
||||||
|
Loading…
Reference in New Issue
Block a user