31void QShapedPixmapWindow::setPixmap(
const QPixmap &pixmap)
34 if (!m_useCompositing) {
35 const QBitmap mask = m_pixmap.mask();
39 if (
auto platformWindow = handle()) {
40 const auto pixmapDpr = m_pixmap.devicePixelRatio();
41 const auto winDpr = devicePixelRatio();
42 const auto maskSize = (QSizeF(m_pixmap.size()) * winDpr / pixmapDpr).toSize();
43 platformWindow->setMask(QBitmap::fromPixmap(mask.scaled(maskSize)));
54void QShapedPixmapWindow::paintEvent(QPaintEvent *)
56 if (!m_pixmap.isNull()) {
57 const QRect rect(QPoint(0, 0), size());
58 QPainter painter(
this);
60 painter.setCompositionMode(QPainter::CompositionMode_Source);
62 painter.fillRect(rect, QGuiApplication::palette().base());
63 painter.drawPixmap(rect, m_pixmap);