summaryrefslogtreecommitdiffstats
path: root/src/platformsupport/fbconvenience
diff options
context:
space:
mode:
authorGirish Ramakrishnan <girish.1.ramakrishnan@nokia.com>2012-07-05 21:06:14 +0530
committerQt by Nokia <qt-info@nokia.com>2012-07-11 12:42:52 +0200
commitc452418e9f09d7bd22b8c32d885a533aa93ffca3 (patch)
tree5f30a4ad9e8ec9dabcfaac77a0bd5b37b8ef649e /src/platformsupport/fbconvenience
parent569ea8c365b927c621ef590874352d355b840fd7 (diff)
linuxfb: don't store window in backingstore
The backing store already knows about the window. Also, rename surface to backing store in QFbWindow. Change-Id: I3701b3cdbdc228200da9b93b13037655dc436f53 Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com> Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Diffstat (limited to 'src/platformsupport/fbconvenience')
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore.cpp16
-rw-r--r--src/platformsupport/fbconvenience/qfbbackingstore_p.h7
-rw-r--r--src/platformsupport/fbconvenience/qfbscreen.cpp2
-rw-r--r--src/platformsupport/fbconvenience/qfbwindow.cpp2
-rw-r--r--src/platformsupport/fbconvenience/qfbwindow_p.h6
5 files changed, 16 insertions, 17 deletions
diff --git a/src/platformsupport/fbconvenience/qfbbackingstore.cpp b/src/platformsupport/fbconvenience/qfbbackingstore.cpp
index e7d2bc8023..80ba4031ec 100644
--- a/src/platformsupport/fbconvenience/qfbbackingstore.cpp
+++ b/src/platformsupport/fbconvenience/qfbbackingstore.cpp
@@ -44,17 +44,15 @@
#include "qfbscreen_p.h"
#include <qpa/qplatformwindow.h>
+#include <QtGui/qscreen.h>
QT_BEGIN_NAMESPACE
-QFbBackingStore::QFbBackingStore(QFbScreen *screen, QWindow *window)
- : QPlatformBackingStore(window),
- mScreen(screen)
+QFbBackingStore::QFbBackingStore(QWindow *window)
+ : QPlatformBackingStore(window)
{
- mImage = QImage(window->size(), mScreen->format());
-
- platformWindow = static_cast<QFbWindow*>(window->handle());
- platformWindow->surface = this;
+ mImage = QImage(window->size(), window->screen()->handle()->format());
+ (static_cast<QFbWindow *>(window->handle()))->setBackingStore(this);
}
QFbBackingStore::~QFbBackingStore()
@@ -66,7 +64,7 @@ void QFbBackingStore::flush(QWindow *window, const QRegion &region, const QPoint
Q_UNUSED(window);
Q_UNUSED(offset);
- platformWindow->repaint(region);
+ (static_cast<QFbWindow *>(window->handle()))->repaint(region);
}
void QFbBackingStore::resize(const QSize &size, const QRegion &region)
@@ -74,7 +72,7 @@ void QFbBackingStore::resize(const QSize &size, const QRegion &region)
Q_UNUSED(region);
// change the widget's QImage if this is a resize
if (mImage.size() != size)
- mImage = QImage(size, mScreen->format());
+ mImage = QImage(size, window()->screen()->handle()->format());
// QPlatformBackingStore::resize(size);
}
diff --git a/src/platformsupport/fbconvenience/qfbbackingstore_p.h b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
index 52a154bd33..a01e35641c 100644
--- a/src/platformsupport/fbconvenience/qfbbackingstore_p.h
+++ b/src/platformsupport/fbconvenience/qfbbackingstore_p.h
@@ -53,7 +53,7 @@ class QWindow;
class QFbBackingStore : public QPlatformBackingStore
{
public:
- QFbBackingStore(QFbScreen *screen, QWindow *window);
+ QFbBackingStore(QWindow *window);
~QFbBackingStore();
virtual QPaintDevice *paintDevice() { return &mImage; }
@@ -63,14 +63,13 @@ public:
virtual void beginPaint(const QRegion &region);
virtual void endPaint(const QRegion &region);
+ virtual void resize(const QSize &size, const QRegion &region);
+
const QImage image() { return mImage; }
- void resize(const QSize &size, const QRegion &region);
protected:
friend class QFbWindow;
- QFbWindow *platformWindow;
- QFbScreen *mScreen;
QImage mImage;
};
diff --git a/src/platformsupport/fbconvenience/qfbscreen.cpp b/src/platformsupport/fbconvenience/qfbscreen.cpp
index 843300d5c5..6656903d71 100644
--- a/src/platformsupport/fbconvenience/qfbscreen.cpp
+++ b/src/platformsupport/fbconvenience/qfbscreen.cpp
@@ -223,7 +223,7 @@ QRegion QFbScreen::doRedraw()
QRect windowRect = windowStack[layerIndex]->geometry().translated(-screenOffset);
QRect windowIntersect = rect.translated(-windowRect.left(),
-windowRect.top());
- compositePainter->drawImage(rect, windowStack[layerIndex]->surface->image(),
+ compositePainter->drawImage(rect, windowStack[layerIndex]->backingStore()->image(),
windowIntersect);
if (firstLayer) {
firstLayer = false;
diff --git a/src/platformsupport/fbconvenience/qfbwindow.cpp b/src/platformsupport/fbconvenience/qfbwindow.cpp
index 4729f9d548..f83f084363 100644
--- a/src/platformsupport/fbconvenience/qfbwindow.cpp
+++ b/src/platformsupport/fbconvenience/qfbwindow.cpp
@@ -91,7 +91,7 @@ Qt::WindowFlags QFbWindow::windowFlags() const
}
QFbWindow::QFbWindow(QWindow *window)
- : QPlatformWindow(window), visibleFlag(false)
+ : QPlatformWindow(window), mBackingStore(0), visibleFlag(false)
{
static QAtomicInt winIdGenerator(1);
windowId = winIdGenerator.fetchAndAddRelaxed(1);
diff --git a/src/platformsupport/fbconvenience/qfbwindow_p.h b/src/platformsupport/fbconvenience/qfbwindow_p.h
index 81b66348cc..9f3b2bb447 100644
--- a/src/platformsupport/fbconvenience/qfbwindow_p.h
+++ b/src/platformsupport/fbconvenience/qfbwindow_p.h
@@ -68,13 +68,15 @@ public:
WId winId() const { return windowId; }
+ void setBackingStore(QFbBackingStore *store) { mBackingStore = store; }
+ QFbBackingStore *backingStore() const { return mBackingStore; }
+
virtual void repaint(const QRegion&);
protected:
friend class QFbScreen;
- friend class QFbBackingStore;
- QFbBackingStore *surface;
+ QFbBackingStore *mBackingStore;
QList<QFbScreen *> mScreens;
QRect oldGeometry;
bool visibleFlag;