From 7e5ac770967d1751d2bad8768b2898bbaeddef98 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Thu, 30 Mar 2023 11:46:34 +0400 Subject: [PATCH] Fix devicePixelRatio when applying image rounding --- ui/image/image_prepare.cpp | 6 ++---- ui/image/image_prepare.h | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/ui/image/image_prepare.cpp b/ui/image/image_prepare.cpp index a729254..d5e9f16 100644 --- a/ui/image/image_prepare.cpp +++ b/ui/image/image_prepare.cpp @@ -50,7 +50,7 @@ const QImage &EllipseMaskCached(QSize size) { } lock.unlock(); - auto mask = EllipseMask(size); + auto mask = EllipseMask(size, 1.); lock.relock(); return Masks.emplace(key, std::move(mask)).first->second; @@ -321,9 +321,7 @@ std::array CornersMask(int radius) { return PrepareCornersMask(radius); } -QImage EllipseMask(QSize size) { - const auto ratio = style::DevicePixelRatio(); - +QImage EllipseMask(QSize size, double ratio) { size *= ratio; auto result = QImage(size, QImage::Format_ARGB32_Premultiplied); result.fill(Qt::transparent); diff --git a/ui/image/image_prepare.h b/ui/image/image_prepare.h index da0b7cb..c312a02 100644 --- a/ui/image/image_prepare.h +++ b/ui/image/image_prepare.h @@ -96,7 +96,7 @@ struct CornersMaskRef { const style::color &color); [[nodiscard]] std::array CornersMask(int radius); -[[nodiscard]] QImage EllipseMask(QSize size); +[[nodiscard]] QImage EllipseMask(QSize size, double ratio = style::DevicePixelRatio()); [[nodiscard]] std::array PrepareCorners( int radius,