Qt 4.8
qt-4.8.6
src
gui
painting
qwindowsurface_raster_p.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 QtGui module 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 QWINDOWSURFACE_RASTER_P_H
43
#define QWINDOWSURFACE_RASTER_P_H
44
45
//
46
// W A R N I N G
47
// -------------
48
//
49
// This file is not part of the Qt API. It exists for the convenience
50
// of the QLibrary class. This header file may change from
51
// version to version without notice, or even be removed.
52
//
53
// We mean it.
54
//
55
56
#include <
qglobal.h
>
57
#include "private/qwindowsurface_p.h"
58
59
#ifdef QT_MAC_USE_COCOA
60
# include <private/qt_cocoa_helpers_mac_p.h>
61
#endif // QT_MAC_USE_COCOA
62
63
QT_BEGIN_NAMESPACE
64
65
#ifdef Q_WS_WIN
66
#define Q_WS_EX_LAYERED 0x00080000 // copied from WS_EX_LAYERED in winuser.h
67
#define Q_LWA_ALPHA 0x00000002 // copied from LWA_ALPHA in winuser.h
68
#define Q_ULW_ALPHA 0x00000002 // copied from ULW_ALPHA in winuser.h
69
#define Q_AC_SRC_ALPHA 0x00000001 // copied from AC_SRC_ALPHA in winuser.h
70
71
struct
Q_UPDATELAYEREDWINDOWINFO
{
72
DWORD
cbSize
;
73
HDC
hdcDst
;
74
const
POINT *
pptDst
;
75
const
SIZE
*
psize
;
76
HDC
hdcSrc
;
77
const
POINT *
pptSrc
;
78
COLORREF
crKey
;
79
const
BLENDFUNCTION *
pblend
;
80
DWORD
dwFlags
;
81
const
RECT *
prcDirty
;
82
};
83
84
typedef
BOOL (WINAPI *
PtrUpdateLayeredWindow
)(HWND hwnd, HDC
hdcDst
,
const
POINT *
pptDst
,
85
const
SIZE
*
psize
, HDC
hdcSrc
,
const
POINT *
pptSrc
, COLORREF
crKey
,
86
const
BLENDFUNCTION *
pblend
, DWORD dwflags);
87
typedef
BOOL (WINAPI *
PtrUpdateLayeredWindowIndirect
)(HWND hwnd,
const
Q_UPDATELAYEREDWINDOWINFO
*pULWInfo);
88
extern
PtrUpdateLayeredWindow
ptrUpdateLayeredWindow
;
89
extern
PtrUpdateLayeredWindowIndirect
ptrUpdateLayeredWindowIndirect
;
90
#endif
91
92
class
QPaintDevice
;
93
class
QPoint
;
94
class
QRegion
;
95
class
QRegion
;
96
class
QSize
;
97
class
QWidget
;
98
class
QRasterWindowSurfacePrivate
;
99
class
QNativeImage
;
100
101
class
Q_GUI_EXPORT
QRasterWindowSurface
:
public
QWindowSurface
102
{
103
public
:
104
QRasterWindowSurface
(
QWidget
*
widget
,
bool
setDefaultSurface =
true
);
105
~
QRasterWindowSurface
();
106
107
QPaintDevice
*paintDevice();
108
void
flush
(
QWidget
*widget,
const
QRegion
®ion,
const
QPoint
&offset);
109
void
beginPaint(
const
QRegion
&rgn);
110
void
setGeometry(
const
QRect
&rect);
111
bool
scroll(
const
QRegion
&
area
,
int
dx,
int
dy);
112
WindowSurfaceFeatures features()
const
;
113
114
#ifdef QT_MAC_USE_COCOA
115
CGContextRef
imageContext();
116
117
bool
needsFlush;
118
QRegion
regionToFlush;
119
#endif // QT_MAC_USE_COCOA
120
121
private
:
122
#if defined(Q_WS_X11) && !defined(QT_NO_MITSHM)
123
void
syncX();
124
#endif
125
void
prepareBuffer(
QImage::Format
format
,
QWidget
*widget);
126
Q_DECLARE_PRIVATE
(
QRasterWindowSurface
)
127
QScopedPointer
<
QRasterWindowSurfacePrivate
> d_ptr;
128
};
129
130
QT_END_NAMESPACE
131
132
#endif // QWINDOWSURFACE_RASTER_P_H
QImage::Format
Format
The following image formats are available in Qt.
Definition:
qimage.h:91
QT_END_NAMESPACE
#define QT_END_NAMESPACE
This macro expands to.
Definition:
qglobal.h:90
widget
QPointer< QWidget > widget
Definition:
qapplication_mac.mm:879
ptrUpdateLayeredWindowIndirect
PtrUpdateLayeredWindowIndirect ptrUpdateLayeredWindowIndirect
Definition:
qapplication_win.cpp:758
Q_UPDATELAYEREDWINDOWINFO::cbSize
DWORD cbSize
Definition:
qwindowsurface_raster_p.h:72
Q_GUI_EXPORT
#define Q_GUI_EXPORT
Definition:
qglobal.h:1450
QWidget
The QWidget class is the base class of all user interface objects.
Definition:
qwidget.h:150
PtrUpdateLayeredWindow
BOOL(WINAPI * PtrUpdateLayeredWindow)(HWND hwnd, HDC hdcDst, const POINT *pptDst, const SIZE *psize, HDC hdcSrc, const POINT *pptSrc, COLORREF crKey, const BLENDFUNCTION *pblend, DWORD dwflags)
Definition:
qwindowsurface_raster_p.h:84
SIZE
#define SIZE(large, small, mini)
Definition:
qmacstyle_mac_p.h:143
Q_UPDATELAYEREDWINDOWINFO::pptSrc
const POINT * pptSrc
Definition:
qwindowsurface_raster_p.h:77
QScopedPointer
The QScopedPointer class stores a pointer to a dynamically allocated object, and deletes it upon dest...
Definition:
qscopedpointer.h:87
Q_UPDATELAYEREDWINDOWINFO::hdcSrc
HDC hdcSrc
Definition:
qwindowsurface_raster_p.h:76
Q_UPDATELAYEREDWINDOWINFO
Definition:
qwindowsurface_raster_p.h:71
Q_UPDATELAYEREDWINDOWINFO::dwFlags
DWORD dwFlags
Definition:
qwindowsurface_raster_p.h:80
ptrUpdateLayeredWindow
PtrUpdateLayeredWindow ptrUpdateLayeredWindow
Definition:
qapplication_win.cpp:757
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
This macro expands to.
Definition:
qglobal.h:89
QPaintDevice
Definition:
qpaintdevice.h:60
QNativeImage
Definition:
qnativeimage_p.h:73
qglobal.h
Q_UPDATELAYEREDWINDOWINFO::crKey
COLORREF crKey
Definition:
qwindowsurface_raster_p.h:78
Q_UPDATELAYEREDWINDOWINFO::prcDirty
const RECT * prcDirty
Definition:
qwindowsurface_raster_p.h:81
QRasterWindowSurfacePrivate
Definition:
qwindowsurface_raster.cpp:74
QRegion
The QRegion class specifies a clip region for a painter.
Definition:
qregion.h:68
Q_UPDATELAYEREDWINDOWINFO::pblend
const BLENDFUNCTION * pblend
Definition:
qwindowsurface_raster_p.h:79
QWindowSurface
The QWindowSurface class provides the drawing area for top-level windows.
Definition:
qwindowsurface_p.h:68
Q_UPDATELAYEREDWINDOWINFO::hdcDst
HDC hdcDst
Definition:
qwindowsurface_raster_p.h:73
QRasterWindowSurface
Definition:
qwindowsurface_raster_p.h:101
format
format
Definition:
qprintengine_ps.cpp:286
Q_UPDATELAYEREDWINDOWINFO::psize
const SIZE * psize
Definition:
qwindowsurface_raster_p.h:75
QPoint
The QPoint class defines a point in the plane using integer precision.
Definition:
qpoint.h:53
QRect
The QRect class defines a rectangle in the plane using integer precision.
Definition:
qrect.h:58
flush
Q_CORE_EXPORT QTextStream & flush(QTextStream &s)
QSize
The QSize class defines the size of a two-dimensional object using integer point precision.
Definition:
qsize.h:53
Q_DECLARE_PRIVATE
#define Q_DECLARE_PRIVATE(Class)
Definition:
qglobal.h:2467
CGContextRef
struct CGContext * CGContextRef
Definition:
qmacdefines_mac.h:155
PtrUpdateLayeredWindowIndirect
BOOL(WINAPI * PtrUpdateLayeredWindowIndirect)(HWND hwnd, const Q_UPDATELAYEREDWINDOWINFO *pULWInfo)
Definition:
qwindowsurface_raster_p.h:87
Q_UPDATELAYEREDWINDOWINFO::pptDst
const POINT * pptDst
Definition:
qwindowsurface_raster_p.h:74
area
static int area(const QSize &s)
Definition:
qicon.cpp:155
Qt 4.8 Source Code Browser