Вторая попытка запостить свои советы. Первая сорвалась. (Не знал про обязательную регистрацию). Итак.
Несколько общих моментов.
1. Я всё собираю из исходников
2. У меня Slackware 8 с GCC 2.95.3
3. У меня Xfree86 4.1 (из исходников), QT 2.3.2 (аналогично), KDE 2.2.2 (аналогично)
4. Железо - p3 733 -> 951, 512 mb RAM, MGA g400 16 mb SH и S3virgeDX 4mb. ASUS TUSL2C.
1. Truetype.
В составе XFree86 поставляется пакет truetype2 довольно старой версии. Нужно взять посвежее,(у меня 2.0.5), изменить в include/freetype/config/ftoption.h строку 314:
#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
на
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
это позволит нормально масштабировать шрифты.
Собрать пакет и проинсталлировать его в /usr/X11.
Для нормальной подстановки шрифтов (и для использования microsoft ttf по умолчанию) в XftConfig воткнуть
match any family == "serif" edit family += "Times New Roman";
match any family == "sans" edit family += "Verdana";
match any family == "Comic Sans" edit family += "Comic Sans MS";
match any family == "Comic Sans MS" edit family =+ "Comic Sans";
match any family == "Trebuchet" edit family += "Trebuchet MS";
match any family == "Trebuchet MS" edit family =+ "Trebuchet";
match any family == "Monotype" edit family =+ "Monotype.com";
match any family == "Andale Mono" edit family += "Monotype.com";
match any family == "Monotype.com" edit family =+ "Andale Mono";
Для символьных шрифтов
match
any family == "webdings"
edit
antialias = false;
encoding += "glyphs-fontspecific";
match
any family == "symbol"
edit
antialias = false;
encoding += "glyphs-fontspecific";
2. Antialias
Не забудьте выставить переменную QT_XFT=1
Если после этого иксы вылетают, значит
а) Вы криво собрали иксы
б) Вы криво собрали QT
в) Вы криво собрали KDE
г) У вас кривой XftConfig :))))
Чтобы не размазывались все шрифты, а только нужного кегля в XftConfig втыкаем
match
any size > 8
any size < 15
edit
antialias = false;
Чтобы фиксированные шрифты не козявило на весь экран
match any family == "fixed" edit family =+ "mono";
match any family == "console" edit family =+ "mono";
match
any family == "mono"
edit
spacing = mono;
Чтобы в консоли не было antialiasingа
konsole --help :))) А вообще konsole --no-xft (пишу из под другой машины, не могу посмотреть, по моему так)
Чтобы запустить ЛЮБУЮ прогу без antialias создаём скриптик
#!/bin/sh
QT_XFT=0
exec ВАША ПРОГА
exit
И пускем уже его.
3. Оптимизация.
Про objprelink слышали?
Так вот. Если эта прога отсутствует, ключ ---enable-objprelink при конфигурировании KDE не сделает ничего. Сама приблуда берётся отсюда http://www.research.att.com/~leonb/objprelink/objprelink.c.gz ,
но вот беда, в 8 слаке она не собирается :((( Я взял уже собранную на слаке 7.1 с http://lists.kde.org/?l=kde-devel&m=99694357017355&w=2
Как грамотно обработать QT этой прогой.
Вот патч для QT 2.3.1, годится и для 2.3.2. Все написанное в этом патче я предпочёл сделать руками. http://www.research.att.com/~leonb/objprelink/qt-configs.patch
После этого нужно пересобрать QT.
Параметры конфигурации QT
Я использую следующие:
./configure -xft -gif -system-jpeg -system-libpng -no-g++-exceptions -thread (по моему так, точно не помню, вообщем ./configure --help)
Без -thread QT не включает опенгл у меня.
Ключ -kde нужен при уже установленом KDE, добавляет какие то фичи в дизайнер, в общем на скорость не влияет :))).
Перед этим не забудте make clean. :)))
Ключи cofigure KDE.
Основные
./configure --enable-final --disable-debug --enable-objprelink --enable-mt --with-xinerama (две видюхи у меня, если у вас одна, вам не надо).
Остальное - configure --help | less в каждом пакете, пиво и читать, и думать (хотя думать особо много там не надо :))
Ключи компилятора.
Ключи для GCC задаются выставлением переменных типа CFLAGS="" и CXXFLAGS="" для КДЕ, правкой host.def в X и правкой configs/linux-g++-shared в QT.
Если всё сделано как написано, то после configure или make World в X создадутся грамотные makefile.
ПРОПИСЫВАТЬ ИХ В Makefile НАПРЯМУЮ КРИВО!!!
Перед configure не забудте make distclean или make clean
Я пробовал собирать с ключами -O3 -march=i686 -fno-exceptions иксы, QT и KDE.
У меня не срослось. КДЕ вис и глючил.
Пока оставил иксы собранными как написанно выше (они не глючат), а остальное пересобрал с дефолтными параметрами.
Дальше моё IMHO
Заметил, что и QT и KDE при сборке сами выбирают то -O2, то -O3. Наверное лучше по этому не указывать их явно.
--fno-exceptions в КДЕ и так используется. В QT используется если конфигурить с -no-g++-exceptions. Явно указывать соотв. тоже не надо.
В планах.
Понять что такое --enable-strict в configure KDE
Пересобрать QT и KDE с -march=i686, найти источник проблем и вообще понять как в GCC работает оптимизация -O3 -O6 -O7 (в доках на эту тему кот наплакал).
Разобраться почему из OpenGL скринсеиверов работает только morph.
Ну и всё собственно.
Звонить - _gabbagabbahey_@mail.ru ( " _ " НЕ СТИРАТЬ. ЭТО НЕ ЗАЩИТА ОТ СПАМА. ЭТО ТАК НАДО :))))
Пока :)
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум HOWTO по ttf, AA и оптимизации KDE (2001)
- Форум Корявое очертание текста в bold шрифтах TTF (2007)
- Форум Корявое очертание текста в bold шрифтах TTF (2007)
- Форум Помогите убрать ШГ (2020)
- Форум Сломался Sans (2017)
- Форум Arch игнорирует размер шрифтов (2017)
- Форум Выравнивание межбуквенных расстояний в шрифтах qt-приложений в Ubuntu 12.04 (2012)
- Форум [шревты][gentoo][в двух шагах от Грааля] Какую настройку переопределяет хромиум? (2010)
- Форум Проблема с шрифтами GTK2 (TTF/AA) (2003)
- Форум TTF in X 4.0.1 HOWTO ? (2000)