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