diff options
author | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2011-09-29 18:14:15 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-10-21 16:54:45 +0200 |
commit | c8746d886fba6dab01f0d5245d12dd525418e410 (patch) | |
tree | 8dbaa16e0fbeff18d06d6ab6666815629a8997e3 /src/plugins/platforms/directfb/qdirectfbblitter.h | |
parent | b1c803a925cc6cfb78598066f735e54a007d57a3 (diff) |
[directfb] Implement QPixmap::fromFile using DirectFB routines
The code is based on Qt 4.8 DirectFB support, it was reduced
in size (cosmetic changes, by using the outPtr()) and it has a
bugfix to pass loadAsBitmapOrPixmap that assumes the loadFromFile
routine will add '.png' and other extensions to the file.
Change-Id: I25b11206053c02be5c04730fba5bb42bd07426d1
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbblitter.h')
-rw-r--r-- | src/plugins/platforms/directfb/qdirectfbblitter.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbblitter.h b/src/plugins/platforms/directfb/qdirectfbblitter.h index 6ed3850487..9a7362be65 100644 --- a/src/plugins/platforms/directfb/qdirectfbblitter.h +++ b/src/plugins/platforms/directfb/qdirectfbblitter.h @@ -58,6 +58,8 @@ public: virtual void fillRect(const QRectF &rect, const QColor &color); virtual void drawPixmap(const QRectF &rect, const QPixmap &pixmap, const QRectF &subrect); + IDirectFBSurface *dfbSurface() const; + static DFBSurfacePixelFormat alphaPixmapFormat(); static DFBSurfacePixelFormat pixmapFormat(); static DFBSurfacePixelFormat selectPixmapFormat(bool withAlpha); @@ -76,6 +78,14 @@ class QDirectFbBlitterPlatformPixmap : public QBlittablePlatformPixmap { public: QBlittable *createBlittable(const QSize &size, bool alpha) const; + + QDirectFbBlitter *dfbBlitter() const; + + virtual bool fromFile(const QString &filename, const char *format, + Qt::ImageConversionFlags flags); + +private: + bool fromDataBufferDescription(const DFBDataBufferDescription &); }; inline QBlittable *QDirectFbBlitterPlatformPixmap::createBlittable(const QSize& size, bool alpha) const @@ -83,4 +93,14 @@ inline QBlittable *QDirectFbBlitterPlatformPixmap::createBlittable(const QSize& return new QDirectFbBlitter(size, alpha); } +inline QDirectFbBlitter *QDirectFbBlitterPlatformPixmap::dfbBlitter() const +{ + return static_cast<QDirectFbBlitter*>(blittable()); +} + +inline IDirectFBSurface *QDirectFbBlitter::dfbSurface() const +{ + return m_surface.data(); +} + #endif // QDIRECTFBBLITTER_H |