43{
44 m_d->globalPainter = painter;
45 m_d->alignedGlobalClipRect = globalClipRect.toAlignedRect();
46
47 if (!
m_d->alignedGlobalClipRect.isValid()) {
48 m_d->alignedGlobalClipRect = QRect();
49 }
50 m_d->shapeImage = QImage(
m_d->alignedGlobalClipRect.size(), QImage::Format_ARGB32);
51 m_d->maskImage = QImage(
m_d->alignedGlobalClipRect.size(), QImage::Format_ARGB32);
52
53 QTransform moveToBufferTransform =
54 QTransform::fromTranslate(-
m_d->alignedGlobalClipRect.x(),
55 -
m_d->alignedGlobalClipRect.y());
56
57 m_d->shapePainter.begin(&
m_d->shapeImage);
58
59 m_d->shapePainter.save();
60 m_d->shapePainter.setCompositionMode(QPainter::CompositionMode_Source);
61 m_d->shapePainter.fillRect(QRect(QPoint(),
m_d->alignedGlobalClipRect.size()), Qt::transparent);
62 m_d->shapePainter.restore();
63
64 m_d->shapePainter.setTransform(moveToBufferTransform);
65 m_d->shapePainter.setTransform(painter->transform(),
true);
66 if (painter->hasClipping()) {
67 m_d->shapePainter.setClipPath(painter->clipPath());
68 }
69 m_d->shapePainter.setOpacity(painter->opacity());
70 m_d->shapePainter.setBrush(painter->brush());
71 m_d->shapePainter.setPen(painter->pen());
72
73 m_d->maskPainter.begin(&
m_d->maskImage);
74
75 m_d->maskPainter.save();
76 m_d->maskPainter.setCompositionMode(QPainter::CompositionMode_Source);
77 m_d->maskPainter.fillRect(QRect(QPoint(),
m_d->alignedGlobalClipRect.size()), Qt::transparent);
78 m_d->maskPainter.restore();
79
80 m_d->maskPainter.setTransform(moveToBufferTransform);
81 m_d->maskPainter.setTransform(painter->transform(),
true);
82 if (painter->hasClipping()) {
83 m_d->maskPainter.setClipPath(painter->clipPath());
84 }
85 m_d->maskPainter.setOpacity(painter->opacity());
86 m_d->maskPainter.setBrush(painter->brush());
87 m_d->maskPainter.setPen(painter->pen());
88
89
90
91}
const QScopedPointer< Private > m_d