summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/image/qpixmap_blitter.cpp10
-rw-r--r--src/gui/image/qpixmap_blitter_p.h3
-rw-r--r--src/gui/kernel/qapplication_p.h4
-rw-r--r--src/gui/kernel/qplatformintegration_qpa.cpp3
-rw-r--r--src/gui/kernel/qplatformintegration_qpa.h2
-rw-r--r--src/gui/painting/painting.pri6
-rw-r--r--src/gui/painting/qblittable_p.h3
-rw-r--r--src/gui/painting/qgraphicssystem.cpp3
-rw-r--r--src/gui/painting/qgraphicssystem_p.h1
-rw-r--r--src/gui/painting/qwindowsurface_rasterblittable.cpp26
-rw-r--r--src/gui/painting/qwindowsurface_rasterblittable_p.h21
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/blittableqvfb.pro28
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/main.cpp81
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/qblittable_image.h48
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/qgraphicssystem_blittableqvfb.h47
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/qscreen_blittableqvfb.h14
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.cpp0
-rw-r--r--src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.h36
-rw-r--r--src/plugins/graphicssystems/blittable/blittable.pro11
-rw-r--r--src/plugins/graphicssystems/blittable/main.cpp73
-rw-r--r--src/plugins/graphicssystems/blittable/qblittable_image.h48
-rw-r--r--src/plugins/graphicssystems/blittable/qgraphicssystem_blittable.h53
-rw-r--r--src/plugins/platforms/directfb/qdirectfbblitter.h6
-rw-r--r--src/plugins/platforms/directfb/qdirectfbintegration.cpp2
-rw-r--r--src/plugins/platforms/directfb/qdirectfbwindowsurface.cpp2
25 files changed, 21 insertions, 510 deletions
diff --git a/src/gui/image/qpixmap_blitter.cpp b/src/gui/image/qpixmap_blitter.cpp
index d91a269..9a7ebe2 100644
--- a/src/gui/image/qpixmap_blitter.cpp
+++ b/src/gui/image/qpixmap_blitter.cpp
@@ -14,8 +14,8 @@ QT_BEGIN_NAMESPACE
static int global_ser_no = 0;
-QBlittablePixmapData::QBlittablePixmapData(QPixmapData::PixelType type)
- : QPixmapData(type,BlitterClass), m_engine(0), m_blittable(0)
+QBlittablePixmapData::QBlittablePixmapData()
+ : QPixmapData(QPixmapData::PixmapType,BlitterClass), m_engine(0), m_blittable(0)
#ifdef QT_BLITTER_RASTEROVERLAY
,m_rasterOverlay(0), m_unmergedCopy(0)
#endif //QT_BLITTER_RASTEROVERLAY
@@ -37,11 +37,7 @@ QBlittable *QBlittablePixmapData::blittable() const
{
if (!m_blittable) {
QBlittablePixmapData *that = const_cast<QBlittablePixmapData *>(this);
-#ifdef Q_WS_QPA //####jl: graphics system nor platformintegration should have createBlittable
- that->m_blittable = QApplicationPrivate::platformIntegration()->createBlittable(QSize(w,h));
-#else
- that->m_blittable = QApplicationPrivate::graphicsSystem()->createBlittable(QSize(w,h));
-#endif
+ that->m_blittable = this->createBlittable(QSize(w,h));
}
return m_blittable;
diff --git a/src/gui/image/qpixmap_blitter_p.h b/src/gui/image/qpixmap_blitter_p.h
index b9f7630..e404199 100644
--- a/src/gui/image/qpixmap_blitter_p.h
+++ b/src/gui/image/qpixmap_blitter_p.h
@@ -11,9 +11,10 @@ class Q_GUI_EXPORT QBlittablePixmapData : public QPixmapData
{
// Q_DECLARE_PRIVATE(QBlittablePixmapData);
public:
- QBlittablePixmapData(QPixmapData::PixelType type);
+ QBlittablePixmapData();
~QBlittablePixmapData();
+ virtual QBlittable *createBlittable(const QSize &size) const = 0;
QBlittable *blittable() const;
void setBlittable(QBlittable *blittable);
diff --git a/src/gui/kernel/qapplication_p.h b/src/gui/kernel/qapplication_p.h
index 0602d82..de97f62 100644
--- a/src/gui/kernel/qapplication_p.h
+++ b/src/gui/kernel/qapplication_p.h
@@ -432,8 +432,10 @@ public:
static QPalette *set_pal;
static QGraphicsSystem *graphics_system;
static QString graphics_system_name;
- static QPlatformIntegration *platform_integration;
static bool runtime_graphics_system;
+#ifdef Q_WS_QPA
+ static QPlatformIntegration *platform_integration;
+#endif
private:
static QFont *app_font; // private for a reason! Always use QApplication::font() instead!
diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp
index b3f46ce..b4987f2 100644
--- a/src/gui/kernel/qplatformintegration_qpa.cpp
+++ b/src/gui/kernel/qplatformintegration_qpa.cpp
@@ -43,9 +43,6 @@
QT_BEGIN_NAMESPACE
-QBlittable *QPlatformIntegration::createBlittable(const QSize &) const
-{ return 0; }
-
QPixmap QPlatformIntegration::grabWindow(WId window, int x, int y, int width, int height) const
{
Q_UNUSED(window);
diff --git a/src/gui/kernel/qplatformintegration_qpa.h b/src/gui/kernel/qplatformintegration_qpa.h
index 11377e7..f6f10a8 100644
--- a/src/gui/kernel/qplatformintegration_qpa.h
+++ b/src/gui/kernel/qplatformintegration_qpa.h
@@ -66,7 +66,6 @@ public:
virtual QPixmapData *createPixmapData(QPixmapData::PixelType type) const = 0;
virtual QPlatformWindow *createPlatformWindow(QWidget *widget, WId winId = 0) const = 0;
virtual QWindowSurface *createWindowSurface(QWidget *widget, WId winId) const = 0;
- virtual QBlittable *createBlittable(const QSize &size) const;
virtual void moveToScreen(QWidget *window, int screen) {Q_UNUSED(window); Q_UNUSED(screen);}
// Window System functions
@@ -77,6 +76,7 @@ public:
// Experimental
virtual QPlatformEventLoopIntegration *createEventLoopIntegration() const;
+// should it be hasGLContext?
virtual bool hasOpenGL() const;
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 7ef6598..92c4e84 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -125,16 +125,14 @@ embedded {
painting/qgraphicssystem_runtime_p.h \
painting/qgraphicssystemfactory_p.h \
painting/qgraphicssystemplugin_p.h \
- painting/qwindowsurface_raster_p.h \
- painting/qwindowsurface_rasterblittable_p.h \
+ painting/qwindowsurface_raster_p.h
SOURCES += \
painting/qgraphicssystem_raster.cpp \
painting/qgraphicssystem_runtime.cpp \
painting/qgraphicssystemfactory.cpp \
painting/qgraphicssystemplugin.cpp \
- painting/qwindowsurface_raster.cpp \
- painting/qwindowsurface_rasterblittable.cpp \
+ painting/qwindowsurface_raster.cpp
}
unix:x11 {
diff --git a/src/gui/painting/qblittable_p.h b/src/gui/painting/qblittable_p.h
index 645f37e..71e80af 100644
--- a/src/gui/painting/qblittable_p.h
+++ b/src/gui/painting/qblittable_p.h
@@ -2,7 +2,8 @@
#define QBLITTABLE_P_H
#include <QtCore/qsize.h>
-#include <QtGui/qpixmap.h>
+#include <QtGui/private/qpixmap_blitter_p.h>
+
#ifndef QT_NO_BLITTABLE
QT_BEGIN_NAMESPACE
diff --git a/src/gui/painting/qgraphicssystem.cpp b/src/gui/painting/qgraphicssystem.cpp
index a03bdab..f594136 100644
--- a/src/gui/painting/qgraphicssystem.cpp
+++ b/src/gui/painting/qgraphicssystem.cpp
@@ -63,9 +63,6 @@ QGraphicsSystem::~QGraphicsSystem()
{
}
-QBlittable *QGraphicsSystem::createBlittable(const QSize &) const
-{ return 0; }
-
QPixmapData *QGraphicsSystem::createDefaultPixmapData(QPixmapData::PixelType type)
{
#ifdef Q_WS_QWS
diff --git a/src/gui/painting/qgraphicssystem_p.h b/src/gui/painting/qgraphicssystem_p.h
index 0d84886..a75ea61 100644
--- a/src/gui/painting/qgraphicssystem_p.h
+++ b/src/gui/painting/qgraphicssystem_p.h
@@ -70,7 +70,6 @@ public:
virtual QPixmapData *createPixmapData(QPixmapData::PixelType type) const = 0;
virtual QPixmapData *createPixmapData(QPixmapData *origin);
virtual QWindowSurface *createWindowSurface(QWidget *widget) const = 0;
- virtual QBlittable *createBlittable(const QSize &size) const;
virtual ~QGraphicsSystem();
diff --git a/src/gui/painting/qwindowsurface_rasterblittable.cpp b/src/gui/painting/qwindowsurface_rasterblittable.cpp
deleted file mode 100644
index 56a79ba..0000000
--- a/src/gui/painting/qwindowsurface_rasterblittable.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-#include "qwindowsurface_rasterblittable_p.h"
-
-#include <private/qpaintengine_blitter_p.h>
-#include <private/qpixmap_blitter_p.h>
-
-QRasterBlittableWindowSurface::QRasterBlittableWindowSurface(QWidget *widget)
- : QRasterWindowSurface(widget),
- m_currentImage(0),
- m_blittable(0),
- m_pmData(new QBlittablePixmapData(QPixmapData::PixmapType)),
- m_pixmap(new QPixmap(m_pmData))
-{
-}
-
-QPaintDevice *QRasterBlittableWindowSurface::paintDevice()
-{
- QPaintDevice *device = QRasterWindowSurface::paintDevice();
- if (m_currentImage != device) {
- if (device->devType() == QInternal::Image) {
- m_currentImage = static_cast<QImage *>(device);
- m_blittable = createBlittable(m_currentImage);
- m_pmData->setBlittable(m_blittable);
- }
- }
- return m_pixmap;
-}
diff --git a/src/gui/painting/qwindowsurface_rasterblittable_p.h b/src/gui/painting/qwindowsurface_rasterblittable_p.h
deleted file mode 100644
index 1e697c7..0000000
--- a/src/gui/painting/qwindowsurface_rasterblittable_p.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <private/qwindowsurface_raster_p.h>
-#include <private/qpixmapdata_p.h>
-
-class QBlittable;
-class QBlittablePixmapData;
-
-class Q_GUI_EXPORT QRasterBlittableWindowSurface : public QRasterWindowSurface
-{
-public:
- QRasterBlittableWindowSurface(QWidget *widget);
-
- virtual QBlittable *createBlittable(QImage *rasterSurface) = 0;
-
- QPaintDevice *paintDevice();
-
-private:
- QImage *m_currentImage;
- QBlittable *m_blittable;
- QBlittablePixmapData *m_pmData;
- QPixmap *m_pixmap;
-};
diff --git a/src/plugins/gfxdrivers/blittableqvfb/blittableqvfb.pro b/src/plugins/gfxdrivers/blittableqvfb/blittableqvfb.pro
deleted file mode 100644
index d6a2018..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/blittableqvfb.pro
+++ /dev/null
@@ -1,28 +0,0 @@
-TARGET = qscreenblittablevfb
-include(../../qpluginbase.pri)
-
-DEFINES += QT_QWS_QVFB QT_QWS_MOUSE_QVFB QT_QWS_KBD_QVFB
-
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/gfxdrivers
-
-HEADERS = qgraphicssystem_blittableqvfb.h \
- qscreen_blittableqvfb.h \
- qwindowsurface_qwsblittable.h \
- qblittable_image.h
-
-SOURCES = main.cpp \
- qwindowsurface_qwsblittable.cpp
-
-#include qvfb sources
-HEADERS += \
- $$QT_SOURCE_TREE/src/gui/embedded/qscreenvfb_qws.h \
- $$QT_SOURCE_TREE/src/gui/embedded/qkbdvfb_qws.h \
- $$QT_SOURCE_TREE/src/gui/embedded/qmousevfb_qws.h
-
-SOURCES += \
- $$QT_SOURCE_TREE/src/gui/embedded/qscreenvfb_qws.cpp \
- $$QT_SOURCE_TREE/src/gui/embedded/qkbdvfb_qws.cpp \
- $$QT_SOURCE_TREE/src/gui/embedded/qmousevfb_qws.cpp
-
-target.path += $$[QT_INSTALL_PLUGINS]/gfxdrivers
-INSTALLS += target
diff --git a/src/plugins/gfxdrivers/blittableqvfb/main.cpp b/src/plugins/gfxdrivers/blittableqvfb/main.cpp
deleted file mode 100644
index b6d2603..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/main.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <qscreendriverplugin_qws.h>
-#include <qstringlist.h>
-#include "qscreen_blittableqvfb.h"
-
-#ifndef QT_NO_LIBRARY
-QT_BEGIN_NAMESPACE
-
-class ScreenBlittableVfbDriver : public QScreenDriverPlugin
-{
-public:
- ScreenBlittableVfbDriver();
-
- QStringList keys() const;
- QScreen *create(const QString&, int displayId);
-};
-
-ScreenBlittableVfbDriver::ScreenBlittableVfbDriver()
-: QScreenDriverPlugin()
-{
-}
-
-QStringList ScreenBlittableVfbDriver::keys() const
-{
- QStringList list;
- list << "BlittableQVFb";
- return list;
-}
-
-QScreen* ScreenBlittableVfbDriver::create(const QString& driver, int displayId)
-{
- if (driver.toLower() == "blittableqvfb")
- return new QBlittableVFbScreen(displayId);
-
- return 0;
-}
-
-Q_EXPORT_PLUGIN2(qscreenblittablevfb, ScreenBlittableVfbDriver)
-
-QT_END_NAMESPACE
-#endif //QT_NO_LIBRARY
diff --git a/src/plugins/gfxdrivers/blittableqvfb/qblittable_image.h b/src/plugins/gfxdrivers/blittableqvfb/qblittable_image.h
deleted file mode 100644
index 3f8dc69..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/qblittable_image.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <qimage.h>
-
-#include <private/qblittable_p.h>
-
-
-class QImageBlittable : public QBlittable
-{
-public:
- QImageBlittable(QImage *image, bool deleteImage)
- : QBlittable(image->size(), QBlittable::Capabilities(QBlittable::SolidRectCapability
- |QBlittable::SourcePixmapCapability
- |QBlittable::SourceOverPixmapCapability
- |QBlittable::SourceOverScaledPixmapCapability)),
- m_image(image), m_deleteImage(deleteImage)
- {
-
- }
-
- ~QImageBlittable() {
- if (m_deleteImage)
- delete m_image;
- }
-
- void fillRect(const QRectF &rect, const QColor &color)
- {
- QPainter p(lock());
- p.fillRect(rect,color);
- }
- void drawPixmap(const QRectF &rect, const QPixmap &pixmap, const QRectF &source)
- {
- //here it is possible to do a pixmap.pixmapData()->buffer()
- //but is like this to show how to get the the blitter
- QPixmapData *data = pixmap.pixmapData();
- Q_ASSERT(data->width() && data->height());
- Q_ASSERT(data->classId() == QPixmapData::BlitterClass);
- QBlittablePixmapData *blittableData = static_cast<QBlittablePixmapData*>(data);
-
- QPainter p(lock());
- p.drawImage(rect, *blittableData->blittable()->lock(),source);
- }
-
-protected:
- QImage *doLock() { return m_image; }
- void doUnlock() { }
-private:
- QImage *m_image;
- bool m_deleteImage;
-};
diff --git a/src/plugins/gfxdrivers/blittableqvfb/qgraphicssystem_blittableqvfb.h b/src/plugins/gfxdrivers/blittableqvfb/qgraphicssystem_blittableqvfb.h
deleted file mode 100644
index 89940d0..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/qgraphicssystem_blittableqvfb.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#include <private/qgraphicssystem_p.h>
-#include <private/qpixmap_blitter_p.h>
-#include <private/qpixmap_raster_p.h>
-#include <QScreen>
-
-#include "qwindowsurface_qwsblittable.h"
-#include "qblittable_image.h"
-#include <qapplication.h>
-
-class QBlittableVFbGraphicsSystem : public QGraphicsSystem
-{
-public:
- QPixmapData *createPixmapData(QPixmapData::PixelType type) const
- {
- if (type == QPixmapData::PixmapType) {
- return new QBlittablePixmapData(type);
- } else {
- return new QRasterPixmapData(type);
- }
- }
-
- QWindowSurface *createWindowSurface(QWidget *widget) const
- {
- if (QApplication::type() == QApplication::GuiServer)
- return new QWSBlittableMemSurface(widget);
- else
- return QScreen::instance()->createSurface(widget);
- }
-
- QBlittable *createBlittable(const QSize &size) const
- {
- QImage *image = new QImage(size,QImage::Format_ARGB32);
- return new QImageBlittable(image,true);
- }
-
- static QGraphicsSystem *instance()
- {
- static QGraphicsSystem *system = 0;
- if (!system) {
- system = new QBlittableVFbGraphicsSystem;
- }
- return system;
- }
-
-private:
- QBlittableVFbGraphicsSystem() { }
-};
diff --git a/src/plugins/gfxdrivers/blittableqvfb/qscreen_blittableqvfb.h b/src/plugins/gfxdrivers/blittableqvfb/qscreen_blittableqvfb.h
deleted file mode 100644
index 645aeec..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/qscreen_blittableqvfb.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <qscreenvfb_qws.h>
-#include "qgraphicssystem_blittableqvfb.h"
-
-class QBlittableVFbScreen : public QVFbScreen
-{
-public:
- explicit QBlittableVFbScreen(int display_id)
- : QVFbScreen(display_id)
- {
- setGraphicsSystem(QBlittableVFbGraphicsSystem::instance());
-
- }
-
-};
diff --git a/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.cpp b/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.cpp
deleted file mode 100644
index e69de29..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.cpp
+++ /dev/null
diff --git a/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.h b/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.h
deleted file mode 100644
index b955322..0000000
--- a/src/plugins/gfxdrivers/blittableqvfb/qwindowsurface_qwsblittable.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "qblittable_image.h"
-
-#include <private/qpixmap_blitter_p.h>
-#include <private/qwindowsurface_qws_p.h>
-
-class QBlittablePixmapData;
-
-class Q_GUI_EXPORT QWSBlittableMemSurface : public QWSLocalMemSurface
-{
-public:
- QWSBlittableMemSurface( QWidget *window )
- : QWSLocalMemSurface(window),
- m_currentPaintDevice(0),
- pmData(new QBlittablePixmapData(QPixmapData::PixmapType)),
- pm(pmData)
- {
- }
-
- QPaintDevice *paintDevice()
- {
- if (QWSLocalMemSurface::paintDevice() != m_currentPaintDevice) {
- QPaintDevice *device = QWSLocalMemSurface::paintDevice();
- if (device->devType() == QInternal::Image) {
- img = *static_cast<QImage *>(device);
- pmData->setBlittable(new QImageBlittable(&img,false));
- }
- }
- return &pm;
- }
-
-private:
- QPaintDevice *m_currentPaintDevice;
- QBlittablePixmapData *pmData;
- QPixmap pm;
-};
-
diff --git a/src/plugins/graphicssystems/blittable/blittable.pro b/src/plugins/graphicssystems/blittable/blittable.pro
deleted file mode 100644
index 34c4165..0000000
--- a/src/plugins/graphicssystems/blittable/blittable.pro
+++ /dev/null
@@ -1,11 +0,0 @@
-TARGET = qblittablegraphicssystem
-include(../../qpluginbase.pri)
-
-QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/graphicssystems
-
-SOURCES = main.cpp
-HEADERS = qblittable_image.h \
- qgraphicssystem_blittable.h
-
-target.path += $$[QT_INSTALL_PLUGINS]/graphicssystems
-INSTALLS += target
diff --git a/src/plugins/graphicssystems/blittable/main.cpp b/src/plugins/graphicssystems/blittable/main.cpp
deleted file mode 100644
index 06c3189..0000000
--- a/src/plugins/graphicssystems/blittable/main.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 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$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <private/qgraphicssystemplugin_p.h>
-
-#include "qgraphicssystem_blittable.h"
-
-QT_BEGIN_NAMESPACE
-
-class QBlittableGraphicsSystemPlugin : public QGraphicsSystemPlugin
-{
-public:
- QStringList keys() const;
- QGraphicsSystem *create(const QString&);
-};
-
-QStringList QBlittableGraphicsSystemPlugin::keys() const
-{
- QStringList list;
- list << QLatin1String("Blittable");
- return list;
-}
-
-QGraphicsSystem* QBlittableGraphicsSystemPlugin::create(const QString& system)
-{
- if (system.toLower() == QLatin1String("blittable")) {
- return new QBlittableGraphicsSystem;
- }
-
- return 0;
-}
-
-Q_EXPORT_PLUGIN2(blittable, QBlittableGraphicsSystemPlugin)
-
-QT_END_NAMESPACE
diff --git a/src/plugins/graphicssystems/blittable/qblittable_image.h b/src/plugins/graphicssystems/blittable/qblittable_image.h
deleted file mode 100644
index 3f8dc69..0000000
--- a/src/plugins/graphicssystems/blittable/qblittable_image.h
+++ /dev/null
@@ -1,48 +0,0 @@
-#include <qimage.h>
-
-#include <private/qblittable_p.h>
-
-
-class QImageBlittable : public QBlittable
-{
-public:
- QImageBlittable(QImage *image, bool deleteImage)
- : QBlittable(image->size(), QBlittable::Capabilities(QBlittable::SolidRectCapability
- |QBlittable::SourcePixmapCapability
- |QBlittable::SourceOverPixmapCapability
- |QBlittable::SourceOverScaledPixmapCapability)),
- m_image(image), m_deleteImage(deleteImage)
- {
-
- }
-
- ~QImageBlittable() {
- if (m_deleteImage)
- delete m_image;
- }
-
- void fillRect(const QRectF &rect, const QColor &color)
- {
- QPainter p(lock());
- p.fillRect(rect,color);
- }
- void drawPixmap(const QRectF &rect, const QPixmap &pixmap, const QRectF &source)
- {
- //here it is possible to do a pixmap.pixmapData()->buffer()
- //but is like this to show how to get the the blitter
- QPixmapData *data = pixmap.pixmapData();
- Q_ASSERT(data->width() && data->height());
- Q_ASSERT(data->classId() == QPixmapData::BlitterClass);
- QBlittablePixmapData *blittableData = static_cast<QBlittablePixmapData*>(data);
-
- QPainter p(lock());
- p.drawImage(rect, *blittableData->blittable()->lock(),source);
- }
-
-protected:
- QImage *doLock() { return m_image; }
- void doUnlock() { }
-private:
- QImage *m_image;
- bool m_deleteImage;
-};
diff --git a/src/plugins/graphicssystems/blittable/qgraphicssystem_blittable.h b/src/plugins/graphicssystems/blittable/qgraphicssystem_blittable.h
deleted file mode 100644
index d45907f..0000000
--- a/src/plugins/graphicssystems/blittable/qgraphicssystem_blittable.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#include <private/qgraphicssystem_p.h>
-#include <private/qblittable_p.h>
-#include <private/qpixmap_blitter_p.h>
-#include <private/qpixmap_raster_p.h>
-#include <private/qwindowsurface_rasterblittable_p.h>
-
-#include "qblittable_image.h"
-
-class QImageBlittableWindowSurface : public QRasterBlittableWindowSurface
-{
-public:
- QImageBlittableWindowSurface(QWidget *widget)
- : QRasterBlittableWindowSurface(widget)
- {}
-
- QBlittable *createBlittable(QImage *rasterSurface)
- {
- return new QImageBlittable(rasterSurface,false);
- }
-
-};
-
-class QBlittableGraphicsSystem : public QGraphicsSystem
-{
-public:
- ~QBlittableGraphicsSystem() { }
-
- QPixmapData *createPixmapData(QPixmapData::PixelType type) const
- {
- if (type == QPixmapData::PixmapType)
- return new QBlittablePixmapData(type);
- else
- return new QRasterPixmapData(type);
- }
-
- QWindowSurface *createWindowSurface(QWidget *widget) const
- {
- return new QImageBlittableWindowSurface(widget);
- }
-
- QBlittable *createBlittable(const QSize &size) const
- {
- QImage *image = new QImage(size, QImage::Format_ARGB32_Premultiplied);
- return new QImageBlittable(image,true);
- }
-
- QList<QGraphicsSystemScreen *> screens()
- { return m_screens; }
-
- QList<QGraphicsSystemScreen *> m_screens;
-};
-
-
diff --git a/src/plugins/platforms/directfb/qdirectfbblitter.h b/src/plugins/platforms/directfb/qdirectfbblitter.h
index 85a303a..2a39912 100644
--- a/src/plugins/platforms/directfb/qdirectfbblitter.h
+++ b/src/plugins/platforms/directfb/qdirectfbblitter.h
@@ -26,4 +26,10 @@ protected:
friend class QDirectFbConvenience;
};
+class QDirectFbBlitterPixmapData : public QBlittablePixmapData
+{
+public:
+ QBlittable *createBlittable(const QSize &size) const { return new QDirectFbBlitter(size); }
+};
+
#endif // QDIRECTFBBLITTER_H
diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.cpp b/src/plugins/platforms/directfb/qdirectfbintegration.cpp
index c47fc8d..b19a1d9 100644
--- a/src/plugins/platforms/directfb/qdirectfbintegration.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbintegration.cpp
@@ -118,7 +118,7 @@ QPixmapData *QDirectFbIntegration::createPixmapData(QPixmapData::PixelType type)
if (type == QPixmapData::BitmapType)
return new QRasterPixmapData(type);
else
- return new QBlittablePixmapData(type);
+ return new QDirectFbBlitterPixmapData;
}
QPlatformWindow *QDirectFbIntegration::createPlatformWindow(QWidget *widget, WId winId) const
diff --git a/src/plugins/platforms/directfb/qdirectfbwindowsurface.cpp b/src/plugins/platforms/directfb/qdirectfbwindowsurface.cpp
index 4ca9a72..271d061 100644
--- a/src/plugins/platforms/directfb/qdirectfbwindowsurface.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbwindowsurface.cpp
@@ -63,7 +63,7 @@ QDirectFbWindowSurface::QDirectFbWindowSurface(QWidget *window, WId wId)
dfbWindow->GetSurface(dfbWindow,&m_dfbSurface);
//WRONGSIZE
QDirectFbBlitter *blitter = new QDirectFbBlitter(window->rect().size(), m_dfbSurface);
- m_pmdata = new QBlittablePixmapData(QPixmapData::PixmapType);
+ m_pmdata = new QDirectFbBlitterPixmapData;
m_pmdata->setBlittable(blitter);
m_pixmap = new QPixmap(m_pmdata);
}