Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qpaintengine_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
// Qt-Security score:significant reason:default
4
5
#
ifndef
QPAINTENGINE_P_H
6
#
define
QPAINTENGINE_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists for the convenience
13
// of other Qt classes. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
<
QtGui
/
private
/
qtguiglobal_p
.
h
>
20
#
include
"QtGui/qpainter.h"
21
#
include
"QtGui/qpaintengine.h"
22
#
include
"QtGui/qregion.h"
23
#
include
"private/qobject_p.h"
24
25
QT_BEGIN_NAMESPACE
26
27
class
QPaintDevice;
28
29
class
Q_GUI_EXPORT
QPaintEnginePrivate
30
{
31
Q_DECLARE_PUBLIC(QPaintEngine)
32
public
:
33
QPaintEnginePrivate() : pdev(
nullptr
), q_ptr(
nullptr
), currentClipDevice(
nullptr
), hasSystemTransform(0),
34
hasSystemViewport(0) {}
35
virtual
~QPaintEnginePrivate();
36
37
QPaintDevice *
pdev
;
38
QPaintEngine
*
q_ptr
;
39
QRegion
baseSystemClip
;
40
QRegion
systemClip
;
41
QRect
systemRect
;
42
QRegion
systemViewport
;
43
QTransform
systemTransform
;
44
QPaintDevice *
currentClipDevice
;
45
uint
hasSystemTransform
: 1;
46
uint
hasSystemViewport
: 1;
47
48
inline
void
updateSystemClip
()
49
{
50
systemClip
= baseSystemClip;
51
if
(
systemClip
.isEmpty())
52
return
;
53
54
if
(
hasSystemTransform
) {
55
if
(systemTransform.type() <= QTransform::TxTranslate)
56
systemClip
.translate(qRound(systemTransform.dx()), qRound(systemTransform.dy()));
57
else
58
systemClip
= systemTransform.map(systemClip);
59
}
60
61
// Make sure we're inside the viewport.
62
if
(
hasSystemViewport
) {
63
systemClip
&= systemViewport;
64
if
(
systemClip
.isEmpty()) {
65
// We don't want to paint without system clip, so set it to 1 pixel :)
66
systemClip
= QRect(systemViewport.boundingRect().topLeft(), QSize(1, 1));
67
}
68
}
69
}
70
71
inline
void
setSystemTransform
(
const
QTransform &xform)
72
{
73
systemTransform
= xform;
74
hasSystemTransform
= !xform.isIdentity();
75
updateSystemClip
(
)
;
76
if
(
q_ptr
->state)
77
systemStateChanged();
78
}
79
80
inline
void
setSystemViewport
(
const
QRegion ®ion)
81
{
82
systemViewport
= region;
83
hasSystemViewport
= !systemViewport.isEmpty();
84
updateSystemClip
(
)
;
85
if
(
q_ptr
->state)
86
systemStateChanged();
87
}
88
89
inline
void
setSystemTransformAndViewport
(
const
QTransform &xform,
const
QRegion ®ion)
90
{
91
systemTransform
= xform;
92
hasSystemTransform
= !xform.isIdentity();
93
systemViewport
= region;
94
hasSystemViewport
= !systemViewport.isEmpty();
95
updateSystemClip
(
)
;
96
if
(
q_ptr
->state)
97
systemStateChanged();
98
}
99
100
virtual
void
systemStateChanged
() { }
101
102
void
drawBoxTextItem
(
const
QPointF
&p,
const
QTextItemInt
&ti);
103
104
static
QPaintEnginePrivate *
get
(QPaintEngine *paintEngine) {
return
paintEngine->d_func(); }
105
106
virtual
QPaintEngine
*
aggregateEngine
() {
return
nullptr
; }
107
virtual
Qt
::
HANDLE
nativeHandle
() {
return
nullptr
; }
108
};
109
110
QT_END_NAMESPACE
111
112
#
endif
// QPAINTENGINE_P_H
QObjectData::q_ptr
QObject * q_ptr
Definition
qobject.h:73
QPaintEnginePrivate
Definition
qpaintengine_p.h:30
QPaintEnginePrivate::setSystemViewport
void setSystemViewport(const QRegion ®ion)
Definition
qpaintengine_p.h:80
QPaintEnginePrivate::hasSystemViewport
uint hasSystemViewport
Definition
qpaintengine_p.h:46
QPaintEnginePrivate::baseSystemClip
QRegion baseSystemClip
Definition
qpaintengine_p.h:39
QPaintEnginePrivate::setSystemTransform
void setSystemTransform(const QTransform &xform)
Definition
qpaintengine_p.h:71
QPaintEnginePrivate::hasSystemTransform
uint hasSystemTransform
Definition
qpaintengine_p.h:45
QPaintEnginePrivate::systemViewport
QRegion systemViewport
Definition
qpaintengine_p.h:42
QPaintEnginePrivate::currentClipDevice
QPaintDevice * currentClipDevice
Definition
qpaintengine_p.h:44
QPaintEnginePrivate::systemTransform
QTransform systemTransform
Definition
qpaintengine_p.h:43
QPaintEnginePrivate::get
static QPaintEnginePrivate * get(QPaintEngine *paintEngine)
Definition
qpaintengine_p.h:104
QPaintEnginePrivate::systemStateChanged
virtual void systemStateChanged()
Definition
qpaintengine_p.h:100
QPaintEnginePrivate::systemRect
QRect systemRect
Definition
qpaintengine_p.h:41
QPaintEnginePrivate::systemClip
QRegion systemClip
Definition
qpaintengine_p.h:40
QPaintEnginePrivate::setSystemTransformAndViewport
void setSystemTransformAndViewport(const QTransform &xform, const QRegion ®ion)
Definition
qpaintengine_p.h:89
QPaintEnginePrivate::updateSystemClip
void updateSystemClip()
Definition
qpaintengine_p.h:48
QPaintEnginePrivate::pdev
QPaintDevice * pdev
Definition
qpaintengine_p.h:37
QPaintEnginePrivate::drawBoxTextItem
void drawBoxTextItem(const QPointF &p, const QTextItemInt &ti)
Definition
qpaintengine.cpp:1019
QPaintEnginePrivate::nativeHandle
virtual Qt::HANDLE nativeHandle()
Definition
qpaintengine_p.h:107
QPaintEnginePrivate::aggregateEngine
virtual QPaintEngine * aggregateEngine()
Definition
qpaintengine_p.h:106
QPaintEngine::QPainter
friend class QPainter
Definition
qpaintengine.h:220
QPainter::QPaintEngine
friend class QPaintEngine
Definition
qpainter.h:438
QPointF
\inmodule QtCore\reentrant
Definition
qpoint.h:232
QTextItemInt
Internal QTextItem.
Definition
qtextengine_p.h:267
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
Q_DECLARE_TYPEINFO
Q_DECLARE_TYPEINFO(QT_PointF, Q_PRIMITIVE_TYPE)
qt_draw_tile
Q_GUI_EXPORT void qt_draw_tile(QPaintEngine *gc, qreal x, qreal y, qreal w, qreal h, const QPixmap &pixmap, qreal xOffset, qreal yOffset)
Definition
qpaintengine.cpp:520
qt_fill_tile
void qt_fill_tile(QPixmap *tile, const QPixmap &pixmap)
Definition
qpaintengine.cpp:504
Q_DECLARE_TYPEINFO
Q_DECLARE_TYPEINFO(QT_Point, Q_PRIMITIVE_TYPE)
qt_polygon_recursion
static QPaintEngine * qt_polygon_recursion
Definition
qpaintengine.cpp:277
QT_PointF
Definition
qpaintengine.cpp:309
QT_PointF::y
qreal y
Definition
qpaintengine.cpp:311
QT_PointF::x
qreal x
Definition
qpaintengine.cpp:310
QT_Point
Definition
qpaintengine.cpp:278
QT_Point::x
int x
Definition
qpaintengine.cpp:279
QT_Point::y
int y
Definition
qpaintengine.cpp:280
qtbase
src
gui
painting
qpaintengine_p.h
Generated on
for Qt by
1.18.0