mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-15 21:57:10 +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.");
|
||||
}
|
||||
|
||||
[[nodiscard]] int SizeFromTag(SizeTag tag) {
|
||||
[[nodiscard]] int EmojiSizeFromTag(SizeTag tag) {
|
||||
switch (tag) {
|
||||
case SizeTag::Normal: return Ui::Emoji::GetSizeNormal();
|
||||
case SizeTag::Large: return Ui::Emoji::GetSizeLarge();
|
||||
|
@ -49,6 +49,12 @@ using SizeTag = CustomEmojiManager::SizeTag;
|
|||
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
|
||||
|
||||
class CustomEmojiLoader final
|
||||
|
@ -220,9 +226,10 @@ void CustomEmojiLoader::startCacheLookup(
|
|||
lookup->process = std::make_unique<Process>(Process{
|
||||
.loaded = std::move(loaded),
|
||||
});
|
||||
const auto size = SizeFromTag(_tag);
|
||||
const auto weak = base::make_weak(&lookup->process->guard);
|
||||
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 {
|
||||
lookupDone(lookup, std::move(result));
|
||||
});
|
||||
|
@ -297,7 +304,7 @@ void CustomEmojiLoader::check() {
|
|||
.generator = std::move(generator),
|
||||
.put = std::move(put),
|
||||
.loader = std::move(loader),
|
||||
.size = SizeFromTag(_tag),
|
||||
.size = size,
|
||||
});
|
||||
base::take(load->process)->loaded(Caching{
|
||||
std::move(renderer),
|
||||
|
|
|
@ -79,15 +79,17 @@ void Preview::paintPath(
|
|||
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)) {
|
||||
return {};
|
||||
}
|
||||
auto header = CacheHeader();
|
||||
memcpy(&header, serialized.data(), sizeof(header));
|
||||
const auto size = header.size;
|
||||
if (size <= 0
|
||||
|| size > kMaxSize
|
||||
if (size != requestedSize
|
||||
|| header.frames <= 0
|
||||
|| header.frames >= kMaxFrames
|
||||
|| header.length <= 0
|
||||
|
|
|
@ -66,7 +66,8 @@ public:
|
|||
};
|
||||
|
||||
[[nodiscard]] static std::optional<Cache> FromSerialized(
|
||||
const QByteArray &serialized);
|
||||
const QByteArray &serialized,
|
||||
int requestedSize);
|
||||
[[nodiscard]] QByteArray serialize();
|
||||
|
||||
[[nodiscard]] int size() const;
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 2bec77825150094d248528f40341c6aef16e810a
|
||||
Subproject commit d7318d849ef89873a1b4f78f23e471555061921b
|
Loading…
Add table
Reference in a new issue