Главная страница
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.041 c
1-1184003393
fd00ch
2007-07-09 21:49
2007.09.16
Эмуляция стандартного меню


9-1160687791
rts111
2006-10-13 01:16
2007.09.16
Максимальный размер карты и максимальное количество юнитов в RTS?


6-1169653883
Hint
2007-01-24 18:51
2007.09.16
Как узнать соединен ли (активен ли) socket?


11-1165878940
Turbid
2006-12-12 02:15
2007.09.16
KOL и темы XP


15-1187780514
Михаил5
2007-08-22 15:01
2007.09.16
Подскажите, как создать презентацию типа видеозаписи работы