![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скорость InvalidateRect [D5, WinXP]
Kind © (2004-08-26 22:47:00)Доброго времени суток!
Эксперементировал тут с фунцией InvalidateRect и получил странный результат - Если я перерисовываю всё окно целиком 800X600, то на это уходит меньше времени чем скажем я перерисовываю квадрат размером 100 на 100 pixel.
Почему так получается?
wicked (2004-08-27 00:51:00) [1]хотя, конечно, на код не мешало бы взглянуть.... завтра, например... ;)
wicked (2004-08-27 00:50:00) [2]BitBlt - не панацея... но если быстрее, то вывод напрашивается сам...
хотя очень странно - перерисовка части была всегда быстрее перерисовки всего окна, за исключением, если для определения участков обновления городится слишком много кода.... тогда этот код как раз и тормозит всё.....
Kind (2004-08-27 00:24:00) [3]Я так и делал, только не 30 секунд а 10 :)
Просто думал может кто знает.
Мне нужно обновить несколько небольших прямоугольных регионов подряд, вот и думаю вызывать несколько раз перерисовку маленьких регионов или целиком окно перерисовать...
(в процессе перерисовки происходит просто BitBlt, это я так сказал, чтобы лишние вопросы и предположения отсечь :)
Кто что посоветует?
wicked (2004-08-27 00:05:00) [4]
> Если я перерисовываю всё окно целиком 800X600, то на это
> уходит меньше времени чем скажем я перерисовываю квадрат
> размером 100 на 100 pixel.
не берусь судить о качестве эксперимента, но посоветовал бы просто постоянно делать InvalidateRect на протяжении определенного времени, хотя бы около 30 секунд... один вариант, потом - другой... и сравнить результаты.... ;)
Kind (2004-08-26 23:36:00) [5]Да, везде было False
Gero (2004-08-26 22:49:00) [6]А последний параметр в обоих случаях одинаков?