Текущий архив: 2007.09.16;
Скачать: CL | DM;
ВнизИщу программку переводящую фонт в бмпшку... Найти похожие ветки
← →
Viv (2006-09-09 11:41) [0]Собственно сабж... Хочу сделать текстурный шрифт на gl, но как всегда встала глупаю проблема - нет избражения шрифта, после часа крупномасштабных баталий с paint, вспомнил что видел где то прогу, которая шрифты склеивает в бмпшку...ровненько так по ячеечкам )
Может есть у кого что-нить подобное, а то так неохота рисовать свой шрифт... Кошмар ведь получится )
← →
grouzd)ev © (2006-09-09 11:59) [1]http://xproger.mirgames.ru/?id=2&page=1 смотреть XFont
ps кстати сам щас парюсь, только с загрузкой этого дела)
---
... we are walking on a thin line and you better avoid the risk ...
← →
cyborg © (2006-09-09 12:08) [2]Есть.
http://cyborghome.ru/download/sourcedelphi/FontBuilder.zip
240 килобайт.
← →
Viv (2006-09-09 12:35) [3]Ох спс вам большое !
← →
Cash © (2006-09-09 13:34) [4]Viv:
Есть конечно, даже более, я скажу, что и у тебя тоже будет! :)
Смотри, бери объект TBitMap, создавай, выставляй квадратные размеры
(када ширина равна высоте) так, чтобы они были равны степени 2!
(ну типа: 2-4-8-16-32-64-<and so on>).
Смекаешь? Размеры квадратные, а символов 256, т. е. 16 строк по 16
символов, каждый в своей клетке, размеры которой тоже равны степени 2.
Из этого и вытекает, что надо взять наибольший размер буквы, это через
TextWidth/TextHeight у канваса битмапа, вписать эти размеры в степень 2,
а потом получить размер BMP-хи, как размер ячейки помножить на 16.
Через TextOut на канвас битмапа рисуй с уже вычисленным шагом буквы.
Потом через scanline переводи BMP-ху в текстуру, а TK для букв рассчитать
проще некуда!
Ивсе, у тебя есть текстура шрифта без всяких файлов!
(Ну, если конечно хоцца декоративный шрифт забацать, то там другое дело!)
← →
cyborg © (2006-09-09 13:41) [5]> [4] Cash © (09.09.06 13:34)
Там у меня с исходником ;)
Я как-то набрёл на форум один:
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=5239
:)
← →
Cash © (2006-09-09 16:00) [6]cyborg © (09.09.06 13:41) [5]:
:D
Ламьё там какоето видать сидит! :)))
БМП-ху как шрифт для веба... одним словом, валялся долго! :)))
cyborg, дай оценку, я тупо написал, или это можно понять?
← →
cyborg © (2006-09-09 16:11) [7]Оценку чего? Не понятно.
← →
Rial © (2006-09-09 16:22) [8]> cyborg, дай оценку, я тупо написал, или это можно понять?
Понятней некуда. Не тупо.
Молодец, объяснил хорошо.
Только многое забыл, но будем считать это домашним заданием.
:))
← →
Viv (2006-09-09 18:47) [9]Эх спасибо за советы, но я уже скрафтил шрифт одной из программ )
Дабы не плодить новых тем задам тут сразу вопрос...
Шрифт есть надо вывести чтонить отличное от Hello world )
Ну например Фпс...
Соответсвенно рождается по видимому сверх нубский вопрос а как его посчитать...)
← →
grisme © (2006-09-09 19:09) [10]>а как его посчитать
вот у тебя есть код отрисовки. допустим это какая-то процедура. ФПС будет число проходов процессором по этой процедуре, грубо говоря. но тебе нужно посчитать это число за секунду. наращиваешь ФПС, пока не прошла секунда, если прошла, выводишь ФПС и обнуляешь счетчик и т.д.
← →
Cash © (2006-09-09 19:21) [11]cyborg © (09.09.06 16:11) [7]:
Да это про [4].
У меня в последнее время тенденция тупо и непонятно выражаться,
даже преподы порой не понимают. :(
Viv (09.09.06 18:47) [9]:
Да проще некуда!
Надо только замерить интервал в одну секунду, это делается с помощью
GetTickCount и трех переменных. (TimeMark, CheckPoint, FrameRate)
TimeMark - ей присваиваешь значение GetTickCount перед каждым
рендерингом. А CheckPoint - символизирует точку прошлого обновления
FrameRate. Сам FrameRate - это счетчик кадров, он увеличивается на 1
после каждого рендеринга.
Итак, когда разница TimeMark-CheckPoint становится больше 1000 (1 сек.)
Самое время обновить счетчик, т. е. сделать следующее:
FPS:=FrameRate;
FrameRate:=0;
CheckPoint:=TimeMark;
TimeMark:=TimeMark mod 1000;
После этого всего в поле FPS лежит достоверное кол-во кадров за
прошлую секунду. Есть алгоритмы и по сложнее, но этот наглядный.
Ну и вроде все!
← →
Viv © (2006-09-09 19:30) [12]И вновь большое вам спасибо )
← →
Cash © (2006-09-09 19:32) [13]> TimeMark:=TimeMark mod 1000;
А не лажу ли я написал? Лишняя операция -- ее далой!
← →
Viv © (2006-09-09 20:00) [14]хммммм а это нормально что фпс ограничен частотой монитора или это мои руки ? И как это победить ? )
← →
Cash © (2006-09-10 08:34) [15]Viv © (09.09.06 20:00) [14]:
Да, это нормально! Тебе просто надо отключить VSYNC, вертикальную
синхронизацию. Этот вопросец тут уже пролетал.
Вот он: http://delphimaster.net/view/9-1153070015/
← →
Galiaf © (2006-09-12 21:02) [16]
> У меня в последнее время тенденция тупо и непонятно выражаться,
>
> даже преподы порой не понимают. :(
не страшно, я это у себя уже много лет как наблюдаю, сам иногда понять не могу =)
← →
Zer0 © (2006-10-14 04:31) [17]сколько времени прошло, а люди все те же :D
Страницы: 1 вся ветка
Текущий архив: 2007.09.16;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.046 c