Qt 4.8
qt-4.8.6
src
plugins
platforms
directfb
qdirectfbconvenience.h
Go to the documentation of this file.
1
/****************************************************************************
2
**
3
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
4
** Contact: http://www.qt-project.org/legal
5
**
6
** This file is part of the plugins of the Qt Toolkit.
7
**
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and Digia. For licensing terms and
14
** conditions see http://qt.digia.com/licensing. For further information
15
** use the contact form at http://qt.digia.com/contact-us.
16
**
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 2.1 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 2.1 requirements
23
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
**
25
** In addition, as a special exception, Digia gives you certain additional
26
** rights. These rights are described in the Digia Qt LGPL Exception
27
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
**
29
** GNU General Public License Usage
30
** Alternatively, this file may be used under the terms of the GNU
31
** General Public License version 3.0 as published by the Free Software
32
** Foundation and appearing in the file LICENSE.GPL included in the
33
** packaging of this file. Please review the following information to
34
** ensure the GNU General Public License version 3.0 requirements will be
35
** met: http://www.gnu.org/copyleft/gpl.html.
36
**
37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
#ifndef QDIRECTFBCONVENIENCE_H
43
#define QDIRECTFBCONVENIENCE_H
44
45
#include <QtGui/qimage.h>
46
#include <QtCore/QHash>
47
#include <QtCore/QEvent>
48
#include <QtGui/QPixmap>
49
50
#include <directfb.h>
51
52
QT_BEGIN_NAMESPACE
53
54
class
QDirectFbScreen
;
55
class
QPlatformScreen
;
56
57
class
QDirectFbKeyMap
:
public
QHash
<DFBInputDeviceKeySymbol, Qt::Key>
58
{
59
public
:
60
QDirectFbKeyMap
();
61
};
62
63
64
class
QDirectFbConvenience
65
{
66
public
:
67
static
QImage::Format
imageFormatFromSurfaceFormat(
const
DFBSurfacePixelFormat
format
,
const
DFBSurfaceCapabilities caps);
68
static
bool
pixelFomatHasAlpha
(
const
DFBSurfacePixelFormat format) {
return
(1 << 16) &
format
; }
69
static
int
colorDepthForSurface(
const
DFBSurfacePixelFormat format);
70
71
//This is set by the graphicssystem constructor
72
static
IDirectFB *dfbInterface();
73
static
IDirectFBDisplayLayer *dfbDisplayLayer(
int
display
= DLID_PRIMARY);
74
75
static
IDirectFBSurface *dfbSurfaceForPlatformPixmap(
QPixmapData
*);
76
77
static
Qt::MouseButton
mouseButton(DFBInputDeviceButtonIdentifier identifier);
78
static
Qt::MouseButtons mouseButtons(DFBInputDeviceButtonMask mask);
79
static
Qt::KeyboardModifiers keyboardModifiers(DFBInputDeviceModifierMask mask);
80
static
QEvent::Type
eventType(DFBWindowEventType
type
);
81
82
static
QDirectFbKeyMap
*
keyMap
();
83
84
private
:
85
static
QDirectFbKeyMap
*
dfbKeymap
;
86
friend
class
QDirectFbIntegration
;
87
};
88
89
template
<
typename
T>
struct
QDirectFBInterfaceCleanupHandler
90
{
91
static
void
cleanup
(T *t)
92
{
93
if
(!t)
94
return
;
95
t->Release(t);
96
}
97
};
98
99
template
<
typename
T>
100
class
QDirectFBPointer
:
public
QScopedPointer
<T, QDirectFBInterfaceCleanupHandler<T> >
101
{
102
public
:
103
QDirectFBPointer
(T *t = 0)
104
:
QScopedPointer
<T,
QDirectFBInterfaceCleanupHandler
<T> >(t)
105
{}
106
107
T**
outPtr
()
108
{
109
this->
reset
(0);
110
return
&this->
d
;
111
}
112
};
113
114
// Helper conversions from internal to DFB types
115
QDirectFbScreen
*
toDfbScreen
(
QWidget
*
window
);
116
IDirectFBDisplayLayer *
toDfbLayer
(
QPlatformScreen
*screen);
117
118
#define QDFB_STRINGIFY(x) #x
119
#define QDFB_TOSTRING(x) QDFB_STRINGIFY(x)
120
#define QDFB_PRETTY \
121
(__FILE__ ":" QDFB_TOSTRING(__LINE__))
122
123
QT_END_NAMESPACE
124
125
126
#endif // QDIRECTFBCONVENIENCE_H
QImage::Format
Format
The following image formats are available in Qt.
Definition:
qimage.h:91
type
int type
Definition:
qmetatype.cpp:239
QT_END_NAMESPACE
#define QT_END_NAMESPACE
This macro expands to.
Definition:
qglobal.h:90
QPlatformScreen
The QPlatformScreen class provides an abstraction for visual displays.
Definition:
qplatformscreen_qpa.h:62
reset
Q_CORE_EXPORT QTextStream & reset(QTextStream &s)
toDfbLayer
IDirectFBDisplayLayer * toDfbLayer(QPlatformScreen *screen)
Definition:
qdirectfbconvenience.cpp:392
QDirectFBPointer::QDirectFBPointer
QDirectFBPointer(T *t=0)
Definition:
qdirectfbconvenience.h:103
QWidget
The QWidget class is the base class of all user interface objects.
Definition:
qwidget.h:150
QHash< DFBInputDeviceKeySymbol, Qt::Key >::d
QHashData * d
Definition:
qhash.h:264
QDirectFBInterfaceCleanupHandler::cleanup
static void cleanup(T *t)
Definition:
qdirectfbconvenience.h:91
toDfbScreen
QDirectFbScreen * toDfbScreen(QWidget *window)
Definition:
qdirectfbconvenience.cpp:387
QHash
The QHash class is a template class that provides a hash-table-based dictionary.
Definition:
qdatastream.h:66
QPixmapData
Definition:
qpixmapdata_p.h:67
QDirectFbConvenience::pixelFomatHasAlpha
static bool pixelFomatHasAlpha(const DFBSurfacePixelFormat format)
Definition:
qdirectfbconvenience.h:68
keyMap
static const struct KeyMapEntryStruct keyMap[]
QScopedPointer
The QScopedPointer class stores a pointer to a dynamically allocated object, and deletes it upon dest...
Definition:
qscopedpointer.h:87
window
NSWindow * window
Definition:
qcocoasharedwindowmethods_mac_p.h:583
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition:
qglobal.h:89
QEgl::display
Q_GUI_EXPORT EGLDisplay display()
Definition:
qegl.cpp:589
QDirectFbKeyMap
Definition:
qdirectfbconvenience.h:57
QDirectFbIntegration
Definition:
qdirectfbintegration.h:56
QDirectFBPointer::outPtr
T ** outPtr()
Definition:
qdirectfbconvenience.h:107
QDirectFbScreen
Definition:
qdirectfbscreen.h:55
QDirectFbKeyMap::QDirectFbKeyMap
QDirectFbKeyMap()
Definition:
qdirectfbconvenience.cpp:208
QDirectFbConvenience
Definition:
qdirectfbconvenience.h:64
format
format
Definition:
qprintengine_ps.cpp:286
QEvent::Type
Type
This enum type defines the valid event types in Qt.
Definition:
qcoreevent.h:62
QDirectFBInterfaceCleanupHandler
Definition:
qdirectfbpixmap.cpp:221
QDirectFBPointer
Definition:
qdirectfbpixmap.cpp:227
QDirectFbConvenience::dfbKeymap
static QDirectFbKeyMap * dfbKeymap
Definition:
qdirectfbconvenience.h:85
Qt::MouseButton
MouseButton
Definition:
qnamespace.h:150
Qt 4.8 Source Code Browser