linuxfb: make linuxfb compile
authorGirish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Mon, 2 Jul 2012 10:01:17 +0000 (15:31 +0530)
committerQt by Nokia <qt-info@nokia.com>
Wed, 11 Jul 2012 04:06:04 +0000 (06:06 +0200)
The plugin now compiles, it is not known to work.

Change-Id: I8dd086eb7fc41c6e197debc2601eebba3404187c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
src/plugins/platforms/linuxfb/linuxfb.pro
src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp
src/plugins/platforms/linuxfb/qlinuxfbintegration.h
src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp [new file with mode: 0644]
src/plugins/platforms/linuxfb/qlinuxfbscreen.h [new file with mode: 0644]

index ff0105a..11b4a9c 100644 (file)
@@ -1,14 +1,13 @@
-TARGET = qlinuxfbgraphicssystem
+TARGET = qlinuxfb
 load(qt_plugin)
 
 DESTDIR = $$QT.gui.plugins/platforms
 
 QT += core-private gui-private platformsupport-private
 
-SOURCES = main.cpp qlinuxfbintegration.cpp
-HEADERS = qlinuxfbintegration.h
+SOURCES = main.cpp qlinuxfbintegration.cpp qlinuxfbscreen.cpp
+HEADERS = qlinuxfbintegration.h qlinuxfbscreen.h
 
-include(../../../platformsupport/fb_base/fb_base.pri)
 CONFIG += qpa/genericunixfontdatabase
 
 target.path += $$[QT_INSTALL_PLUGINS]/platforms
index ed19c1c..08cc02c 100644 (file)
 ****************************************************************************/
 
 #include "qlinuxfbintegration.h"
-#include "../fb_base/fb_base.h"
-#include "qgenericunixfontdatabase.h"
+#include "qlinuxfbscreen.h"
+
+#include <QtPlatformSupport/private/qgenericunixfontdatabase_p.h>
 #include <QtPlatformSupport/private/qgenericunixeventdispatcher_p.h>
+#include <QtPlatformSupport/private/qfbbackingstore_p.h>
+#include <QtPlatformSupport/private/qfbwindow_p.h>
+#include <QtPlatformSupport/private/qfbcursor_p.h>
+
 #include <QtGui/private/qpixmap_raster_p.h>
 #include <private/qcore_unix_p.h> // overrides QT_OPEN
 #include <qimage.h>
@@ -797,21 +802,20 @@ QPlatformPixmap *QLinuxFbIntegration::createPlatformPixmap(QPlatformPixmap::Pixe
     return new QRasterPlatformPixmap(type);
 }
 
-QWindowSurface *QLinuxFbIntegration::createWindowSurface(QWidget *widget, WId) const
+QPlatformBackingStore *QLinuxFbIntegration::createPlatformBackingStore(QWindow *window) const
 {
-    QFbWindowSurface * surface =
-        new QFbWindowSurface(mPrimaryScreen, widget);
+    QFbBackingStore *surface = new QFbBackingStore(mPrimaryScreen, window);
     return surface;
 }
 
-QPlatformWindow *QLinuxFbIntegration::createPlatformWindow(QWidget *widget, WId /*winId*/) const
+QPlatformWindow *QLinuxFbIntegration::createPlatformWindow(QWindow *window) const
 {
-    QFbWindow *w = new QFbWindow(widget);
+    QFbWindow *w = new QFbWindow(window);
     mPrimaryScreen->addWindow(w);
     return w;
 }
 
-QAbstractEventDispatcher *QMinimalIntegration::createEventDispatcher() const
+QAbstractEventDispatcher *QLinuxFbIntegration::guiThreadEventDispatcher() const
 {
     return createUnixEventDispatcher();
 }
@@ -821,61 +825,4 @@ QPlatformFontDatabase *QLinuxFbIntegration::fontDatabase() const
     return fontDb;
 }
 
-QLinuxFbScreen::QLinuxFbScreen(uchar * d, int w,
-    int h, int lstep, QImage::Format screenFormat) : compositePainter(0)
-{
-    data = d;
-    mGeometry = QRect(0,0,w,h);
-    bytesPerLine = lstep;
-    mFormat = screenFormat;
-    mDepth = 16;
-    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
-                              mFormat);
-    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
-                              bytesPerLine, mFormat);
-    cursor = new QPlatformSoftwareCursor(this);
-}
-
-void QLinuxFbScreen::setGeometry(QRect rect)
-{
-    mGeometry = rect;
-    delete mFbScreenImage;
-    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
-                           bytesPerLine, mFormat);
-    delete compositePainter;
-    compositePainter = 0;
-
-    delete mScreenImage;
-    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
-                              mFormat);
-}
-
-void QLinuxFbScreen::setFormat(QImage::Format format)
-{
-    mFormat = format;
-    delete mFbScreenImage;
-    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
-                             bytesPerLine, mFormat);
-    delete compositePainter;
-    compositePainter = 0;
-
-    delete mScreenImage;
-    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
-                              mFormat);
-}
-
-QRegion QLinuxFbScreen::doRedraw()
-{
-    QRegion touched;
-    touched = QFbScreen::doRedraw();
-
-    if (!compositePainter) {
-        compositePainter = new QPainter(mFbScreenImage);
-    }
-
-    QVector<QRect> rects = touched.rects();
-    for (int i = 0; i < rects.size(); i++)
-        compositePainter->drawImage(rects[i], *mScreenImage, rects[i]);
-    return touched;
-}
 QT_END_NAMESPACE
index 200cd81..430375d 100644 (file)
 **
 ****************************************************************************/
 
-#ifndef QGRAPHICSSYSTEM_LINUXFB_H
-#define QGRAPHICSSYSTEM_LINUXFB_H
+#ifndef QLINUXFBINTEGRATION_H
+#define QLINUXFBINTEGRATION_H
 
 #include <qpa/qplatformintegration.h>
-#include "../fb_base/fb_base.h"
 
-QT_BEGIN_NAMESPACE
-
-class QLinuxFbScreen : public QFbScreen
-{
-    Q_OBJECT
-public:
-    QLinuxFbScreen(uchar * d, int w, int h, int lstep, QImage::Format screenFormat);
-    void setGeometry(QRect rect);
-    void setFormat(QImage::Format format);
-
-public slots:
-    QRegion doRedraw();
+#include <QtPlatformSupport/private/qfbscreen_p.h>
 
-private:
-    QImage * mFbScreenImage;
-    uchar * data;
-    int bytesPerLine;
-
-    QPainter *compositePainter;
-};
+QT_BEGIN_NAMESPACE
 
 class QLinuxFbIntegrationPrivate;
 struct fb_cmap;
 struct fb_var_screeninfo;
 struct fb_fix_screeninfo;
 class QAbstractEventDispatcher;
+class QLinuxFbScreen;
 
 class QLinuxFbIntegration : public QPlatformIntegration
 {
@@ -81,9 +64,9 @@ public:
     bool hasCapability(QPlatformIntegration::Capability cap) const;
 
     QPlatformPixmap *createPlatformPixmap(QPlatformPixmap::PixelType type) const;
-    QPlatformWindow *createPlatformWindow(QWidget *widget, WId WinId) const;
-    QWindowSurface *createWindowSurface(QWidget *widget, WId WinId) const;
-    QAbstractEventDispatcher *createEventDispatcher() const;
+    QPlatformWindow *createPlatformWindow(QWindow *window) const;
+    QPlatformBackingStore *createPlatformBackingStore(QWindow *window) const;
+    QAbstractEventDispatcher *guiThreadEventDispatcher() const;
 
     QList<QPlatformScreen *> screens() const { return mScreens; }
 
@@ -134,4 +117,5 @@ private:
 
 QT_END_NAMESPACE
 
-#endif
+#endif // QLINUXFBINTEGRATION_H
+
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp b/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp
new file mode 100644 (file)
index 0000000..729fd87
--- /dev/null
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** 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 "qlinuxfbscreen.h"
+#include <QtPlatformSupport/private/qfbcursor_p.h>
+#include <QtGui/QPainter>
+
+QT_BEGIN_NAMESPACE
+
+QLinuxFbScreen::QLinuxFbScreen(uchar * d, int w,
+    int h, int lstep, QImage::Format screenFormat) : compositePainter(0)
+{
+    data = d;
+    mGeometry = QRect(0,0,w,h);
+    bytesPerLine = lstep;
+    mFormat = screenFormat;
+    mDepth = 16;
+    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
+                              mFormat);
+    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
+                              bytesPerLine, mFormat);
+    cursor = new QFbCursor(this);
+}
+
+void QLinuxFbScreen::setGeometry(QRect rect)
+{
+    mGeometry = rect;
+    delete mFbScreenImage;
+    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
+                           bytesPerLine, mFormat);
+    delete compositePainter;
+    compositePainter = 0;
+
+    delete mScreenImage;
+    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
+                              mFormat);
+}
+
+void QLinuxFbScreen::setFormat(QImage::Format format)
+{
+    mFormat = format;
+    delete mFbScreenImage;
+    mFbScreenImage = new QImage(data, mGeometry.width(), mGeometry.height(),
+                             bytesPerLine, mFormat);
+    delete compositePainter;
+    compositePainter = 0;
+
+    delete mScreenImage;
+    mScreenImage = new QImage(mGeometry.width(), mGeometry.height(),
+                              mFormat);
+}
+
+QRegion QLinuxFbScreen::doRedraw()
+{
+    QRegion touched;
+    touched = QFbScreen::doRedraw();
+
+    if (!compositePainter) {
+        compositePainter = new QPainter(mFbScreenImage);
+    }
+
+    QVector<QRect> rects = touched.rects();
+    for (int i = 0; i < rects.size(); i++)
+        compositePainter->drawImage(rects[i], *mScreenImage, rects[i]);
+    return touched;
+}
+
+QT_END_NAMESPACE
+
diff --git a/src/plugins/platforms/linuxfb/qlinuxfbscreen.h b/src/plugins/platforms/linuxfb/qlinuxfbscreen.h
new file mode 100644 (file)
index 0000000..6181ee9
--- /dev/null
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** 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 QLINUXFBSCREEN_H
+#define QLINUXFBSCREEN_H
+
+#include <QtPlatformSupport/private/qfbscreen_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QPainter;
+
+class QLinuxFbScreen : public QFbScreen
+{
+    Q_OBJECT
+public:
+    QLinuxFbScreen(uchar * d, int w, int h, int lstep, QImage::Format screenFormat);
+    void setGeometry(QRect rect);
+    void setFormat(QImage::Format format);
+
+public slots:
+    QRegion doRedraw();
+
+private:
+    QImage *mFbScreenImage;
+    uchar *data;
+    int bytesPerLine;
+
+    QPainter *compositePainter;
+};
+
+QT_END_NAMESPACE
+
+#endif // QLINUXFBSCREEN_H
+