mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Make custom emoji size 12% larger.
This commit is contained in:
parent
c1cdca36d2
commit
e954871cb9
4 changed files with 18 additions and 8 deletions
|
@ -41,7 +41,7 @@ using SizeTag = CustomEmojiManager::SizeTag;
|
||||||
Unexpected("SizeTag value in CustomEmojiManager-LottieSizeFromTag.");
|
Unexpected("SizeTag value in CustomEmojiManager-LottieSizeFromTag.");
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] int SizeFromTag(SizeTag tag) {
|
[[nodiscard]] int EmojiSizeFromTag(SizeTag tag) {
|
||||||
switch (tag) {
|
switch (tag) {
|
||||||
case SizeTag::Normal: return Ui::Emoji::GetSizeNormal();
|
case SizeTag::Normal: return Ui::Emoji::GetSizeNormal();
|
||||||
case SizeTag::Large: return Ui::Emoji::GetSizeLarge();
|
case SizeTag::Large: return Ui::Emoji::GetSizeLarge();
|
||||||
|
@ -49,6 +49,12 @@ using SizeTag = CustomEmojiManager::SizeTag;
|
||||||
Unexpected("SizeTag value in CustomEmojiManager-SizeFromTag.");
|
Unexpected("SizeTag value in CustomEmojiManager-SizeFromTag.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] int SizeFromTag(SizeTag tag) {
|
||||||
|
const auto emoji = EmojiSizeFromTag(tag);
|
||||||
|
const auto factor = style::DevicePixelRatio();
|
||||||
|
return Ui::Text::AdjustCustomEmojiSize(emoji / factor) * factor;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
class CustomEmojiLoader final
|
class CustomEmojiLoader final
|
||||||
|
@ -220,9 +226,10 @@ void CustomEmojiLoader::startCacheLookup(
|
||||||
lookup->process = std::make_unique<Process>(Process{
|
lookup->process = std::make_unique<Process>(Process{
|
||||||
.loaded = std::move(loaded),
|
.loaded = std::move(loaded),
|
||||||
});
|
});
|
||||||
|
const auto size = SizeFromTag(_tag);
|
||||||
const auto weak = base::make_weak(&lookup->process->guard);
|
const auto weak = base::make_weak(&lookup->process->guard);
|
||||||
document->owner().cacheBigFile().get(key, [=](QByteArray value) {
|
document->owner().cacheBigFile().get(key, [=](QByteArray value) {
|
||||||
auto cache = Ui::CustomEmoji::Cache::FromSerialized(value);
|
auto cache = Ui::CustomEmoji::Cache::FromSerialized(value, size);
|
||||||
crl::on_main(weak, [=, result = std::move(cache)]() mutable {
|
crl::on_main(weak, [=, result = std::move(cache)]() mutable {
|
||||||
lookupDone(lookup, std::move(result));
|
lookupDone(lookup, std::move(result));
|
||||||
});
|
});
|
||||||
|
@ -297,7 +304,7 @@ void CustomEmojiLoader::check() {
|
||||||
.generator = std::move(generator),
|
.generator = std::move(generator),
|
||||||
.put = std::move(put),
|
.put = std::move(put),
|
||||||
.loader = std::move(loader),
|
.loader = std::move(loader),
|
||||||
.size = SizeFromTag(_tag),
|
.size = size,
|
||||||
});
|
});
|
||||||
base::take(load->process)->loaded(Caching{
|
base::take(load->process)->loaded(Caching{
|
||||||
std::move(renderer),
|
std::move(renderer),
|
||||||
|
|
|
@ -79,15 +79,17 @@ void Preview::paintPath(
|
||||||
Cache::Cache(int size) : _size(size) {
|
Cache::Cache(int size) : _size(size) {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::optional<Cache> Cache::FromSerialized(const QByteArray &serialized) {
|
std::optional<Cache> Cache::FromSerialized(
|
||||||
|
const QByteArray &serialized,
|
||||||
|
int requestedSize) {
|
||||||
|
Expects(requestedSize > 0 && requestedSize <= kMaxSize);
|
||||||
if (serialized.size() <= sizeof(CacheHeader)) {
|
if (serialized.size() <= sizeof(CacheHeader)) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
auto header = CacheHeader();
|
auto header = CacheHeader();
|
||||||
memcpy(&header, serialized.data(), sizeof(header));
|
memcpy(&header, serialized.data(), sizeof(header));
|
||||||
const auto size = header.size;
|
const auto size = header.size;
|
||||||
if (size <= 0
|
if (size != requestedSize
|
||||||
|| size > kMaxSize
|
|
||||||
|| header.frames <= 0
|
|| header.frames <= 0
|
||||||
|| header.frames >= kMaxFrames
|
|| header.frames >= kMaxFrames
|
||||||
|| header.length <= 0
|
|| header.length <= 0
|
||||||
|
|
|
@ -66,7 +66,8 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
[[nodiscard]] static std::optional<Cache> FromSerialized(
|
[[nodiscard]] static std::optional<Cache> FromSerialized(
|
||||||
const QByteArray &serialized);
|
const QByteArray &serialized,
|
||||||
|
int requestedSize);
|
||||||
[[nodiscard]] QByteArray serialize();
|
[[nodiscard]] QByteArray serialize();
|
||||||
|
|
||||||
[[nodiscard]] int size() const;
|
[[nodiscard]] int size() const;
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 2bec77825150094d248528f40341c6aef16e810a
|
Subproject commit d7318d849ef89873a1b4f78f23e471555061921b
|
Loading…
Add table
Reference in a new issue