QtBase  v6.3.1
qpaintengine_pic_p.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
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 The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/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 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #ifndef QPAINTENGINE_PIC_P_H
41 #define QPAINTENGINE_PIC_P_H
42 
43 //
44 // W A R N I N G
45 // -------------
46 //
47 // This file is not part of the Qt API. It exists purely as an
48 // implementation detail. This header file may change from version to
49 // version without notice, or even be removed.
50 //
51 // We mean it.
52 //
53 
54 #include <QtGui/private/qtguiglobal_p.h>
55 #include <QtGui/qpaintengine.h>
56 
57 #ifndef QT_NO_PICTURE
58 
60 
62 class QBuffer;
63 
65 {
66  Q_DECLARE_PRIVATE(QPicturePaintEngine)
67 public:
70 
71  bool begin(QPaintDevice *pdev) override;
72  bool end() override;
73 
74  void updateState(const QPaintEngineState &state) override;
75 
76  void updatePen(const QPen &pen);
77  void updateBrush(const QBrush &brush);
78  void updateBrushOrigin(const QPointF &origin);
79  void updateFont(const QFont &font);
80  void updateBackground(Qt::BGMode bgmode, const QBrush &bgBrush);
81  void updateMatrix(const QTransform &matrix);
82  void updateClipRegion(const QRegion &region, Qt::ClipOperation op);
84  void updateRenderHints(QPainter::RenderHints hints);
86  void updateClipEnabled(bool enabled);
87  void updateOpacity(qreal opacity);
88 
89  void drawEllipse(const QRectF &rect) override;
90  void drawPath(const QPainterPath &path) override;
91  void drawPolygon(const QPointF *points, int numPoints, PolygonDrawMode mode) override;
93 
94  void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) override;
95  void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s) override;
96  void drawImage(const QRectF &r, const QImage &image, const QRectF &sr,
97  Qt::ImageConversionFlags flags = Qt::AutoColor) override;
98  void drawTextItem(const QPointF &p, const QTextItem &ti) override;
99 
100  Type type() const override { return Picture; }
101 
102 protected:
104 
105 private:
107 
108  void writeCmdLength(int pos, const QRectF &r, bool corr);
109 };
110 
112 
113 #endif // QT_NO_PICTURE
114 
115 #endif // QPAINTENGINE_PIC_P_H
The QBrush class defines the fill pattern of shapes drawn by QPainter.
Definition: qbrush.h:66
The QBuffer class provides a QIODevice interface for a QByteArray.
Definition: qbuffer.h:52
The QFont class specifies a query for a font used for drawing text.
Definition: qfont.h:56
The QImage class provides a hardware-independent image representation that allows direct access to th...
Definition: qimage.h:73
The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a g...
Definition: qpaintengine.h:87
virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
QPaintEngineState * state
Definition: qpaintengine.h:234
The QPaintEngineState class provides information about the active paint engine's current state....
Definition: qpaintengine.h:268
CompositionMode
Definition: qpainter.h:132
The QPainterPath class provides a container for painting operations, enabling graphical shapes to be ...
Definition: qpainterpath.h:65
The QPen class defines how a QPainter should draw lines and outlines of shapes.
Definition: qpen.h:61
void updateOpacity(qreal opacity)
void drawImage(const QRectF &r, const QImage &image, const QRectF &sr, Qt::ImageConversionFlags flags=Qt::AutoColor) override
void updateMatrix(const QTransform &matrix)
void updatePen(const QPen &pen)
void updateClipRegion(const QRegion &region, Qt::ClipOperation op)
void drawPath(const QPainterPath &path) override
void drawTextItem(const QPointF &p, const QTextItem &ti) override
virtual void drawPolygon(const QPointF *points, int pointCount, PolygonDrawMode mode)
void updateBrushOrigin(const QPointF &origin)
void updateFont(const QFont &font)
void updateCompositionMode(QPainter::CompositionMode cmode)
void drawTiledPixmap(const QRectF &r, const QPixmap &pixmap, const QPointF &s) override
void updateClipEnabled(bool enabled)
void updateState(const QPaintEngineState &state) override
void updateBrush(const QBrush &brush)
void drawEllipse(const QRectF &rect) override
void updateClipPath(const QPainterPath &path, Qt::ClipOperation op)
void drawPixmap(const QRectF &r, const QPixmap &pm, const QRectF &sr) override
void updateRenderHints(QPainter::RenderHints hints)
void updateBackground(Qt::BGMode bgmode, const QBrush &bgBrush)
Type type() const override
bool begin(QPaintDevice *pdev) override
The QPixmap class is an off-screen image representation that can be used as a paint device.
Definition: qpixmap.h:63
The QPointF class defines a point in the plane using floating point precision.
Definition: qpoint.h:242
The QRectF class defines a finite rectangle in the plane using floating point precision.
Definition: qrect.h:511
The QRegion class specifies a clip region for a painter.
Definition: qregion.h:63
The QTextItem class provides all the information required to draw text in a custom paint engine.
Definition: qpaintengine.h:64
The QTransform class specifies 2D transformations of a coordinate system.
Definition: qtransform.h:56
rect
[4]
@ AutoColor
Definition: qnamespace.h:503
ClipOperation
Definition: qnamespace.h:1330
BGMode
Definition: qnamespace.h:531
Definition: brush.cpp:52
Definition: image.cpp:51
set set set set set set set macro pixldst1 op
#define Q_DISABLE_COPY_MOVE(Class)
Definition: qglobal.h:519
QT_END_INCLUDE_NAMESPACE typedef double qreal
Definition: qglobal.h:341
GLenum mode
GLboolean r
[2]
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLbitfield flags
GLfixed GLfixed GLint GLint GLfixed points
Definition: qopenglext.h:5206
GLuint GLenum matrix
Definition: qopenglext.h:11564
GLsizei const GLchar *const * path
Definition: qopenglext.h:4283
GLdouble s
[6]
Definition: qopenglext.h:235
GLfloat GLfloat p
[1]
Definition: qopenglext.h:12698
widget render & pixmap
Definition: moc.h:48