Fix: crash when painting with high-dpr image brush
The recently merged f5fe9fc5a4 (Add ObjectMode to QGradient) changed combineXForm() to check the brush's gradient's coordinatemode. However, combineXForm() is now also used when painting with high-dpr image brush. In the latter case, the gradient is 0 so this would crash. Testcase: tst_lancelot, image_dpr.qps. Change-Id: I5e2785ef708768c3fa3eac0999c9c24fd25108f4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
92b3ef24ed
commit
0877ced980
@ -75,10 +75,10 @@ QPainterState *QEmulationPaintEngine::createState(QPainterState *orig) const
|
||||
static inline void combineXForm(QBrush *brush, const QRectF &r)
|
||||
{
|
||||
QTransform t(r.width(), 0, 0, r.height(), r.x(), r.y());
|
||||
if (brush->gradient()->coordinateMode() == QGradient::ObjectMode)
|
||||
brush->setTransform(brush->transform() * t);
|
||||
if (brush->gradient() && brush->gradient()->coordinateMode() != QGradient::ObjectMode)
|
||||
brush->setTransform(t * brush->transform()); // compat mode
|
||||
else
|
||||
brush->setTransform(t * brush->transform());
|
||||
brush->setTransform(brush->transform() * t);
|
||||
}
|
||||
|
||||
void QEmulationPaintEngine::fill(const QVectorPath &path, const QBrush &brush)
|
||||
|
Loading…
x
Reference in New Issue
Block a user