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

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

Методы вывода изображения на экран


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 куда быстрее все работает.


Наверх

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