47bool QRasterBackingStore::scroll(
const QRegion ®ion,
int dx,
int dy)
49 if (window()->surfaceType() != QSurface::RasterSurface)
52 extern void qt_scrollRectInImage(QImage &,
const QRect &,
const QPoint &);
54 const qreal devicePixelRatio = m_image.devicePixelRatio();
55 const QPoint delta(dx * devicePixelRatio, dy * devicePixelRatio);
57 const QRect rect = region.boundingRect();
58 qt_scrollRectInImage(m_image, QRect(rect.topLeft() * devicePixelRatio, rect.size() * devicePixelRatio), delta);
63void QRasterBackingStore::beginPaint(
const QRegion ®ion)
65 qreal nativeWindowDevicePixelRatio = window()->handle()->devicePixelRatio();
66 QSize effectiveBufferSize = m_requestedSize * nativeWindowDevicePixelRatio;
67 if (m_image.devicePixelRatio() != nativeWindowDevicePixelRatio || m_image.size() != effectiveBufferSize) {
68 m_image = QImage(effectiveBufferSize, format());
69 m_image.setDevicePixelRatio(nativeWindowDevicePixelRatio);
70 if (m_image.hasAlphaChannel())
71 m_image.fill(Qt::transparent);
74 if (!m_image.hasAlphaChannel())
77 QPainter painter(&m_image);
78 painter.setCompositionMode(QPainter::CompositionMode_Source);
79 for (
const QRect &rect : region)
80 painter.fillRect(rect, Qt::transparent);