summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb/qdirectfbblitter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbblitter.cpp')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbblitter.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbblitter.cpp b/src/plugins/platforms/directfb/qdirectfbblitter.cpp
index fcca7dd840..bd31982d42 100644
--- a/src/plugins/platforms/directfb/qdirectfbblitter.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbblitter.cpp
@@ -74,11 +74,11 @@ QDirectFbBlitter::QDirectFbBlitter(const QSize &rect, bool alpha)
if (alpha) {
surfaceDesc.caps = DSCAPS_PREMULTIPLIED;
- surfaceDesc.pixelformat = DSPF_ARGB;
+ surfaceDesc.pixelformat = QDirectFbBlitter::alphaPixmapFormat();
surfaceDesc.flags = DFBSurfaceDescriptionFlags(DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_CAPS | DSDESC_PIXELFORMAT);
} else {
surfaceDesc.flags = DFBSurfaceDescriptionFlags(DSDESC_WIDTH | DSDESC_HEIGHT | DSDESC_PIXELFORMAT);
- surfaceDesc.pixelformat = DSPF_RGB32;
+ surfaceDesc.pixelformat = QDirectFbBlitter::pixmapFormat();
}
@@ -92,6 +92,21 @@ QDirectFbBlitter::~QDirectFbBlitter()
unlock();
}
+DFBSurfacePixelFormat QDirectFbBlitter::alphaPixmapFormat()
+{
+ return DSPF_ARGB;
+}
+
+DFBSurfacePixelFormat QDirectFbBlitter::pixmapFormat()
+{
+ return DSPF_RGB32;
+}
+
+DFBSurfacePixelFormat QDirectFbBlitter::selectPixmapFormat(bool withAlpha)
+{
+ return withAlpha ? alphaPixmapFormat() : pixmapFormat();
+}
+
void QDirectFbBlitter::fillRect(const QRectF &rect, const QColor &color)
{
m_surface->SetColor(m_surface.data(), color.red(), color.green(), color.blue(), color.alpha());