Fix devicePixelRatio when applying image rounding
This commit is contained in:
parent
8b0e9ea7b8
commit
7e5ac77096
2 changed files with 3 additions and 5 deletions
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue