Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

рендеринг кучи текста [D5, D7, WinXP]


Страницы:   1 2

tButton ©   (2006-08-24 10:08:00) 

есть много-много текста с форматированием а-ля ХТМЛ
разобрать его для меня не проблема. проблема быстро его отрендерить

сейчас набросал вариант с использованием банального TextOut
и в принципе он подходит когда строк <100
(каждая рендерится сама по себе)
можно, конечно реализовать иначе (через попиксельный вывод. есть чем вывести со скоростью >2Mpx/s), но

помнится мне что я и прежде (года два-три) назад сталкивался с подобной проблемой
и мне здесь наглядно объяснили, что вся беда в том что каждый раз DC блокируется/разблокируется, на что  и тратится уйма времени.

в итоге показали мне решение проблемы через АПИшные хитрости
к сожалению, за давностью лет решение протерялось
хотелось бы найти его снова =)

PS
как-то же memo выводит уйму текста без тормозов?


Ketmar   (2006-08-24 22:39:00) [21]

> [14] tButton ©   (24.08.06 22:36)
почему не похмеляешься? %-)


Fay   (2006-08-24 22:37:00) [22]

tButton ©   (24.08.06 22:36) [14]
Вопросы есть. Один вопрос.
> битмап увеличивается на высоту строки
НАЖУЯ?


tButton   (2006-08-24 22:36:00) [23]

хм. цикл пробегает по логу и выводит каждую строку на битмап
на каждом шаге цикла битмап увеличивается на высоту строки.
вопросы?


Ketmar   (2006-08-24 20:41:00) [24]

> [12] Fay ©   (24.08.06 20:38)
мда. не учёл. а я-то думал, почему у меня не получалось...


Fay   (2006-08-24 20:38:00) [25]

2 Ketmar ©   (24.08.06 20:30) [11]
> говорят, что если делать шаг 0, можно в одну строку всю БСЭ вывести!
Только при нулевой или очень-очень маленькой толщинестрок


Ketmar   (2006-08-24 20:30:00) [26]

> [10] Fay ©   (24.08.06 20:02)
говорят, что если делать шаг 0, можно в одну строку всю БСЭ вывести! %-)


Fay   (2006-08-24 20:02:00) [27]

Ketmar ©   (24.08.06 19:56) [9]
Я их вывел с шагом 1 по высоте 8)


Ketmar   (2006-08-24 19:56:00) [28]

> [6] TButton ©   (24.08.06 17:58)
тысяча строк... это кеглем 1, что ли? так тогда просто линии можно рисовать, один фиг никто не отличит.


Fay   (2006-08-24 18:30:00) [29]

Вывел DrawText-ом. Всё ОК.


Fay   (2006-08-24 18:18:00) [30]

2 TButton ©   (24.08.06 17:58) [6]
Так это наш старй добрый TButton?! Не признал. в "Интересное о себе" раньше было другое...

> выводить ~1000 строк
А чё не 10000000000 ?


TButton   (2006-08-24 17:58:00) [31]


> На самом деле, было бы интересно посмотреть на код, который
> тормозит...

ну напиши код который TextOut'ом будет выводить ~1000 строк на битмап

> А вот "через попиксельный вывод"... Даже завидно... Вот
> бы и меня так вставило...

ну вот люблю я пиксели =)
и они отвечают мне взаимностью =)


DiamondShark   (2006-08-24 16:36:00) [32]


> и в принципе он подходит когда строк <100

А на экран больше и не помещается.


Fay   (2006-08-24 13:14:00) [33]

На самом деле, было бы интересно посмотреть на код, который тормозит...
А вот "через попиксельный вывод"... Даже завидно... Вот бы и меня так вставило...


Ketmar   (2006-08-24 13:00:00) [34]

ктстати, мой рендерер для клиента чата вообще выводил посимвольно. и ничего, не тормозил. %-)


Fay   (2006-08-24 12:50:00) [35]

2 афтар
Поменяй ник


Ketmar   (2006-08-24 10:26:00) [36]

DrawTextEx()?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо