diff options
Diffstat (limited to 'src/plugins/gfxdrivers/directfb/qdirectfbscreen.h')
-rw-r--r-- | src/plugins/gfxdrivers/directfb/qdirectfbscreen.h | 303 |
1 files changed, 0 insertions, 303 deletions
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h b/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h deleted file mode 100644 index afc153bab2..0000000000 --- a/src/plugins/gfxdrivers/directfb/qdirectfbscreen.h +++ /dev/null @@ -1,303 +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 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 <qglobal.h> -#ifndef QT_NO_QWS_DIRECTFB -#include <QtGui/qscreen_qws.h> -#include <directfb.h> -#include <directfb_version.h> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Gui) - -#if !defined QT_DIRECTFB_SUBSURFACE && !defined QT_NO_DIRECTFB_SUBSURFACE -#define QT_NO_DIRECTFB_SUBSURFACE -#endif -#if !defined QT_NO_DIRECTFB_LAYER && !defined QT_DIRECTFB_LAYER -#define QT_DIRECTFB_LAYER -#endif -#if !defined QT_NO_DIRECTFB_WM && !defined QT_DIRECTFB_WM -#define QT_DIRECTFB_WM -#endif -#if !defined QT_DIRECTFB_IMAGECACHE && !defined QT_NO_DIRECTFB_IMAGECACHE -#define QT_NO_DIRECTFB_IMAGECACHE -#endif -#if !defined QT_NO_DIRECTFB_IMAGEPROVIDER && !defined QT_DIRECTFB_IMAGEPROVIDER -#define QT_DIRECTFB_IMAGEPROVIDER -#endif -#if !defined QT_NO_DIRECTFB_STRETCHBLIT && !defined QT_DIRECTFB_STRETCHBLIT -#define QT_DIRECTFB_STRETCHBLIT -#endif -#if !defined QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE && !defined QT_NO_DIRECTFB_IMAGEPROVIDER_KEEPALIVE -#define QT_NO_DIRECTFB_IMAGEPROVIDER_KEEPALIVE -#endif -#if !defined QT_DIRECTFB_WINDOW_AS_CURSOR && !defined QT_NO_DIRECTFB_WINDOW_AS_CURSOR -#define QT_NO_DIRECTFB_WINDOW_AS_CURSOR -#endif -#if !defined QT_DIRECTFB_PALETTE && !defined QT_NO_DIRECTFB_PALETTE -#define QT_NO_DIRECTFB_PALETTE -#endif -#if !defined QT_NO_DIRECTFB_PREALLOCATED && !defined QT_DIRECTFB_PREALLOCATED -#define QT_DIRECTFB_PREALLOCATED -#endif -#if !defined QT_NO_DIRECTFB_MOUSE && !defined QT_DIRECTFB_MOUSE -#define QT_DIRECTFB_MOUSE -#endif -#if !defined QT_NO_DIRECTFB_KEYBOARD && !defined QT_DIRECTFB_KEYBOARD -#define QT_DIRECTFB_KEYBOARD -#endif -#if !defined QT_NO_DIRECTFB_OPAQUE_DETECTION && !defined QT_DIRECTFB_OPAQUE_DETECTION -#define QT_DIRECTFB_OPAQUE_DETECTION -#endif -#ifndef QT_NO_QWS_CURSOR -#if defined QT_DIRECTFB_WM && defined QT_DIRECTFB_WINDOW_AS_CURSOR -#define QT_DIRECTFB_CURSOR -#elif defined QT_DIRECTFB_LAYER -#define QT_DIRECTFB_CURSOR -#endif -#endif -#ifndef QT_DIRECTFB_CURSOR -#define QT_NO_DIRECTFB_CURSOR -#endif -#if defined QT_NO_DIRECTFB_LAYER && defined QT_DIRECTFB_WM -#error QT_NO_DIRECTFB_LAYER requires QT_NO_DIRECTFB_WM -#endif -#if defined QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE && defined QT_NO_DIRECTFB_IMAGEPROVIDER -#error QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE requires QT_DIRECTFB_IMAGEPROVIDER to be defined -#endif -#if defined QT_DIRECTFB_WINDOW_AS_CURSOR && defined QT_NO_DIRECTFB_WM -#error QT_DIRECTFB_WINDOW_AS_CURSOR requires QT_DIRECTFB_WM to be defined -#endif - -#define Q_DIRECTFB_VERSION ((DIRECTFB_MAJOR_VERSION << 16) | (DIRECTFB_MINOR_VERSION << 8) | DIRECTFB_MICRO_VERSION) - -#define DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(F) \ - static inline F operator~(F f) { return F(~int(f)); } \ - static inline F operator&(F left, F right) { return F(int(left) & int(right)); } \ - static inline F operator|(F left, F right) { return F(int(left) | int(right)); } \ - static inline F &operator|=(F &left, F right) { left = (left | right); return left; } \ - static inline F &operator&=(F &left, F right) { left = (left & right); return left; } - -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBInputDeviceCapabilities); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBWindowDescriptionFlags); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBWindowCapabilities); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBWindowOptions); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceDescriptionFlags); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceCapabilities); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceLockFlags); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceBlittingFlags); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceDrawingFlags); -DIRECTFB_DECLARE_OPERATORS_FOR_FLAGS(DFBSurfaceFlipFlags); - -class QDirectFBScreenPrivate; -class Q_GUI_EXPORT QDirectFBScreen : public QScreen -{ -public: - QDirectFBScreen(int display_id); - ~QDirectFBScreen(); - - enum DirectFBFlag { - NoFlags = 0x00, - VideoOnly = 0x01, - SystemOnly = 0x02, - BoundingRectFlip = 0x04, - NoPartialFlip = 0x08 - }; - - Q_DECLARE_FLAGS(DirectFBFlags, DirectFBFlag); - - DirectFBFlags directFBFlags() const; - - bool connect(const QString &displaySpec); - void disconnect(); - bool initDevice(); - void shutdownDevice(); - - void exposeRegion(QRegion r, int changing); - void solidFill(const QColor &color, const QRegion ®ion); - static void solidFill(IDirectFBSurface *surface, const QColor &color, const QRegion ®ion); - - void setMode(int width, int height, int depth); - void blank(bool on); - - QWSWindowSurface *createSurface(QWidget *widget) const; - QWSWindowSurface *createSurface(const QString &key) const; - - static QDirectFBScreen *instance(); - void waitIdle(); - IDirectFBSurface *surfaceForWidget(const QWidget *widget, QRect *rect) const; -#ifdef QT_DIRECTFB_SUBSURFACE - IDirectFBSurface *subSurfaceForWidget(const QWidget *widget, const QRect &area = QRect()) const; -#endif - IDirectFB *dfb(); -#ifdef QT_DIRECTFB_WM - IDirectFBWindow *windowForWidget(const QWidget *widget) const; -#else - IDirectFBSurface *primarySurface(); -#endif -#ifndef QT_NO_DIRECTFB_LAYER - IDirectFBDisplayLayer *dfbDisplayLayer(); -#endif - - // Track surface creation/release so we can release all on exit - enum SurfaceCreationOption { - DontTrackSurface = 0x1, - TrackSurface = 0x2, - NoPreallocated = 0x4 - }; - Q_DECLARE_FLAGS(SurfaceCreationOptions, SurfaceCreationOption); - IDirectFBSurface *createDFBSurface(const QImage &image, - QImage::Format format, - SurfaceCreationOptions options, - DFBResult *result = 0); - IDirectFBSurface *createDFBSurface(const QSize &size, - QImage::Format format, - SurfaceCreationOptions options, - DFBResult *result = 0); - IDirectFBSurface *copyDFBSurface(IDirectFBSurface *src, - QImage::Format format, - SurfaceCreationOptions options, - DFBResult *result = 0); - IDirectFBSurface *createDFBSurface(DFBSurfaceDescription desc, - SurfaceCreationOptions options, - DFBResult *result); -#ifdef QT_DIRECTFB_SUBSURFACE - IDirectFBSurface *getSubSurface(IDirectFBSurface *surface, - const QRect &rect, - SurfaceCreationOptions options, - DFBResult *result); -#endif - - void flipSurface(IDirectFBSurface *surface, DFBSurfaceFlipFlags flipFlags, - const QRegion ®ion, const QPoint &offset); - void releaseDFBSurface(IDirectFBSurface *surface); - - using QScreen::depth; - static int depth(DFBSurfacePixelFormat format); - static int depth(QImage::Format format); - - static DFBSurfacePixelFormat getSurfacePixelFormat(QImage::Format format); - static DFBSurfaceDescription getSurfaceDescription(const uint *buffer, - int length); - static QImage::Format getImageFormat(IDirectFBSurface *surface); - static bool initSurfaceDescriptionPixelFormat(DFBSurfaceDescription *description, QImage::Format format); - static inline bool isPremultiplied(QImage::Format format); - static inline bool hasAlphaChannel(DFBSurfacePixelFormat format); - static inline bool hasAlphaChannel(IDirectFBSurface *surface); - QImage::Format alphaPixmapFormat() const; - -#ifndef QT_NO_DIRECTFB_PALETTE - static void setSurfaceColorTable(IDirectFBSurface *surface, - const QImage &image); -#endif - - static uchar *lockSurface(IDirectFBSurface *surface, DFBSurfaceLockFlags flags, int *bpl = 0); -#if defined QT_DIRECTFB_IMAGEPROVIDER && defined QT_DIRECTFB_IMAGEPROVIDER_KEEPALIVE - void setDirectFBImageProvider(IDirectFBImageProvider *provider); -#endif -private: - QDirectFBScreenPrivate *d_ptr; -}; - -Q_DECLARE_OPERATORS_FOR_FLAGS(QDirectFBScreen::SurfaceCreationOptions); -Q_DECLARE_OPERATORS_FOR_FLAGS(QDirectFBScreen::DirectFBFlags); - -inline bool QDirectFBScreen::isPremultiplied(QImage::Format format) -{ - switch (format) { - case QImage::Format_ARGB32_Premultiplied: - case QImage::Format_ARGB8565_Premultiplied: - case QImage::Format_ARGB6666_Premultiplied: - case QImage::Format_ARGB8555_Premultiplied: - case QImage::Format_ARGB4444_Premultiplied: - return true; - default: - break; - } - return false; -} - -inline bool QDirectFBScreen::hasAlphaChannel(DFBSurfacePixelFormat format) -{ - switch (format) { - case DSPF_ARGB1555: - case DSPF_ARGB: - case DSPF_LUT8: - case DSPF_AiRGB: - case DSPF_A1: - case DSPF_ARGB2554: - case DSPF_ARGB4444: -#if (Q_DIRECTFB_VERSION >= 0x000923) - case DSPF_AYUV: -#endif -#if (Q_DIRECTFB_VERSION >= 0x010000) - case DSPF_A4: - case DSPF_ARGB1666: - case DSPF_ARGB6666: - case DSPF_LUT2: -#endif - return true; - default: - return false; - } -} - -inline bool QDirectFBScreen::hasAlphaChannel(IDirectFBSurface *surface) -{ - Q_ASSERT(surface); - DFBSurfacePixelFormat format; - surface->GetPixelFormat(surface, &format); - return QDirectFBScreen::hasAlphaChannel(format); -} - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QT_NO_QWS_DIRECTFB -#endif // QDIRECTFBSCREEN_H - |