Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.037 c
9-1160220897
alpha5
2006-10-07 15:34
2007.09.16
Углы поворота


2-1187691079
Daedr
2007-08-21 14:11
2007.09.16
профессионалам отдельная просьба - быть снисходительными.


15-1187359204
oxffff
2007-08-17 18:00
2007.09.16
Highlander впервые показан


15-1187478283
Smacker
2007-08-19 03:04
2007.09.16
Ищу библиотеку для просмота видео в smk-формате на Дельфи


2-1187762201
Виктор007
2007-08-22 09:56
2007.09.16
StrAlloc на АПИ