54 #include <QtCore/qvarlengtharray.h>
55 #include <QtGui/private/qtguiglobal_p.h>
56 #include "QtGui/qbrush.h"
57 #include "QtGui/qcolorspace.h"
58 #include "QtGui/qcolortransform.h"
59 #include "QtGui/qfont.h"
60 #include "QtGui/qpen.h"
61 #include "QtGui/qregion.h"
62 #include "QtGui/qpainter.h"
63 #include "QtGui/qpainterpath.h"
64 #include "QtGui/qpaintengine.h"
66 #include <private/qpen_p.h>
168 int wx = 0, wy = 0, ww = 0, wh = 0;
169 int vx = 0, vy = 0, vw = 0, vh = 0;
207 std::unique_ptr<QPainterState>
state;
208 template <
typename T, std::
size_t N = 8>
228 dummyState = std::make_unique<QPainterDummyState>();
242 #if !defined(QT_NO_RAWFONT)
244 QFontEngine *fontEngine,
bool overline =
false,
bool underline =
false,
245 bool strikeOut =
false);
272 if (pe && pe->autoDestruct())
276 std::unique_ptr<QPaintEngine, QPaintEngineDestructor>
engine;
The QBrush class defines the fill pattern of shapes drawn by QPainter.
std::unique_ptr< QBrushData, QBrushDataPointerDeleter > DataPtr
The QColor class provides colors based on RGB, HSV or CMYK values.
The QFont class specifies a query for a font used for drawing text.
The QPaintEngine class provides an abstract definition of how QPainter draws to a given device on a g...
The QPaintEngineState class provides information about the active paint engine's current state....
QPainterClipInfo(const QRectF &r, Qt::ClipOperation op, const QTransform &m)
QPainterClipInfo(const QRect &r, Qt::ClipOperation op, const QTransform &m)
QPainterClipInfo(const QRegion &r, Qt::ClipOperation op, const QTransform &m)
Qt::ClipOperation operation
QPainterClipInfo(const QPainterPath &p, Qt::ClipOperation op, const QTransform &m)
The QPainter class performs low-level painting on widgets and other paint devices.
@ CompositionMode_SourceOver
The QPainterPath class provides a container for painting operations, enabling graphical shapes to be ...
QPainterDummyState * fakeState() const
void drawOpaqueBackground(const QPainterPath &path, DrawOperation operation)
void updateEmulationSpecifier(QPainterState *s)
QPaintDevice * original_device
QPaintEngineEx * extended
QPaintDevice * helper_device
void initFrom(const QPaintDevice *device)
static constexpr qsizetype NDPtrs
SmallStack< std::unique_ptr< QPainterState > > savedStates
std::unique_ptr< QPaintEngine, QPaintEngineDestructor > engine
void updateState(QPainterState *state)
std::unique_ptr< QEmulationPaintEngine > emulationEngine
void draw_helper(const QPainterPath &path, DrawOperation operation=StrokeAndFillDraw)
QVarLengthArray< QPainterPrivate *, NDPtrs > d_ptrs
QPainterPrivate(QPainter *painter)
void drawTextItem(const QPointF &p, const QTextItem &_ti, QTextEngine *textEngine)
void drawStretchedGradient(const QPainterPath &path, DrawOperation operation)
void updateState(std::unique_ptr< QPainterState > &state)
QTransform hidpiScaleTransform() const
void detachPainterPrivate(QPainter *q)
static QPainterPrivate * get(QPainter *painter)
QTransform viewTransform() const
qreal effectiveDevicePixelRatio() const
std::unique_ptr< QPainterDummyState > dummyState
std::unique_ptr< QPainterState > state
void updateStateImpl(QPainterState *state)
static bool attachPainterPrivate(QPainter *q, QPaintDevice *pdev)
void drawGlyphs(const QPointF &decorationPosition, const quint32 *glyphArray, QFixedPoint *positionArray, int glyphCount, QFontEngine *fontEngine, bool overline=false, bool underline=false, bool strikeOut=false)
QList< QPainterClipInfo > clipInfo
QPainter::RenderHints renderHints
Qt::LayoutDirection layoutDirection
QTransform redirectionMatrix
The QPen class defines how a QPainter should draw lines and outlines of shapes.
The QPointF class defines a point in the plane using floating point precision.
The QRawFont class provides access to a single physical instance of a font.
The QRectF class defines a finite rectangle in the plane using floating point precision.
The QRect class defines a rectangle in the plane using integer precision.
The QRegion class specifies a clip region for a painter.
The QString class provides a Unicode character string.
The QTextItem class provides all the information required to draw text in a custom paint engine.
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro vuzp8 reg2 vuzp d d ®2 endm macro vzip8 reg2 vzip d d ®2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld init[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld SRC pixld MASK if DST_R else pixld DST_R endif if src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head if pixblock_size cache_preload_simple endif process_pixblock_tail pixinterleave dst_w_basereg irp if pixblock_size chunk_size tst beq if DST_W else pixst DST_W else mov ORIG_W endif add lsl if lsl endif if lsl endif lsl endif lsl endif lsl endif subs mov DST_W if regs_shortage str endif bge start_of_loop_label endm macro generate_composite_function
set set set set set set set macro pixldst1 op
QT_END_INCLUDE_NAMESPACE typedef double qreal
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
[7]
GLdouble GLdouble GLdouble GLdouble q
GLsizei const GLchar *const * path
qreal qpen_widthf(const QPen &p)
Qt::BrushStyle qbrush_style(const QBrush &b)
bool qpen_fast_equals(const QPen &a, const QPen &b)
Qt::PenStyle qpen_style(const QPen &p)
const QColor & qbrush_color(const QBrush &b)
const void * data_ptr(const QTransform &t)
QString qt_generate_brush_key(const QBrush &brush)
Q_GUI_EXPORT void qt_draw_helper(QPainterPrivate *p, const QPainterPath &path, QPainterPrivate::DrawOperation operation)
Q_DECLARE_TYPEINFO(QPainterClipInfo, Q_RELOCATABLE_TYPE)
Qt::PenCapStyle qpen_capStyle(const QPen &p)
Qt::PenJoinStyle qpen_joinStyle(const QPen &p)
QBrush qpen_brush(const QPen &p)
bool qbrush_fast_equals(const QBrush &a, const QBrush &b)
bool qtransform_fast_equals(const QTransform &a, const QTransform &b)
bool qbrush_has_transform(const QBrush &b)
void operator()(QPaintEngine *pe) const noexcept