LINUX.ORG.RU

Неправильный размер 10 размера шрифта?

 , ,


0

1

Есть два ос - Ubuntu 14.04 и 16.10

Одинаковый шрифт Monospace:

azq2@zhumarin:~$ fc-match Monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

Но рендерится по разному! В 14.04 размер для 10-го шрифта «p» 11px, а в 16.10 он уже ровно 10px. При этом 11-й шрифт в 16.10 уже целых 12px

Получается теперь, что при 10px плохо видно, а при 11px слишком большой шрифт.

Вот нарисовал, где хорошо видно проблему: http://i.imgur.com/diHfM3K.png

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


Фритайп обновился, а там наломали много дров в 2.6, так что все возможно. Дробные значения не пробовал? 10.5 например.

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

Пробовал, софтина (geany) не реагирует.

Azq2
() автор топика
Ответ на: комментарий от bread

Мда, откат libfreetype6 до 2.5.2 исправил проблему. Но этот костыль будет работать до первой смены API libfreetype6 :(

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

Можно попробовать freetype 2.7, если соберется. Я лично везде откатился на 2.5, сглаживание в 2.6 меня категорически не устраивает.

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

Пробовал, та же ерунда. Пойду репортить баги и изучить diff'ы

Azq2
() автор топика
Ответ на: комментарий от bread

Лол, ВНЕЗАПНО этот баг есть во всех версиях freetype! Но он фиксился какими-то убунтопатчами. В 16.10 их повыкидывали все.

Только если убунтовскую подсунуть:

LD_PRELOAD=/home/azq2/build/ft/freetype-2.5.2/debian/tmp/usr/lib/x86_64-linux-gnu/libfreetype.so.6.11.1 /usr/bin/geany

Полностью фиксится.

Azq2
() автор топика
Ответ на: комментарий от bread

Не думаю, что норма: http://i.imgur.com/JzNGE5W.png (разница 10 и 11 размера)

Патч нашёл, да:

# Description: revert commit which creates regressions in gtk
# Ubuntu: https://bugs.launchpad.net/freetype/+bug/972223
# Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=636776
--- a/src/truetype/ttdriver.c
+++ b/src/truetype/ttdriver.c
@@ -246,10 +246,7 @@
     FT_Request_Metrics( size->face, req );
 
     if ( FT_IS_SCALABLE( size->face ) )
-    {
       error = tt_size_reset( ttsize );
-      ttsize->root.metrics = ttsize->metrics;
-    }
 
     return error;
   }

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