![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Методы вывода изображения на экран
Gad © (2003-10-28 12:24:00)Здраствуйте... Вот решил немного проконсультироваться...
Используя обычный вывод на Canvas при помощи CopyRect метод довольно простой но ресурсоемкий т.е. если на экране суетяться примерно 10 - 15 спрайтов машина начинает задыхаться....
Может кто занимался подобными проблемами и поделиться опытом работы?
Goorus (2003-10-31 03:32:00) [1]По моему это уже предложил Andry, но всё-таки. Созхдаешь ещё один Canvas(или можно TBitmap), на нем всё рисуешь, а потом его выводишь. В итоге ты выводишь изображение только один раз, намного быстрее.
miek (2003-10-30 23:57:00) [2]2Andry: Реального выигрыша не будет. Узкое место - шина. Ее факирскими трюками не расширишиь.
2Mihey:
www.miek.narod.ru/spriteutils.zip
Mihey (2003-10-30 22:14:00) [3]2 Andry:
Так, в принципе, всегда и делается.
Andry (2003-10-30 21:26:00) [4]Можно попробовать так: если на канву выводится несколько независимых спрайтов (предположим анимаций), то можно сначала вычслить следующий кадр для рисования каждой анимации а потом все 20-30 штук нарисовать сразу. Я так делал и не лагало до 200 штук.
Mihey (2003-10-30 18:50:00) [5]Обрыл всю кладовку и поиск - не нашёл.
Gad (2003-10-30 10:40:00) [6]SpriteUtils лежит сдесь в кладовке...
Mihey (2003-10-30 00:35:00) [7]http://www.g32.org
P.S.: Дайте ссылку на SpriteUtils.
Mihey (2003-10-30 00:24:00) [8]> 2Mihey: Не гони. Я смотрел и то, и другое.
Боюсь, вы не правы. Надо делать тест.
miek (2003-10-29 23:49:00) [9]Примеров нет. Здесь где-то лежит Мироводина статья о сравнении библиотек, но она старая и сырая. Если скажешь конкретно, что тебя интересует, можно сделать программу-тест. Пока что я сравнивал с DibUltra и прикинул, что SpriteUtils раза в полтора быстрее на примитивах.
Gad (2003-10-29 09:15:00) [10]Значит мы имеем:
FastLib
SpriteUtils
Graphic32
А нельзя ли привести примеры производительности?
Ну скажем на примере: Есть поле 800х600 (поле не пустое а на нем картинка аналогичного размера) на него выводиться 5 независимых друг от друга картинок с периодисностью 5 милесекунд.
И еще не могли бы вы написать ссылочки на вышеописаные библиотеки?
Разве что кроме SpriteUtils ее я уже нашел....
Думкин (2003-10-29 07:08:00) [11]И под 2000 и выше все придет в Директ.
miek (2003-10-28 23:52:00) [12]2Mihey: Не гони. Я смотрел и то, и другое.
Darthman (2003-10-28 17:23:00) [13]Win32API надо использовать. В частности BitBlt и HDC в общем.
Mihey (2003-10-28 17:13:00) [14]> Хотя бы FastLib или SpriteUtils
Они медленнее.
miek (2003-10-28 16:47:00) [15]Graphi32 - плохой пример.
Хотя бы FastLib или SpriteUtils
Mihey (2003-10-28 16:19:00) [16]> А если использовать исключительно стандартные средства?
Исключительно стандартные - BitBlt. Если же средства, которые не задействуют DirectX или OpenGL, то какие-нибудь дополнительные библиотеки, типа очень быстрой Graphic32.
Gad (2003-10-28 15:26:00) [17]Ну то что используя библиотеки DirecX все быстро работает я знаю.... А если использовать исключительно стандартные средства?
Darthman (2003-10-28 13:06:00) [18]1) BitBlt будет быстрее. DirectDraw будет еще быстрее работать. Вообще канвас - медленная штука. Через DC куда быстрее все работает.