directfb: Move QDirectFbScreen into a separate file
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>
Fri, 18 Nov 2011 13:30:00 +0000 (21:30 +0800)
committerQt by Nokia <qt-info@nokia.com>
Thu, 24 Nov 2011 07:29:09 +0000 (08:29 +0100)
The screen handling will get a bit more complex due the integration
of different ways to do OpenGL. Move to a new file.

Change-Id: Ibe3e397d13da1b270ec4afaf046d28be50e976f9
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
src/plugins/platforms/directfb/directfb.pro
src/plugins/platforms/directfb/qdirectfbglcontext.h
src/plugins/platforms/directfb/qdirectfbintegration.cpp
src/plugins/platforms/directfb/qdirectfbintegration.h
src/plugins/platforms/directfb/qdirectfbscreen.cpp [new file with mode: 0644]
src/plugins/platforms/directfb/qdirectfbscreen.h [new file with mode: 0644]

index af95bd3..1fe8d0d 100644 (file)
@@ -21,14 +21,16 @@ SOURCES = main.cpp \
     qdirectfbconvenience.cpp \
     qdirectfbinput.cpp \
     qdirectfbcursor.cpp \
-    qdirectfbwindow.cpp
+    qdirectfbwindow.cpp \
+    qdirectfbscreen.cpp
 HEADERS = qdirectfbintegration.h \
     qdirectfbbackingstore.h \
     qdirectfbblitter.h \
     qdirectfbconvenience.h \
     qdirectfbinput.h \
     qdirectfbcursor.h \
-    qdirectfbwindow.h
+    qdirectfbwindow.h \
+    qdirectfbscreen.h
 
 # ### port the GL context
 
index 97bab0d..2311ff2 100644 (file)
 
 #include "qdirectfbconvenience.h"
 
-class QDirectFbGLContext : public QPlatformOpenGLContext
-{
-public:
-    explicit QDirectFbGLContext(IDirectFBGL *glContext);
-
-    void makeCurrent();
-    void doneCurrent();
-    void swapBuffers();
-    void *getProcAddress(const QString &procName);
-
-    QPlatformWindowFormat platformWindowFormat() const;
-
-
-private:
-    IDirectFBGL *m_dfbGlContext;
-
-    QPlatformWindowFormat m_windowFormat;
-
-};
 
 #endif // QDIRECTFBGLCONTEXT_H
index 64533da..bb729a6 100644 (file)
 
 QT_BEGIN_NAMESPACE
 
-QDirectFbScreen::QDirectFbScreen(int display)
-    : QPlatformScreen()
-    , m_layer(QDirectFbConvenience::dfbDisplayLayer(display))
-{
-    m_layer->SetCooperativeLevel(m_layer.data(), DLSCL_SHARED);
-
-    DFBDisplayLayerConfig config;
-    m_layer->GetConfiguration(m_layer.data(), &config);
-
-    m_format = QDirectFbConvenience::imageFormatFromSurfaceFormat(config.pixelformat, config.surface_caps);
-    m_geometry = QRect(0,0,config.width,config.height);
-    const int dpi = 72;
-    const qreal inch = 25.4;
-    m_depth = QDirectFbConvenience::colorDepthForSurface(config.pixelformat);
-    m_physicalSize = QSizeF(config.width, config.height) * inch / dpi;
-
-    m_cursor.reset(new QDirectFBCursor(this));
-}
-
 QDirectFbIntegration::QDirectFbIntegration()
     : m_fontDb(new QGenericUnixFontDatabase())
     , m_eventDispatcher(createUnixEventDispatcher())
index 837b162..4e8a867 100644 (file)
@@ -43,6 +43,7 @@
 #define QPLATFORMINTEGRATION_DIRECTFB_H
 
 #include "qdirectfbinput.h"
+#include "qdirectfbscreen.h"
 
 #include <QtGui/QPlatformIntegration>
 #include <directfb.h>
@@ -52,29 +53,6 @@ QT_BEGIN_NAMESPACE
 
 class QThread;
 class QAbstractEventDispatcher;
-class QDirectFBCursor;
-
-class QDirectFbScreen : public QPlatformScreen
-{
-public:
-    QDirectFbScreen(int display);
-
-    QRect geometry() const { return m_geometry; }
-    int depth() const { return m_depth; }
-    QImage::Format format() const { return m_format; }
-    QSizeF physicalSize() const { return m_physicalSize; }
-
-public:
-    QRect m_geometry;
-    int m_depth;
-    QImage::Format m_format;
-    QSizeF m_physicalSize;
-
-    QDirectFBPointer<IDirectFBDisplayLayer> m_layer;
-
-private:
-    QScopedPointer<QDirectFBCursor> m_cursor;
-};
 
 class QDirectFbIntegration : public QPlatformIntegration
 {
diff --git a/src/plugins/platforms/directfb/qdirectfbscreen.cpp b/src/plugins/platforms/directfb/qdirectfbscreen.cpp
new file mode 100644 (file)
index 0000000..fbc3349
--- /dev/null
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** 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 "qdirectfbscreen.h"
+#include "qdirectfbcursor.h"
+
+QT_BEGIN_NAMESPACE
+
+QDirectFbScreen::QDirectFbScreen(int display)
+    : QPlatformScreen()
+    , m_layer(QDirectFbConvenience::dfbDisplayLayer(display))
+{
+    m_layer->SetCooperativeLevel(m_layer.data(), DLSCL_SHARED);
+
+    DFBDisplayLayerConfig config;
+    m_layer->GetConfiguration(m_layer.data(), &config);
+
+    m_format = QDirectFbConvenience::imageFormatFromSurfaceFormat(config.pixelformat, config.surface_caps);
+    m_geometry = QRect(0, 0, config.width, config.height);
+    const int dpi = 72;
+    const qreal inch = 25.4;
+    m_depth = QDirectFbConvenience::colorDepthForSurface(config.pixelformat);
+    m_physicalSize = QSizeF(config.width, config.height) * inch / dpi;
+
+    m_cursor.reset(new QDirectFBCursor(this));
+}
+
+
+QT_END_NAMESPACE
diff --git a/src/plugins/platforms/directfb/qdirectfbscreen.h b/src/plugins/platforms/directfb/qdirectfbscreen.h
new file mode 100644 (file)
index 0000000..2b2f8d1
--- /dev/null
@@ -0,0 +1,79 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** 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 QDIRECTFBSCREEN_H
+#define QDIRECTFBSCREEN_H
+
+#include "qdirectfbconvenience.h"
+
+#include <QtGui/QPlatformIntegration>
+
+#include <directfb.h>
+
+QT_BEGIN_NAMESPACE
+
+class QDirectFBCursor;
+
+class QDirectFbScreen : public QPlatformScreen
+{
+public:
+    QDirectFbScreen(int display);
+
+    QRect geometry() const { return m_geometry; }
+    int depth() const { return m_depth; }
+    QImage::Format format() const { return m_format; }
+    QSizeF physicalSize() const { return m_physicalSize; }
+
+public:
+    QRect m_geometry;
+    int m_depth;
+    QImage::Format m_format;
+    QSizeF m_physicalSize;
+
+    QDirectFBPointer<IDirectFBDisplayLayer> m_layer;
+
+private:
+    QScopedPointer<QDirectFBCursor> m_cursor;
+};
+
+QT_END_NAMESPACE
+
+#endif