mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-16 06:07:06 +02:00
Fix forum userpic rounding on Retina screens.
This commit is contained in:
parent
3649cb41e2
commit
d5c145b707
4 changed files with 10 additions and 12 deletions
|
@ -353,7 +353,7 @@ QImage PeerData::generateUserpicImage(
|
|||
const auto round = [&](int radius) {
|
||||
return Images::Round(
|
||||
std::move(image),
|
||||
Images::CornersMask(radius));
|
||||
Images::CornersMask(radius / style::DevicePixelRatio()));
|
||||
};
|
||||
if (radius == 0) {
|
||||
return image;
|
||||
|
|
|
@ -382,13 +382,12 @@ void Photo::validateUserpicImageCache(QSize size, bool forum) const {
|
|||
if (blurredValue) {
|
||||
args = args.blurred();
|
||||
}
|
||||
original = Images::Prepare(std::move(original), size, args);
|
||||
original = Images::Prepare(std::move(original), size * ratio, args);
|
||||
if (forumValue) {
|
||||
original = Images::Round(
|
||||
std::move(original),
|
||||
Images::CornersMask(std::min(size.width(), size.height())
|
||||
* Ui::ForumUserpicRadiusMultiplier()
|
||||
* style::DevicePixelRatio()));
|
||||
* Ui::ForumUserpicRadiusMultiplier()));
|
||||
} else {
|
||||
original = Images::Circle(std::move(original));
|
||||
}
|
||||
|
@ -460,9 +459,8 @@ void Photo::paintUserpicFrame(
|
|||
request.outer = request.resize = size * ratio;
|
||||
if (forum) {
|
||||
const auto radius = int(std::min(size.width(), size.height())
|
||||
* Ui::ForumUserpicRadiusMultiplier()
|
||||
* ratio);
|
||||
if (_streamed->roundingCorners[0].width() != radius) {
|
||||
* Ui::ForumUserpicRadiusMultiplier());
|
||||
if (_streamed->roundingCorners[0].width() != radius * ratio) {
|
||||
_streamed->roundingCorners = Images::CornersMask(radius);
|
||||
}
|
||||
request.rounding = Images::CornersMaskRef(
|
||||
|
|
|
@ -478,9 +478,8 @@ void UserpicButton::paintUserpicFrame(Painter &p, QPoint photoPosition) {
|
|||
const auto forum = _peer && _peer->isForum();
|
||||
if (forum) {
|
||||
const auto radius = int(_st.photoSize
|
||||
* Ui::ForumUserpicRadiusMultiplier()
|
||||
* ratio);
|
||||
if (_roundingCorners[0].width() != radius) {
|
||||
* Ui::ForumUserpicRadiusMultiplier());
|
||||
if (_roundingCorners[0].width() != radius * ratio) {
|
||||
_roundingCorners = Images::CornersMask(radius);
|
||||
}
|
||||
request.rounding = Images::CornersMaskRef(_roundingCorners);
|
||||
|
|
|
@ -51,8 +51,9 @@ void ValidateUserpicCache(
|
|||
if (forum) {
|
||||
view.cached = Images::Round(
|
||||
std::move(view.cached),
|
||||
Images::CornersMask(
|
||||
size * Ui::ForumUserpicRadiusMultiplier()));
|
||||
Images::CornersMask(size
|
||||
* Ui::ForumUserpicRadiusMultiplier()
|
||||
/ style::DevicePixelRatio()));
|
||||
} else {
|
||||
view.cached = Images::Circle(std::move(view.cached));
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue