LINUX.ORG.RU

Не работает субпиксельное сглаживание в GTK

 ,


2

1

Я показываю все свои настройки:

freetype-2.7
fontconfig-2.12.1

/etc/profile

for sh in /etc/profile.d/*.sh ; do
    [ -r "$sh" ] && . "$sh"
done
unset sh

/etc/profile.d/freetype2.sh

export FREETYPE_PROPERTIES="truetype:interpreter-version=40"
export FT2_SUBPIXEL_HINTING=2
/etc/fonts/local.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <match target="font">

  <edit mode="assign" name="rgba">
   <const>rgb</const>
  </edit>

  <edit mode="assign" name="hinting">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="hintstyle">
   <const>hintmedium</const>
  </edit>

  <edit mode="assign" name="antialias">
   <bool>true</bool>
  </edit>

  <edit mode="assign" name="lcdfilter">
    <const>lcddefault</const>
  </edit>

 </match>
</fontconfig>

/etc/fonts/conf.d/

10-hinting-slight.conf -> /usr/share/fontconfig/conf.avail/10-hinting-slight.conf
10-scale-bitmap-fonts.conf -> /usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf
10-sub-pixel-rgb.conf -> /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
11-lcdfilter-default.conf -> /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf
20-unhint-small-dejavu-sans-mono.conf -> ../conf.avail/20-unhint-small-dejavu-sans-mono.conf
20-unhint-small-dejavu-sans.conf -> ../conf.avail/20-unhint-small-dejavu-sans.conf
20-unhint-small-dejavu-serif.conf -> ../conf.avail/20-unhint-small-dejavu-serif.conf
20-unhint-small-vera.conf -> /usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf
21-cantarell-hinting.conf -> ../conf.avail/21-cantarell-hinting.conf
30-metric-aliases.conf -> /usr/share/fontconfig/conf.avail/30-metric-aliases.conf
30-urw-aliases.conf -> /usr/share/fontconfig/conf.avail/30-urw-aliases.conf
31-cantarell.conf -> ../conf.avail/31-cantarell.conf
40-nonlatin.conf -> /usr/share/fontconfig/conf.avail/40-nonlatin.conf
42-luxi-mono.conf -> ../conf.avail/42-luxi-mono.conf
45-latin.conf -> /usr/share/fontconfig/conf.avail/45-latin.conf
49-sansserif.conf -> /usr/share/fontconfig/conf.avail/49-sansserif.conf
50-user.conf -> /usr/share/fontconfig/conf.avail/50-user.conf
51-local.conf -> /usr/share/fontconfig/conf.avail/51-local.conf
57-dejavu-sans-mono.conf -> ../conf.avail/57-dejavu-sans-mono.conf
57-dejavu-sans.conf -> ../conf.avail/57-dejavu-sans.conf
57-dejavu-serif.conf -> ../conf.avail/57-dejavu-serif.conf
60-latin.conf -> /usr/share/fontconfig/conf.avail/60-latin.conf
65-fonts-persian.conf -> /usr/share/fontconfig/conf.avail/65-fonts-persian.conf
65-nonlatin.conf -> /usr/share/fontconfig/conf.avail/65-nonlatin.conf
69-unifont.conf -> /usr/share/fontconfig/conf.avail/69-unifont.conf
80-delicious.conf -> /usr/share/fontconfig/conf.avail/80-delicious.conf
90-synthetic.conf -> /usr/share/fontconfig/conf.avail/90-synthetic.conf
99pdftoopvp.conf

~/.Xresources

Xft.autohint:            0
Xft.lcdfilter:           lcddefault
Xft.dpi:                 96.0
Xft.hinting:             1
Xft.hintstyle:           hintmedium
Xft.antialias:           1
Xft.rgba:                rgb

~/.gtkrc-2.0

gtk-xft-antialias       = 1
gtk-xft-hinting         = 1
gtk-xft-hintstyle       = "hintmedium"
gtk-xft-rgba            = "rgb"

Файла ~/.config/fontconfig/* — нет. Больше нигде, если я не ошибаюсь, настройки шрифтов не указаны.

Вопрос: почему не работает субпиксельное сглаживание везде: в firefox, chrome, других остальных gtk2/3 приложениях?

Но при этом работает в Qt.


10-hinting-slight.conf -> /usr/share/fontconfig/conf.avail/10-hinting-slight.conf

Эта ссылка возможно мешает, если требуется hintmedium.

anonymous ()

Создай этот файлик, если его нет.

~/.config/fontconfig/fonts.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font">
  <edit mode="assign" name="hinting" >
  <bool>true</bool>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="autohint" >
  <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="hintstyle" >
  <const>hintslight</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="rgba" >
  <const>rgb</const>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="antialias" >
  <bool>true</bool>
  </edit>
 </match>
 <match target="font">
  <edit mode="assign" name="lcdfilter">
  <const>lcddefault</const>
  </edit>
 </match>
</fontconfig>
enso ★★★★ ()
Ответ на: комментарий от anonymous

Эта ссылка возможно мешает, если требуется hintmedium.

10-hinting-slight.conf заменил на 10-hinting-medium.conf — не помогло, как и удаление вообще его.

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

Попробовал, с таким или другим (более правильным: autohint=false) содержанием наличие это файла на субпиксельное сглаживание не оказывает, его по-прежнему в GTK приложениях нет вообще.

slon ()

Попробуй удалить всё из /etc/fonts/conf.d/, там 99% мусора которое не нужно.

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

файл local.conf загружается позже, так что врятли влияет

50-user - загружает ~/.config/fontsconfig/fonts.conf; 51-local - загружает /etc/fonts/local.conf

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

Так у тебя ни справа ни слева нет субпиксельного сглаживания же.

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

Есть, просто оно монохромное, а не rgb.

Жесть, это невозможно, тебе следует изучить матчасть, никакого субпиксельного сглаживания у тебя нет, у тебя простой grayscale antialiasing.

Смотри, у тебя второй вариант, а мне нужен третий: http://i.imgur.com/RrgxIXl.png

У тебя grayscale antialiasing, а мне нужен subpixel rendering.

slon ()

FreeType 2.7 ships the new v40 TrueType instructions interpreter version enabled by default. It finally brings DirectWrite/ClearType-like rendering to the screen, or ‘subpixel hinting’ as some FreeType code calls it. Actually, there is no subpixel hinting. Read on. https://www.freetype.org/freetype2/docs/subpixel-hinting.html

Такие дела... Откатывай фритайп или покупай hidpi моник.

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

А вот совет авторов фритайп:

Switching to the new mode might take some getting used to though, so if you think your fonts are suddenly fat, fuzzy or weird, give your brain some time to adjust.

Страдайте, короче. Это все похлеще поттеринга.

bread ()

/etc/fonts/local.conf

Уверен, что файл подхватывается fonconfig'ом? Попробуй создать копию ~/.fonts.conf, в man fonts-conf есть список путей.

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

а Qt что, не через freetype работает? Там ведь работает.

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

Уверен, что файл подхватывается fonconfig'ом?

уверен, копия ~/.fonts.conf не помогает.

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

а Qt что, не через freetype работает?

А вот хз, может у них свои костыли. FREETYPE_PROPERTIES=truetype:interpreter-version=35 пробовал? Говорят кому то помогло.

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

Я пробовал все три:

#     truetype:interpreter-version=35  # Classic mode (default in 2.6)
#     truetype:interpreter-version=38  # Infinality mode
#     truetype:interpreter-version=40  # Minimal mode (default in 2.7)
плюс все три:
# export FT2_SUBPIXEL_HINTING=0
# export FT2_SUBPIXEL_HINTING=1
# export FT2_SUBPIXEL_HINTING=2

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

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

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

Вот еще что пишет этот наркоман:

v38 is still there and usable, it just isn't compiled in by default. If you compile it in, you can switch between the different interpreters at runtime, using an environment variable (or using the property API of FreeType). There is currently no way to switch this from FontConfig or any other means.

Пересобрать наверно нужно.

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

блять, человек про сглаживание спрашивает

Так с новым интерпретатором уже разницы с grayscale нет. Мыло мыльное.

bread ()

Я уже тебе вроде писал, что хром не читает environment и как следствие FREETYPE_PROPERTIES, потому там без патчинга фритайпа шг.

anonymous ()

ужас как всё глубоко в анусе с настройкой юзерспейса в гноме.

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

Я уже тебе вроде писал, что хром не читает

Я ведь указал, что не работает во всех GTK2/3 приложениях: хроме, фирефоксе и любом другом GTK приложении.

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

Я вообще не про сглаживание писал, а про autohint. А rgb сглаживание у меня специально отключено, чтобы небыло подобных артефактов http://oi66.tinypic.com/23wpc2q.jpg (по нормальному никакой зелени естественно не должно быть на этом скрине).

devorg ()

А у тебя файл .Xresources вообще на что-то влияет? может он вообще не подгружается и не используется системой?

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

Я же тебя просил по обкурке в моих треды не заходить.

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

Я же тебя просил по обкурке в моих треды не заходить.

пруф, где просил?

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

ужас как всё глубоко в анусе с настройкой юзерспейса в гноме.

гном это не гетека, а кутэ не кде, атлична-атлична.

Не кури больше.

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