diff --git a/src/ViewportWidget.cpp b/src/ViewportWidget.cpp index 5010984..1b7fd5d 100644 --- a/src/ViewportWidget.cpp +++ b/src/ViewportWidget.cpp @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -160,10 +162,20 @@ void ViewportWidget::paintGL() if (m_currentPlane != SketchPlane::NONE && m_activeTool != static_cast(ApplicationController::ToolType::None) && m_toolIcons.contains(m_activeTool)) { QSvgRenderer* renderer = m_toolIcons.value(m_activeTool); if (renderer && renderer->isValid()) { - const QSize iconSize(16, 16); + const QSize iconSize(32, 32); const QPoint iconPos = m_currentMousePos + QPoint(15, 15); const QRect iconRect(iconPos, iconSize); - renderer->render(&painter, iconRect); + + QPixmap pixmap(iconSize); + pixmap.fill(Qt::transparent); + QPainter pixmapPainter(&pixmap); + renderer->render(&pixmapPainter); + pixmapPainter.end(); + + QImage image = pixmap.toImage(); + image.invertPixels(QImage::InvertRgb); + + painter.drawImage(iconRect, image); } }