Warning: That file was not part of the compilation database. It may have many parsing errors.
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 QMEEGOLIVEPIXMAP_H |
43 | #define QMEEGOLIVEPIXMAP_H |
44 | |
45 | #include <QtGui/QPixmap> |
46 | #include "QtMeeGoGraphicsSystemHelper/qmeegofencesync.h" |
47 | |
48 | class QMeeGoLivePixmapPrivate; |
49 | class QSharedMemory; |
50 | class QImage; |
51 | |
52 | //! A pixmap representing streamed content. |
53 | /*! |
54 | */ |
55 | |
56 | class Q_DECL_EXPORT QMeeGoLivePixmap : public QPixmap |
57 | { |
58 | public: |
59 | enum Format { |
60 | Format_RGB16, //! 16bit, 5-6-5 RGB format. |
61 | Format_ARGB32_Premultiplied //! 32bit, AARRGGBB format. The typical Qt format. |
62 | }; |
63 | |
64 | //! Creates and returns a new live pixmap with the given parameters. |
65 | /*! |
66 | The new pixmap is created with the given width w and the given height h. |
67 | The format specifies the color format used by the pixmap. |
68 | */ |
69 | static QMeeGoLivePixmap* livePixmapWithSize(int w, int h, Format format); |
70 | |
71 | //! Creates a new QMeeGoLivePixmap from the specified handle. |
72 | /*! |
73 | The handle can be used to share QMeeGoLivePixmap cross-process. |
74 | */ |
75 | static QMeeGoLivePixmap* fromHandle(Qt::HANDLE handle); |
76 | |
77 | //! Returns the handle for this QMeeGoLivePixmap. |
78 | /*! |
79 | The handle can be used to share QMeeGoLivePixmap cross-process. |
80 | */ |
81 | Qt::HANDLE handle(); |
82 | |
83 | //! Locks the access to the pixmap. |
84 | /*! |
85 | The returned image can be used for direct access. |
86 | You can optionally specify a fence sync to wait upon before unlocking. When |
87 | you specify a fence sync, you can be sure that this function will return only |
88 | when the previsouly set QMeeGoFenceSync synchronization point has been executed/passed |
89 | by the GL processing pipeline. |
90 | */ |
91 | QImage* lock(QMeeGoFenceSync *fenceSync = NULL); |
92 | |
93 | //! Unlocks the access to the pixmap. |
94 | /*! |
95 | */ |
96 | void release(QImage *img); |
97 | |
98 | //! Destroys the QMeeGoLivePixmap. |
99 | /*! |
100 | */ |
101 | virtual ~QMeeGoLivePixmap(); |
102 | |
103 | private: |
104 | QMeeGoLivePixmap(QPixmapData *p); |
105 | Q_DISABLE_COPY(QMeeGoLivePixmap) |
106 | Q_DECLARE_PRIVATE(QMeeGoLivePixmap) |
107 | |
108 | protected: |
109 | QScopedPointer<QMeeGoLivePixmapPrivate> d_ptr; //! Private bits. |
110 | }; |
111 | |
112 | #endif |
113 |
Warning: That file was not part of the compilation database. It may have many parsing errors.