Page 3 of 5

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 12:46 pm
by Albom
Asper wrote:Ну тут уже больше всех должен радоваться Albom.
Не смотря на личные проблемы, действительно радуюсь реализации шрифтов. :) Неоднократно выссказывал эту хотелку. :))

Вопрос: можно ли прикрутить эту библиотеку к lua?

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 1:21 pm
by Gluk
"Вопрос: можно ли прикрутить эту библиотеку к lua?" - тоже хотел задать этот вопрос =)

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 1:48 pm
by SoUrcerer
:mrgreen: А что, разве есть какие-то проблемы, мешающие прикручиванию, когда есть библиотеки и исходные коды, и всё работает?
Делаем примитивные обертки для функций freetype, и готово ;) Сейчас я планирую заняться freetype2, а там уже видно будет.

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 4:14 pm
by Serge
Sorcerer

Собирается и без def но в этом случае будет экспортироваться больше всякого мусора. Не страшно. Если ничего не экспортируется помогает --export-all-symbols. setjmp есть в libamz.a Наверное опять порядок библиотек надо подбирать.
Ещё рекомендую --exclude-libs libamz.a чтобы длл не экспортировала функции из libamz

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 9:46 pm
by SoUrcerer
Хмм, убрал все ошибки линковки, кроме _setjmp. Странно это как-то. В коде написано #define ft_setjmp setjmp, пробую менять местами библиотеки и о-файлы, раз порядок важен, но пока что безуспешно. Может быть будут какие-нибудь мысли?
Думаю, что если слинковать библиотеку статически, то она заработает (собственно, а почему не должна?).

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:21 pm
by Serge
Sorcerer

А что конкретно пишет ?
Попробуй прилинковать вручную

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:36 pm
by SoUrcerer
Уже исправил косяк, опять не те заголовочные файлы подцеплял :D

Итак,
FreeType 2.4.4 для Колибри
Downloaded 342 times
В архиве freetype.dll и freetypeimp.a последней стабильной на сегодняшний день версии FreeType. Включены лишь модули TrueType и растеризатора со сглаживанием.
upd: Далее в теме архивы с дополнительными модулями (с OpenType)

К сожалению, не могу гарантировать абсолютную работоспособность библиотек, потому что в ft2demos нет нормальных тестов, не использующих функции windows или x11. Однако, ft2 engine инициализируется, и шрифты загружаются. Впрочем, кое-что все же удалось запустить с первого удара в бубен:
testname.7z (108.68 KiB)
Downloaded 336 times
Программа testname (я слинковал ее с freetype2 статически, поэтому она весит чуть больше 100 кб) выводит на доску отладки информацию о всех глифах в файле font.ttf (для этого нужно создать ft2 engine, затем загрузить шрифт, загрузить все глифы, растрировать их и вывести информацию о результате - чем не доказательство работоспособности?).

Если понадобятся еще какие-то модули - я попробую собрать и их тоже (например, поддержку OpenType или Windows FON).

Всем спасибо за поддержку и внимание!

Re: FreeType для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:42 pm
by Serge
Отлично! Пересоберу Cairo c FreeType2.
OpenType пригодятся, есть хранилища свободных шрифтов, многие в otf.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:44 pm
by SoUrcerer
Замечательно ;)
Попробую сейчас заняться поддержкой OpenType.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:50 pm
by Serge
libfreetype2.a можешь выложить ? Исходники и инклюды у меня есть.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 10:55 pm
by SoUrcerer
А как этот libfreetype2.a собрать-то? :roll: Командой ar на все объектники? Если так, то вот:
libfreetype2.a.7z (116.77 KiB)
Downloaded 336 times
Тем временем, пробная версия freetype2 с поддержкой opentype.
Downloaded 333 times
Чуть позже попробую добавить модуль субпиксельного сглаживания. И будут шрифты не хуже, чем в Linux.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 11:02 pm
by Serge
ar cvrs $(LIBRARY).a $(OBJECTS) это из Makefile. Посмотри примеры в мейкфайлах newlib или zlib на свн.

Update.
Раз есть dll то уже и не обязательно надо. Осталось исходники залить.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 11:05 pm
by SoUrcerer
Готово (в прошлом сообщении прикрепил - говорю на случай, если форум читается через RSS).

Исходники чего?

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 11:11 pm
by Serge
FreeType2 на svn://kolibrios.org/programs/develop/libraries или хотя бы мейкфайлы для сборки.

Re: FreeType2 для Колибри (масштабируемые векторные шрифты)

Posted: Wed Mar 30, 2011 11:16 pm
by SoUrcerer
Ой ^^''
Нужно бы почистить папку заголовочных файлов от мусора :D На самом деле, я не правил исходный код (так, местами затычки вставил вместо макросов, которые не хотели собираться, без этого можно было обойтись), а просто следовал инструкциям из install.any, customize и debug, используя плоскую модель каталогов.
Собирал без makefile'ов, потому что писать их не умею :(

Code: Select all

 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftsystem.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftinit.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftdebug.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftbase.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftbbox.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftglyph.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY truetype.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY smooth.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY ftbitmap.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY sfnt.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY psnames.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY cff.c
 i586-mingw32msvc-gcc -c -I./ -DFT2_BUILD_LIBRARY pshinter.c
 i586-mingw32msvc-ld -nostdlib -shared -s -T dll.lds --image-base 0 --out-implib libfreetypeimp.a -o libfreetype.dll truetype.o sfnt.o smooth.o  ftbase.o ftbbox.o ftbitmap.o  ftglyph.o ftinit.o ftdebug.o ftsystem.o cff.o pshinter.o psnames.o --exclude-libs libamz.a libcimp.a 
Чтобы сделать такую же структуру папок, как у меня, нужно просто скопировать c и h файлы из папок:
src/base
src/cff
src/sfnt
src/truetype
src/smooth
src/psnames
src/pshinter

Еще нужно в freetype/config/ftmodule.h оставить только нужные модули. И всё, после этого должно собраться.
Думаю, что никаких проблем не будет и с остальными модулями freetype2.