Fix devicePixelRatio when applying image rounding

This commit is contained in:
Ilya Fedin 2023-03-30 11:46:34 +04:00 committed by John Preston
parent 8b0e9ea7b8
commit 7e5ac77096
2 changed files with 3 additions and 5 deletions

View file

@ -50,7 +50,7 @@ const QImage &EllipseMaskCached(QSize size) {
} }
lock.unlock(); lock.unlock();
auto mask = EllipseMask(size); auto mask = EllipseMask(size, 1.);
lock.relock(); lock.relock();
return Masks.emplace(key, std::move(mask)).first->second; return Masks.emplace(key, std::move(mask)).first->second;
@ -321,9 +321,7 @@ std::array<QImage, 4> CornersMask(int radius) {
return PrepareCornersMask(radius); return PrepareCornersMask(radius);
} }
QImage EllipseMask(QSize size) { QImage EllipseMask(QSize size, double ratio) {
const auto ratio = style::DevicePixelRatio();
size *= ratio; size *= ratio;
auto result = QImage(size, QImage::Format_ARGB32_Premultiplied); auto result = QImage(size, QImage::Format_ARGB32_Premultiplied);
result.fill(Qt::transparent); result.fill(Qt::transparent);

View file

@ -96,7 +96,7 @@ struct CornersMaskRef {
const style::color &color); const style::color &color);
[[nodiscard]] std::array<QImage, 4> CornersMask(int radius); [[nodiscard]] std::array<QImage, 4> CornersMask(int radius);
[[nodiscard]] QImage EllipseMask(QSize size); [[nodiscard]] QImage EllipseMask(QSize size, double ratio = style::DevicePixelRatio());
[[nodiscard]] std::array<QImage, 4> PrepareCorners( [[nodiscard]] std::array<QImage, 4> PrepareCorners(
int radius, int radius,