crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> собрать freetype, не могу собрать freetype
good_game
  опции профиля:
сообщение 24.11.2013, 20:20
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Здравствуйте, уважаемые форумчане. Использую в своём проекте библиотеку freetype http://www.freetype.org/
Исходники этой библиотеки включены в исходники Qt: <Qt dir>\Src\qtbase\src\3rdparty\freetype\
Под Линуксом оказалось очень просто использовать эту библиотеку:
в pro-файл добавляем
LIBS += -lz -lfreetype

INCLUDEPATH += $$MOC_DIR \
               /usr/include/freetype2 \
               /usr/include

Всё чётко собирается и работает. Необходимые бибилиотеки ставятся пакетом libfreetypedev.

А вот как эту библиотеку собрать под windows? Подскажите, пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.11.2013, 21:57
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(good_game @ 24.11.2013, 22:20) *
А вот как эту библиотеку собрать под windows? Подскажите, пожалуйста.
теоретически она автоматом должна была собратся.
Во всяком случае так было в Qt4.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 24.11.2013, 22:29
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Автоматически не получилось. Но кое в чём продвинулся. Добавил в PATH необходимые пути (недавно сносил Qt4 и ставил Qt5). Из директории исходников библиотеки запустил mingw32-make. Он собрал мне "freetype.a" (и ещё кучу объектников) Что с ней дальше делать?
В директории с созданной freetype.a есть также файл freetype.def c таким содержимым:
LIBRARY freetype.dll
DESCRIPTION  FreeType 2 DLL
EXPORTS
  FTC_CMapCache_Lookup
  FTC_CMapCache_New
  FTC_ImageCache_Lookup
  FTC_ImageCache_LookupScaler
  FTC_ImageCache_New
  FTC_Manager_Done
....

и какая-то утилита apinames.exe, котору. я никак не могу нормально запустить (скармливаю ей файлы необходимые по её мануалу, но она только ошибки выдаёт)

Можно под windows библиотеку *.a пристыковать к проекту?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 24.11.2013, 23:10
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Оказалось, что можно. Решение такое: freetype.a переименовываем в freetype.lib и добавляем как статическую библиотеку к проекту. В результате в pro-файл добавится такое:
unix|win32: LIBS += -L$$PWD/ -lfreetype

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

win32: PRE_TARGETDEPS += $$PWD/freetype.lib
else:unix: PRE_TARGETDEPS += $$PWD/libfreetype.a


Всё, exe-шник собран и работает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 26.11.2013, 13:52
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(good_game @ 25.11.2013, 0:29) *
Можно под windows библиотеку *.a пристыковать к проекту?
если под виндой собирал, то можно.
у *.a файлов две эпостаси:
- при создании динамической библиотеки, a-файл выполняет роль интерфейса к библиотеке (dll на Виндовозе), который линкером впихивается в программу;
- при создании библиотеки для статической сборки с приложением - код, который будет воткнут в приложение.


Цитата(good_game @ 25.11.2013, 1:10) *
Решение такое: freetype.a переименовываем в freetype.lib
вообще-то в Qt - кроссплатформенном инструменте - не принято делать такие НЕ кроссплатформенные ходы.

Принято делать без указания расширения, qmake сам дотямает, что брать нужно и куда совать. Как у тебя и указано:
LIBS += -L$$PWD/ -lfreetype


А вот нужность этого сомнительна:
PRE_TARGETDEPS += $$PWD/freetype ....
.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 26.1.2014, 19:39
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


В продолжение этой темы... Юрию спасибо за помощь. Недавно вышел релиз программы :) Правда вышел только под Windows и Linux. Под Mac не вышел. Причина следующая: программа использует для красоты всякие экзотические шрифты (типа таких http://designmodo.com/linecons-free/ , http://designmodo.com/linecons-free/). При использовании этих шрифтов на Windows или Linux, символы рисуются нормально, а под Мас-ом нет. Под Маком надписи на виджетах (например, название кнопки) из таких шрифтов пишутся квадратиками (как будто шрифт не распознан, глифы не найдены). НО! При выведении текста из такого шрифта в графическом виджете (например, QWebView) символы шрифта рисуются ЦВЕТНЫМИ картинками.
Помогите разобраться, что за фигня?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 29.1.2014, 10:27
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Появилась одна версия. Вот что написано в доработках библиотеки freeType:
Behdad Esfahbod (on behalf of Google) contributed support for color embedded bitmaps (eg. color emoji). A new load flag, FT_LOAD_COLOR, makes FreeType load color embedded-bitmaps, following this draft specification https://color-emoji.googlecode.com/git/specification/v1.html

Для символов есть глифы и есть цветные биткарты. Причём биткарты имеют преимущество перед глифами.
Я попробовал у виджетов выставлять специальный флаг:
QFont f;
f.setFamily(face->family_name);
f.setPixelSize(32);
f.setStyleStrategy(QFont::ForceOutline);

label_widget->setFont(f);

Но это не помогло.

Сообщение отредактировал good_game - 29.1.2014, 10:37
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 14.2.2014, 14:42
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Появилась ещё одна зацепка: если шрифт установить в систему (в Маке), то всё работает нормально (как в винде и линуксе). В чём разница между установленным и неустановленным шрифтом? В чём отличаются механизмы использования?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good_game
  опции профиля:
сообщение 19.2.2014, 8:56
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 43
Регистрация: 18.8.2011
Пользователь №: 2815

Спасибо сказали: 1 раз(а)




Репутация:   0  


Выяснилась проблема, но решения не появилось. Под Маком при выполнении
QFontDatabase::addApplicationFont(font_name);
шрифт добавляется в приложение криво. Функция не возвращает ошибку (то есть типа шрифтв добавлен верно), но семейство ему выдаётся вообще другое. В моём случае всем добавляемым таким образом шрифтам выдавалось семейство "Lucida Grande". Разумеется позже программа не могла найти шрифт с указанным мной именем.
Что с этим делать?

Сообщение отредактировал good_game - 19.2.2014, 8:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.2.2014, 20:18
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(good_game @ 19.2.2014, 10:56) *
шрифт добавляется в приложение криво. Функция не возвращает ошибку (то есть типа шрифтв добавлен верно), но семейство ему выдаётся вообще другое. В моём случае всем добавляемым таким образом шрифтам выдавалось семейство "Lucida Grande". Разумеется позже программа не могла найти шрифт с указанным мной именем.Что с этим делать?
курить [буржуйский] интернет, в Qt была какая-то беда со шрифтами, одно время много шумели по этому поводу, но, вроде бы, ничего не поменялось.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 14:07