summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@nokia.com>2010-07-21 07:58:25 (GMT)
committerJørgen Lind <jorgen.lind@nokia.com>2010-07-22 10:05:41 (GMT)
commit96f1f3d575a12967657bb534ee5accc04d52984e (patch)
treed2ff8af3d06d0f93afca04b39713ab4daf3709df /src/gui
parent77d17d054b8baff411613206a099af36f8e0bc43 (diff)
downloadQt-96f1f3d575a12967657bb534ee5accc04d52984e.zip
Qt-96f1f3d575a12967657bb534ee5accc04d52984e.tar.gz
Qt-96f1f3d575a12967657bb534ee5accc04d52984e.tar.bz2
Removed createBlittable factory function from PlatformIntegration
and moved it onto QBlittablePixmap making the class abstract. The creator function was seen as to spesialised to be part of the PlatformIntegration class, and belonged to the QBlittablePixmap class anyway since that was the PixmapData type you would need to return to use the blitter api. Also removed the cross platform examples as they are more confusing than anything else. For usage of QBlittable look in the directfb platform integration plugin.
Diffstat (limited to 'src/gui')
-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
11 files changed, 13 insertions, 69 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;
-};