Библиотека freetype 1.3 для Колибри. Тепленькая, только что из компилятора и линковщика.
В архиве лежат: библиотека (dll), файл для линковки с исходным кодом (libfreetype.a), шрифт Libertation (какой под руку попался из linux) и тестовая программа ftpnm.kex.
Что со всем этим делать обычному пользователю?
1) Понадобится архив amz из темы про newlib.
2) Нужно скопировать libc.obj в /rd/1/lib/ (придется часть файлов с рамдиска удалить скорее всего),
3) В файл system.env прописать правильные пути к файлам библиотек,
4) Затем скопировать этот файл в /rd/1/.
5) После этого открываем доску отладки, и закрываем (в Колибри нет pipes, и stdout идет на доску отладки, так что чистый файл boardlog.txt не повредит).
6) Затем открываем доску отладки вновь и
7) Запускаем ftpnm.kex из папки со шрифтом. Если всё хорошо - на доске появится сообщение "P4" и еще несколько цифр. Если всё плохо - то подробно будет рассказано, чего не хватает (библиотеки, шрифта, или благоприятной фазы луны). Будем надеяться, что всё хорошо.
Если всё действительно хорошо, то можно закрывать доску отладки и смотреть на файл /rd/1/boardlog.txt. Если никаких лишних сообщений на доску отладки не приходило, то boardlog.txt можно переименовать в файл с расширением pnm, скопировать его на жесткий диск или флешку, и затем просмотреть в каком-нибудь графическом просмотрщике.
9) После всего этого можно порадоваться, что freetype теперь работает в Колибри, и его можно использовать в любых программах.
А как писать программы с использованием freetype?
Для этих целей я использую mingw, fasm, заголовочные файлы freetype 1.3 (взять их можно из архива с официального сайта freetype), порт newlib (файлы amz-dev из темы про newlib, а так же заголовочные файлы с SVN) и свою голову.
Код пишу в строгом соответствии с freetype api reference (разумеется, этот файл тоже есть в том же архиве), затем компилирую и линкую так, как это описано в теме про newlib:
i586-mingw32msvc-gcc -c *.c -fomit-frame-pointer -I include/ -D__DYNAMIC_REENT__ -O2
i586-mingw32msvc-ld -nostdlib -pie -s -T pe_app.lds --image-base 0 --stack 0x100000 -Map test.map ftstrpnm.o common.o -L ./ -lfreetypeimp -lcimp -lamz -o my_app.exe
fasm demo.asm ftpnm.kex
Я не уверен, можно ли использовать эту библиотеку в программах на fasm, но мне кажется, что можно (а как - это уже совсем другой вопрос). Надеюсь, что более компетентные в этом вопросе люди всё расскажут и покажут.
Спасибо всем за помощь!
Надеюсь, что в Колибри будут более-менее нормальные шрифты значительно раньше того момента, когда наши дети будут писать письма своим внукам
Почему-то мне кажется, что осталось поработать совсем немного (не считая переписывания части программ на использование масштабируемых шрифтов).