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