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