LINUX.ORG.RU

FreeType2 почему разный subpixel hinting в qt и gtk?


0

0

Дистр openSUSE 11.0. Скомпилил из SRPM с официального сайта (вручную включил subpixel hiting). Все в принципе выглядит хорошо, но обнаружились различия в отображении шрифтов в qt и gtk приложениях. Вот увеличенный в 8 раз скриншот слова FreeType: http://studentiate.narod.ru/temp/subpixel_hinting.png Сверху из программы на qt, снизу - gtk. В gtk шрифт отображается чуть чётче.

Вопрос - почему такая разница? Ведь оба тулкита используют одну и ту же библиотеку libfreetype.

P.S. В OpenOffice вообще subpixel hinting-а нету. Кто-нибуть не знает почему? Тут http://forums.opensuse.org/applications/392727-enable-subpixel-hinting-opensu... написано что это из-за cairo, но Firefox тоже cairo использует, и ничего - subpixel hinting есть.

>Вопрос - почему такая разница? Ведь оба тулкита используют одну и ту же библиотеку libfreetype.

Qt берет конфигурацию рендеринга от fontconfig, gtk по всей видимости где-то в другом месте. Т.е. то, что они оба используют freetype еще ничего не значит, т.к. freetype рисует так, как ему скажут "сверху"

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

> Qt берет конфигурацию рендеринга от fontconfig, gtk по всей видимости где-то в другом месте. Т.е. то, что они оба используют freetype еще ничего не значит, т.к. freetype рисует так, как ему скажут "сверху"

Не совсем так, насчёт Qt всё верно, а вот Gtk берёт информацию о рендеринге хрен пойми откуда. Либо из fontconfig, либо из gnome-settings-manager (или как он там называется), берёт именно с таким приоритетом.

Ещё одно, в последних сборках libfontconfig (или libxft2), на некоторых дистрибах, сменили модель субпиксельного рендеринга, применемую по умолчанию. Искать по гуглю по словам lcdfilter и fonts.conf.

annoynymous ★★
()

В среде отличной от KDE, для "правильного" хинтинга текста в
Qt-приложениях придется создать свой конфиг(~/.fonts.conf)

Приблизительно такого вида:
     <match target="pattern">
        <edit name="hinting" mode="assign">
           <bool>true</bool>
        </edit>
        <edit name="hintstyle" mode="assign">
           <const>hintfull</const>
        </edit>
        <edit name="autohint" mode="assign">
           <bool>false</bool>
        </edit>
        <edit name="antialias" mode="assign">
           <bool>true</bool>
        </edit>
        <edit name="rgba" mode="assign">
           <const>rgb</const>
        </edit>
     </match>

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

ах да, ещё в qtconfig следует выбрать шрифт аналогичный gtkашному, т.к. там по дефолту, вроде, стоит размер 9.

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

> Не совсем так, насчёт Qt всё верно

Не совсем так - Qt4 берет свою конфигурацию вообще хз откуда. прозреваю из libastral. Во всяком случае на пользовательский .fonts.conf кладёт с прибором.

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