diff options
Diffstat (limited to 'src/gui/painting/qwindowsurface_qws_p.h')
-rw-r--r-- | src/gui/painting/qwindowsurface_qws_p.h | 355 |
1 files changed, 0 insertions, 355 deletions
diff --git a/src/gui/painting/qwindowsurface_qws_p.h b/src/gui/painting/qwindowsurface_qws_p.h deleted file mode 100644 index eaabccf39a..0000000000 --- a/src/gui/painting/qwindowsurface_qws_p.h +++ /dev/null @@ -1,355 +0,0 @@ -/**************************************************************************** -** -** 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 QtGui module 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 QWINDOWSURFACE_QWS_P_H -#define QWINDOWSURFACE_QWS_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qwindowsurface_p.h" -#include <qregion.h> -#include <qimage.h> -#include <qdirectpainter_qws.h> -#include <qmutex.h> -#include <private/qwssharedmemory_p.h> - -QT_BEGIN_NAMESPACE - -class QScreen; -class QWSWindowSurfacePrivate; - -class Q_GUI_EXPORT QWSWindowSurface : public QWindowSurface -{ -public: - QWSWindowSurface(); - QWSWindowSurface(QWidget *widget); - ~QWSWindowSurface(); - - virtual bool isValid() const = 0; - - virtual void setGeometry(const QRect &rect); - virtual void setGeometry(const QRect &rect, const QRegion &mask); - virtual void flush(QWidget *widget, const QRegion ®ion, - const QPoint &offset); - - virtual bool move(const QPoint &offset); - virtual QRegion move(const QPoint &offset, const QRegion &newClip); - - virtual QPoint painterOffset() const; // remove!!! - - virtual void beginPaint(const QRegion &); - virtual void endPaint(const QRegion &); - - virtual bool lock(int timeout = -1); - virtual void unlock(); - - virtual QString key() const = 0; - - // XXX: not good enough - virtual QByteArray transientState() const; - virtual QByteArray permanentState() const; - virtual void setTransientState(const QByteArray &state); - virtual void setPermanentState(const QByteArray &state); - - virtual QImage image() const = 0; - virtual QPaintDevice *paintDevice() = 0; - - const QRegion clipRegion() const; - void setClipRegion(const QRegion &); - -#ifdef QT_QWS_CLIENTBLIT - virtual const QRegion directRegion() const; - virtual int directRegionId() const; - virtual void setDirectRegion(const QRegion &, int); -#endif - - enum SurfaceFlag { - RegionReserved = 0x1, - Buffered = 0x2, - Opaque = 0x4 - }; - Q_DECLARE_FLAGS(SurfaceFlags, SurfaceFlag) - - SurfaceFlags surfaceFlags() const; - - inline bool isRegionReserved() const { - return surfaceFlags() & RegionReserved; - } - inline bool isBuffered() const { return surfaceFlags() & Buffered; } - inline bool isOpaque() const { return surfaceFlags() & Opaque; } - - int winId() const; - virtual void releaseSurface(); - -protected: - void setSurfaceFlags(SurfaceFlags type); - void setWinId(int id); - -private: - friend class QWidgetPrivate; - - void invalidateBuffer(); - - QWSWindowSurfacePrivate *d_ptr; -}; - -Q_DECLARE_OPERATORS_FOR_FLAGS(QWSWindowSurface::SurfaceFlags) - -class QWSWindowSurfacePrivate -{ -public: - QWSWindowSurfacePrivate(); - - void setWinId(int id); - - QWSWindowSurface::SurfaceFlags flags; - QRegion clip; -#ifdef QT_QWS_CLIENTBLIT - QRegion direct; - int directId; -#endif - - int winId; -}; - -class QWSLock; - -class Q_GUI_EXPORT QWSMemorySurface : public QWSWindowSurface -{ -public: - QWSMemorySurface(); - QWSMemorySurface(QWidget *widget); - ~QWSMemorySurface(); - - bool isValid() const; - - QPaintDevice *paintDevice() { return &img; } - bool scroll(const QRegion &area, int dx, int dy); - - QImage image() const { return img; } - QPoint painterOffset() const; - - void beginPaint(const QRegion &rgn); - - bool lock(int timeout = -1); - void unlock(); - -protected: - QImage::Format preferredImageFormat(const QWidget *widget) const; - -#ifndef QT_NO_QWS_MULTIPROCESS - void setLock(int lockId); - QWSLock *memlock; -#endif -#ifndef QT_NO_THREAD - QMutex threadLock; -#endif - - QImage img; -}; - -class Q_GUI_EXPORT QWSLocalMemSurface : public QWSMemorySurface -{ -public: - QWSLocalMemSurface(); - QWSLocalMemSurface(QWidget *widget); - ~QWSLocalMemSurface(); - - void setGeometry(const QRect &rect); - - QString key() const { return QLatin1String("mem"); } - QByteArray permanentState() const; - - void setPermanentState(const QByteArray &data); - virtual void releaseSurface(); -protected: - uchar *mem; - int memsize; -}; - -#ifndef QT_NO_QWS_MULTIPROCESS -class Q_GUI_EXPORT QWSSharedMemSurface : public QWSMemorySurface -{ -public: - QWSSharedMemSurface(); - QWSSharedMemSurface(QWidget *widget); - ~QWSSharedMemSurface(); - - void setGeometry(const QRect &rect); - - QString key() const { return QLatin1String("shm"); } - QByteArray permanentState() const; - - void setPermanentState(const QByteArray &data); - -#ifdef QT_QWS_CLIENTBLIT - virtual void setDirectRegion(const QRegion &, int); - virtual const QRegion directRegion() const; -#endif - virtual void releaseSurface(); - -private: - bool setMemory(int memId); - - QWSSharedMemory mem; -}; -#endif // QT_NO_QWS_MULTIPROCESS - -#ifndef QT_NO_PAINTONSCREEN -class Q_GUI_EXPORT QWSOnScreenSurface : public QWSMemorySurface -{ -public: - QWSOnScreenSurface(); - QWSOnScreenSurface(QWidget *widget); - ~QWSOnScreenSurface(); - - bool isValid() const; - QPoint painterOffset() const; - - QString key() const { return QLatin1String("OnScreen"); } - QByteArray permanentState() const; - - void setPermanentState(const QByteArray &data); - -private: - void attachToScreen(const QScreen *screen); - - const QScreen *screen; -}; -#endif // QT_NO_PAINTONSCREEN - -#ifndef QT_NO_PAINT_DEBUG -class Q_GUI_EXPORT QWSYellowSurface : public QWSWindowSurface -{ -public: - QWSYellowSurface(bool isClient = false); - ~QWSYellowSurface(); - - void setDelay(int msec) { delay = msec; } - - bool isValid() const { return true; } - - void flush(QWidget *widget, const QRegion ®ion, const QPoint &offset); - - QString key() const { return QLatin1String("Yellow"); } - QByteArray permanentState() const; - - void setPermanentState(const QByteArray &data); - - QPaintDevice *paintDevice() { return &img; } - QImage image() const { return img; } - -private: - int delay; - QSize surfaceSize; // client side - QImage img; // server side -}; -#endif // QT_NO_PAINT_DEBUG - -#ifndef QT_NO_DIRECTPAINTER - -class QScreen; - -class Q_GUI_EXPORT QWSDirectPainterSurface : public QWSWindowSurface -{ -public: - QWSDirectPainterSurface(bool isClient = false, - QDirectPainter::SurfaceFlag flags = QDirectPainter::NonReserved); - ~QWSDirectPainterSurface(); - - void setReserved() { setSurfaceFlags(RegionReserved); } - - void setGeometry(const QRect &rect) { setRegion(rect); } - - void setRegion(const QRegion ®ion); - QRegion region() const { return clipRegion(); } - - void flush(QWidget*, const QRegion &, const QPoint &); - - bool isValid() const { return false; } - - QString key() const { return QLatin1String("DirectPainter"); } - QByteArray permanentState() const; - - void setPermanentState(const QByteArray &); - - QImage image() const { return QImage(); } - QPaintDevice *paintDevice() { return 0; } - - // hw: get rid of this - WId windowId() const { return static_cast<WId>(winId()); } - - QScreen *screen() const { return _screen; } - - void beginPaint(const QRegion &); - bool lock(int timeout = -1); - void unlock(); - - void setLocking(bool b) { doLocking = b; } - - bool hasPendingRegionEvents() const; - -private: - QScreen *_screen; -#ifndef QT_NO_THREAD - QMutex threadLock; -#endif - - friend void qt_directpainter_region(QDirectPainter*, const QRegion&, int); - bool flushingRegionEvents; - bool synchronous; - bool doLocking; -}; - -#endif // QT_NO_DIRECTPAINTER - -QT_END_NAMESPACE - -#endif // QWINDOWSURFACE_QWS_P_H |