LINUX.ORG.RU

Библиотека Pango отказалась от мягкого сглаживания шрифтов (hintfull)

 , ,


2

4

Библиотека Pango перешла от использования FreeType для получения информации о шрифтах к HarfBuzz, а разработчики последнего приняли решение не поддерживать такой метод сглаживая шрифтов.

Пользователи, которые перешли с версии Pango 1.43 на 1.44 заметили, что отображение некоторых семейств шрифтов ухудшилось или полностью сломалось.

В ответ на критику разработчики HarfBuzz ответили: «Вы можете попытаться привыкнуть к «мыльному» рендерингу или попытаться найти что-то еще. Вы же используете Open Source, понимаете? И те кого не устраивает текущее состояние могут создать форк Pango.»

Подробности


Upd: Подробный ответ автора: https://github.com/harfbuzz/harfbuzz/issues/2394#issuecomment-626254448

The challenge between the pixelated rendering vs scalable layout is nothing new. Here’s a treatise from almost 20 years ago: http://rastertragedy.com/ Here's my writeup about some of those same challenges I had to find solution to for Chrome back in 2012: http://goo.gl/yf3M7

LibreOffice switched to HarfBuzz to benefit from a single unified shaping-engine, same decision that Chrome and Firefox took as well. These are engineering decisions. It also meant LibreOffice dropped support for Type1 fonts. There were of course the vocal minority complaining and wanting old features back. I asked Adobe if they are willing to contribute support for Type1 to HarfBuzz, they said even Adobe products are dropping Type1 support next year. Same thing about bitmap fonts, people want their bitmap fonts back, we told them to wrap them in OpenType containers.

And same change arrived at Pango. Again, loud minority roars, throwing tantrums and unwilling to listen. The world moves forward. We do what we can with our limited resources. We cannot keep your 20-year old favorite feature working forever. It’s not on us. Find someone to maintain it and pay them to do for you if you cannot get over it.



Последнее исправление: alpha (всего исправлений: 4)

Ответ на: комментарий от peregrine

При том что делать очередной велосипед не нужно

Линукс не нужен, уже есть миникс © 1991

Человек сделал велосипед и добился тем самым выкидывания ленивыми разрабами работающего проекта

Работающий проект был настолько работающим, что ленивым разработчикам даже лень не помешала пойти переписывать свой проект на левый велосипед. Facepalm. Ты себя вообще читать пробовал? А со включённым мозгом?

gremlin_the_red ★★★★★
()
Ответ на: комментарий от actionless

от того что они поменяют лицензию в новой версии, в старых она никак не поменяется

Значит, надо форкать с той версии, где лицензия это ещё позволяет. Мой вопрос в том, новейшая ли это сейчас версия на данный момент.

anonymous
()
Ответ на: комментарий от Skullnet

OK, мне лень это читать, но если надежда на waterfox так или иначе разрушена, то что не так с palemoon?

anonymous
()
Ответ на: комментарий от gremlin_the_red

ленивым разработчикам даже лень не помешала

Так в том-то и дело, что они не ленивые, а одержимые ф*министками. Им ничего делать не лень, но они тупы, как глобус, и способны только портить.

anonymous
()
Ответ на: комментарий от gremlin_the_red

Линукс не нужен, уже есть миникс © 1991

ЧСХ Танненбаум был прав.

Работающий проект был настолько работающим, что ленивым разработчикам даже лень не помешала пойти переписывать свой проект на левый велосипед.

Рассказать как софт разрабатывается в реальности, а не на бумаге? Ты косячишь, косячишь, учишься, понимаешь что накосячил слишком много и надо переписывать получившееся в результате твоей деятельности говно. Но вместо того, чтобы фиксить за собой свои косяки ты начинаешь плакаться на тему, а вот если переписать на $language станет лучше, а вот если поменять либу $libaname1 на $libaname2 станет лучше. А оно нифига не станет, будет так же, потому что проблема не в либе, она в тебе. Просто шило на мыло поменяется и всё. А плакаться начинаешь по 2-ум причинам. Первая — отказ признавать в себе говнокодера, ты же не такой, да, $username? Вторая — даже если ты понял что ты говнокодер, нельзя же чтобы об этом твоё начальство узнало? Да?

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

ЧСХ Танненбаум был прав.

Ты пишешь это с миникса?

Рассказать как софт разрабатывается в реальности, а не на бумаге?

Т.е. панго и так было говно и перевод на другую либу ничего не изменил, так? Тогда вдвойне непонятно, при чём здесь harfbuzz и её автор.

gremlin_the_red ★★★★★
()
Последнее исправление: gremlin_the_red (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

Ты пишешь это с миникса?

С компа в котором, как и во всех компах штеуда есть IntelME, в котором, внезапно, крутится невероятно популярная ОС (так как она уже есть в каждом проце штеуда, выпущенном после 2015 года) - Minix. И не важно что ты там поверх ставить будешь - вантуз, линукс или бздю. Твой пекич на миниксе крутится.

Т.е. панго и так было говно и перевод на другую либу ничего не изменил, так? Тогда вдвойне непонятно, при чём здесь harfbuzz и её автор.

Если разрабы не менялись, то да. Но разница в том, что то говно было отлаженое, а теперь фичи выкинули и не отладили. Лет через 10-15 наберут тех же фич и по новой. Прогресс блин.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Скажи честно, ты уже месяц на самоизоляции непрерывно бухаешь? Я просто не очень понимаю, как человек может накопить пять звёзд, когда количество логики в его постах является отрицательным.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от peregrine

то говно было отлаженое

В чём проблема-то? Бери, используй, и горя не знай. Есть же доступ к старым версиям ПО, его никуда не прятали.

i-rinat ★★★★★
()
Ответ на: комментарий от peregrine

Qt из-за того, что они сейчас мутят с лицензией - QtCreator собирать из сорцов надо, а с сайта фиг скачаешь без регистрации.

Но согласись, компиляция это услуга.

torvn77 ★★★★★
()
Ответ на: комментарий от crypt

почему у меня chromium слинкован с pango…

Потому что использует. В одном месте, видимо, забыли удалить. В другом станет неактуально в конце 2020, когда поддержка Flash закончится. И ещё в одном месте для поддержки IME.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Проблема в том, что вечно его использовать не удастся. Но да, я понимаю saahriktu.

peregrine ★★★★★
()
Ответ на: комментарий от RazrFalcon

Речь про превью в том же ФМ

Сгенерировать в один поток .thumbnails или вообще в отвязке от GUI, сложить их в базу данных и показывать по штуке не вариант? Их один фиг много рисовать надо обычно, так что тут многопроцессовость, а не многопоточность нужна.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Ну так о чём и речь. Вместо изобретения костылей проще использовать нормальную либу. Не уметь многопоточность в 21-м веке - это приговор.

RazrFalcon ★★★★★
()
Ответ на: комментарий от peregrine

так что тут многопроцессовость, а не многопоточность нужна.

И генерировать кеш шрифтов каждый раз, зсб.

RazrFalcon ★★★★★
()
Ответ на: комментарий от RazrFalcon

Вместо изобретения костылей проще использовать нормальную либу.

Но она не нормальная, а автор который не собирается делать её нормальной или не может никак не способствует тому, что её можно использовать. Кстати, скажи, зачем нужен многопоток в приложениях? А то 90% «разработчиков» не понимают этого.

peregrine ★★★★★
()
Ответ на: комментарий от RazrFalcon

Ну… да.

Кстати, всё со временем будут форкать отдельный процесс, хоть и многопоточный. Хотя бы потому, что отдельный процесс можно посадить в песочницу, а вот отдельный поток — не очень.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

это всё будет тормозить

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

и не поддерживаться драйверами

Это ещё почему?

i-rinat ★★★★★
()
Ответ на: комментарий от peregrine

Кстати, скажи, зачем нужен многопоток в приложениях?

Полегче с веществами. А то совсем связь с реальным миром потеряете.

RazrFalcon ★★★★★
()
Ответ на: комментарий от peregrine

Но она не нормальная, а автор который не собирается делать её нормальной или не может никак не способствует тому, что её можно использовать.

Когда нужно было вызывать функции из FreeType, меня сильно удивил способ её использования в коде. Нужно делать так:

#include <ft2build.h>
#include FT_TRUETYPE_TABLES_H

Нужно инклудить макрос, блин. Это как вообще? В общем, там сразу с места виден альтернативный подход ко всему.

i-rinat ★★★★★
()
Ответ на: комментарий от peregrine

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

anonymous
()

Надо признать, вброс у birdie получился годный. Если аж на форониксе про него статью запилили и на ЛОРе срач такой стоит.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от i-rinat

Да, я тоже сходу не мог понять как им пользоваться. Документация скудная до безобразия. Плюс всё завязано на глобальное состояние.

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

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

Проблема не в смене конфига. Его как хочешь меняй результат разный будет.

peregrine ★★★★★
()
Ответ на: комментарий от anonymous

Не-е, эти аргументы работают только когда мне нужно свою правоту доказывать. Против меня их использовать нельзя.

Но если всё же хочется, желательно с более конкретными деталями. Когда я писал, что есть сложности с разнесением между процессами, это были ответы на вопросы вроде: «вот mpv же использует, проблем нет. Почему нельзя просто встроить mpv в браузер?» Тут другое дело: работа исключительно на CPU. Результат работы — набор байт, который передаётся через общую память. Нет взаимодействия ни с графической системой, ни с дополнительными железками.

i-rinat ★★★★★
()
Ответ на: комментарий от anonymous

Есть ещё какие-то библиотеки, которые так делают?

i-rinat ★★★★★
()
Ответ на: комментарий от peregrine

Какой 18.04? Тут уже пачку скриншотов с тахомой выложили и все там прекрасно. Так что просто не надо вестись на унылый троллинг и все.

Polugnom ★★★★★
()
Ответ на: комментарий от i-rinat

#include <ft2build.h> #include FT_TRUETYPE_TABLES_H Нужно инклудить макрос, блин. Это как вообще?

См. freetype-2.10.2\docs\reference\ft2-header_file_macros.html

#define FT_TRUETYPE_TABLES_H <freetype/tttables.h>

#include можно и «Войну и Мир» подключить.

#include - стиль 60-х.
C++ странно развивается …
Вместо того, чтобы забыть а-ля PHP стиль /#include, template, макросы, …/, их развивают да еще приравнивают к метапрограммированию.
Нынешние стандарты нужно

"Понять и простить"

Владимир

anonymous
()
Ответ на: комментарий от anonymous

Я отвечу. что не так с palemoon. Они на своём сайте пишут какую-то фигню про лицензии, типа они под MPL, но непонятно по какому праву мешают пользователям не то компилировать, не то распространять скомпилированное. Причём создаётся впечатление, что даже под другим названием, хотя MPL такие препоны запрещает. В результате их на всякий случай не берут в дистрибутивы линукса, а под мандой они нафиг никому не нужны.

Но с другой стороны, мне кажется, ЛОРу вполне по силам на них наехать и продавить, что если уж вы форкаете мозиллу, которая написана под MPL, то не мешайте перекомпиляции под другим именем. Нужно просто больше флудить у них на форуме. А после этого, глядя на скатывание FF, их начнут брать в дистры.

anonymous
()
Ответ на: комментарий от Polugnom

с FREETYPE_PROPERTIES=truetype:interpreter-version=35 ещё ни одного не выложили

anonymous
()
Ответ на: комментарий от RazrFalcon

да нет, хромиум. телепатию ты какую-то имхо включил.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 1)
Ответ на: комментарий от i-rinat

когда поддержка Flash закончится

_chromium_, нету флеша

Потому что использует.

вот это и интересно, потому что я на протяжении всей новости читаю, что мол ушли они от pango.

crypt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.