Быстрый полиширинный шрифт
Вложений: 1
Доброго.
Итак продолжаю невеселый трактат о недостатках и недоработках оффициального БМакса. Сегодня речь пойдет про шрифт. Оффициальный шрифт - вещь очень неудобная, вот его недостатки : 1) Процесс загрузки шрифта идет напрямую через либу написанной на С (тоесть в обход БМаксовского TStream). Вроде бы какая разница ? ан нет - теперь такие шрифты не загрузиш из ОЗУ, в ПАК-архив его закинуть конечно можно, но прежде чем загрузить такой шрифт, придется его извлечь на уровне файловой системы, что не очень удобно. 2) Шрифт является моноширинным, тоесть все буквы имеют одинаковую ширину, в природе же это не так. А теперь про достоинства : 2) Формат true type - векторный. Можно на этапе загрузки задать любой размер - качество будет оптимальным. А теперь про мой шрифт. 1) Его можно загрузить из ОЗУ 2) Буквы имеют разную ширину 3) Он растровый, поэтому размер шрифта формируется на этапе создания картинки 4) При отрисовке не происходит переключения текстур. Скорость отрисовки моего шрифта ~2x раз быстрее, и чем больше обьем рисуемого текста тем больше будет разница в производительности. Плюс ко всему в него встроены следующие тэги : Код:
[bold]жирный текст[\bold] + Текст полностью трансформируемый + Модуль имеет функции для форматированной отрисовки текста + Можно менять модель отрисовки жирного текста + Тэги могуть располагаться в любой вложенности + ВСЕ С ОТКРЫТЫМ ИСХОДНЫМ ТЕКСТОМ Создание файла шрифта : В папочке "Tools" имеется исходник "fnt2png.bmx" - этот пример показывает как можно текстовый файл с описанием шрифта сконвертировать в графический файл шрифта. Конкретно этот пример конвертит файл .fnt сгенерированный редактором шрифтов HGE. Делается это так : Генерируем шрифт утилитой, которая идет с поставкой HGE -> кладем сгенерированные файлы .fnt и .png в папку где лежит файл fnt2png.exe -> На данном этапе можно редактировать в фотошопе картинку шрифта -> И на екзешник перетаскиваем файл .fnt, после чего сгенерируется файл шрифта "имя_шрифта_fnt.png". По аналогии можно написать конвертер и из других "шрифтовых" утилит. Также в папочке test есть краш тест, который демонстрирует разницу в производительности официального и моего шрифта. PS Модуль полностью задокументирован и имеет полный набор примером -> Rebuid Documentation ! =) |
Ответ: Быстрый полиширинный шрифт
В целом очень понравилось, но не считаешь ли, что теги внутри текста лишние?
|
Ответ: Быстрый полиширинный шрифт
зато самому не нужно реализовать, спасибо!
|
Ответ: Быстрый полиширинный шрифт
стресс тест бы какой нибудь?
с родным текстом и твоим! откомпилированным. |
Ответ: Быстрый полиширинный шрифт
Цитата:
или же, возможно, ты считаешь что парсинг отнимает много времени? Если в рисуемом тексте нет тэгов - то метод Parse() не вызовится ни разу. Цитата:
Цитата:
ЗЫ Сейчас этот модуль переписывается полностью, шрифты станут в виде обьектов с более простым и удобным интерфейсом. релиз очень скоро. ;) |
Часовой пояс GMT +4, время: 13:38. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot