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

Discussing libraries simplifying applications development
  • "Вопрос: можно ли прикрутить эту библиотеку к lua?" - тоже хотел задать этот вопрос =)
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • :mrgreen: А что, разве есть какие-то проблемы, мешающие прикручиванию, когда есть библиотеки и исходные коды, и всё работает?
    Делаем примитивные обертки для функций freetype, и готово ;) Сейчас я планирую заняться freetype2, а там уже видно будет.
  • Sorcerer

    Собирается и без def но в этом случае будет экспортироваться больше всякого мусора. Не страшно. Если ничего не экспортируется помогает --export-all-symbols. setjmp есть в libamz.a Наверное опять порядок библиотек надо подбирать.
    Ещё рекомендую --exclude-libs libamz.a чтобы длл не экспортировала функции из libamz
  • Хмм, убрал все ошибки линковки, кроме _setjmp. Странно это как-то. В коде написано #define ft_setjmp setjmp, пробую менять местами библиотеки и о-файлы, раз порядок важен, но пока что безуспешно. Может быть будут какие-нибудь мысли?
    Думаю, что если слинковать библиотеку статически, то она заработает (собственно, а почему не должна?).
  • Sorcerer

    А что конкретно пишет ?
    Попробуй прилинковать вручную
    Attachments
    setjmp.obj (438 Bytes)
    Downloaded 324 times
  • Уже исправил косяк, опять не те заголовочные файлы подцеплял :D

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

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

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

    Всем спасибо за поддержку и внимание!
    Last edited by SoUrcerer on Thu Mar 31, 2011 9:34 am, edited 1 time in total.
  • Отлично! Пересоберу Cairo c FreeType2.
    OpenType пригодятся, есть хранилища свободных шрифтов, многие в otf.
  • Замечательно ;)
    Попробую сейчас заняться поддержкой OpenType.
  • libfreetype2.a можешь выложить ? Исходники и инклюды у меня есть.
  • А как этот libfreetype2.a собрать-то? :roll: Командой ar на все объектники? Если так, то вот:
    libfreetype2.a.7z (116.77 KiB)
    Downloaded 331 times
    Тем временем, пробная версия freetype2 с поддержкой opentype.
    Downloaded 328 times
    Чуть позже попробую добавить модуль субпиксельного сглаживания. И будут шрифты не хуже, чем в Linux.
    Last edited by SoUrcerer on Wed Mar 30, 2011 11:03 pm, edited 1 time in total.
  • ar cvrs $(LIBRARY).a $(OBJECTS) это из Makefile. Посмотри примеры в мейкфайлах newlib или zlib на свн.

    Update.
    Раз есть dll то уже и не обязательно надо. Осталось исходники залить.
  • Готово (в прошлом сообщении прикрепил - говорю на случай, если форум читается через RSS).

    Исходники чего?
  • FreeType2 на svn://kolibrios.org/programs/develop/libraries или хотя бы мейкфайлы для сборки.
  • Ой ^^''
    Нужно бы почистить папку заголовочных файлов от мусора :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.
    Last edited by SoUrcerer on Wed Mar 30, 2011 11:21 pm, edited 1 time in total.
  • Who is online

    Users browsing this forum: No registered users and 3 guests