TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
commit -m "better"

21 Aug, 22:01

Telegram'da ochish Ulashish Shikoyat qilish

Запилить хороший рендер эмулятора терминала - продуктово весьма сложная задача. Не технически, потому что технически там каждый раз все понятно, а вот именно понять, что и когда надо делать - сложно.

Вот возьмем italic.

Если ты хочешь хорошо отрисовать текст в italic, то ты неизбежно придешь к тому, что левые ячейки налезают на правые, и ничего с этим не поделать - ну не помещается один italic символ в одну ячейку.

Ты начинаешь рендерить italic тем же способом, что и прочие лигатуры - отрисовываешь целые последовательности символов одним вызовом шрифтового движка, а потом пилишь результат на ячейки. В процессе некоторые ячейки начинают содержать кусочки нескольких символов, но это ровно то, что тебе надо для отрисовки italic.

Потом ты видишь, что по краям слов italic у тебя обрезан, и ты понимаешь, что это потому, что ты сделал границей последовательности пробельные символы. Это очень важно, потому что кешировать отрисовку слов - эффективно, а кешировать отрисовку линий - дорого.

Ты берешь, и добавляешь в последовательность самый правый пробельный символ после слова, и все становится хорошо и классно, потому что последней букве слова есть куда нависнуть, пока...

Пока ты не видишь, что если italic слово выделено болдом, то оно снова рисуется обрезанным. И все потому, что болд - это часть отрисовки шрифта, и тебе нужно обрывать последовательность, когда отрисовка шрифта меняется, потому что иначе получается дичь.

Кроме одного случая - если отрисовка шрифта меняется на пробельном символе, то и пофиг - неважно, болдом пробел рисуется, или нет, его можно включить в последовательность.

Такие дела.

Самое интересное в процессе, конечно, изучать, как это делают твои конкуренты, и на какие компромиссы идут.

#shitty

1.7k 0 4 146 50
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot