Показать сообщение отдельно
Старый 14.02.2012, 09:58   #1
Черный крыс
 
Сообщений: n/a
Быстрый полиширинный шрифт

Доброго.

Итак продолжаю невеселый трактат о недостатках и недоработках оффициального БМакса. Сегодня речь пойдет про шрифт.

Оффициальный шрифт - вещь очень неудобная, вот его недостатки :

1) Процесс загрузки шрифта идет напрямую через либу написанной на С (тоесть в обход БМаксовского TStream). Вроде бы какая разница ? ан нет - теперь такие шрифты не загрузиш из ОЗУ, в ПАК-архив его закинуть конечно можно, но прежде чем загрузить такой шрифт, придется его извлечь на уровне файловой системы, что не очень удобно.

2) Шрифт является моноширинным, тоесть все буквы имеют одинаковую ширину, в природе же это не так.

А теперь про достоинства :

2) Формат true type - векторный. Можно на этапе загрузки задать любой размер - качество будет оптимальным.

А теперь про мой шрифт.

1) Его можно загрузить из ОЗУ
2) Буквы имеют разную ширину
3) Он растровый, поэтому размер шрифта формируется на этапе создания картинки
4) При отрисовке не происходит переключения текстур. Скорость отрисовки моего шрифта ~2x раз быстрее, и чем больше обьем рисуемого текста тем больше будет разница в производительности.

Плюс ко всему в него встроены следующие тэги :

[bold]жирный текст[\bold]
[alpha, 0.5]полупрозрачный текст[\alpha]
[color, 255, 0, 0]красный текст[\color]
[blend, LIGHTBLEND]светящийся текст[\blend]
[uline, space, offset]подчеркнутый текст[\uline]
[mline, space, offset]зачеркнутый текст[\mline]
Кроме того :

+ Текст полностью трансформируемый
+ Модуль имеет функции для форматированной отрисовки текста
+ Можно менять модель отрисовки жирного текста
+ Тэги могуть располагаться в любой вложенности
+ ВСЕ С ОТКРЫТЫМ ИСХОДНЫМ ТЕКСТОМ

Создание файла шрифта :

В папочке "Tools" имеется исходник "fnt2png.bmx" - этот пример показывает как можно текстовый файл с описанием шрифта сконвертировать в графический файл шрифта. Конкретно этот пример конвертит файл .fnt сгенерированный редактором шрифтов HGE. Делается это так : Генерируем шрифт утилитой, которая идет с поставкой HGE -> кладем сгенерированные файлы .fnt и .png в папку где лежит файл fnt2png.exe -> На данном этапе можно редактировать в фотошопе картинку шрифта -> И на екзешник перетаскиваем файл .fnt, после чего сгенерируется файл шрифта "имя_шрифта_fnt.png".

По аналогии можно написать конвертер и из других "шрифтовых" утилит.

Также в папочке test есть краш тест, который демонстрирует разницу в производительности официального и моего шрифта.

PS
Модуль полностью задокументирован и имеет полный набор примером -> Rebuid Documentation ! =)
Вложения
Тип файла: rar imagefont.mod.rar (129.6 Кб, 732 просмотров)
 
Ответить с цитированием
Эти 11 пользователя(ей) сказали Спасибо за это полезное сообщение:
ABTOMAT (14.02.2012), Arles (16.02.2012), Dzirt (15.02.2012), HolyDel (15.02.2012), Hurrit (14.02.2012), mauNgerS (16.02.2012), mihailkirillov (18.02.2012), Nex (14.02.2012), Randomize (14.02.2012), SBJoker (14.02.2012), Данил (15.02.2012)