Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

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

 
Gad ©   (2003-10-28 12:24) [0]

Здраствуйте... Вот решил немного проконсультироваться...
Используя обычный вывод на Canvas при помощи CopyRect метод довольно простой но ресурсоемкий т.е. если на экране суетяться примерно 10 - 15 спрайтов машина начинает задыхаться....
Может кто занимался подобными проблемами и поделиться опытом работы?


 
Darthman ©   (2003-10-28 13:06) [1]

1) BitBlt будет быстрее. DirectDraw будет еще быстрее работать. Вообще канвас - медленная штука. Через DC куда быстрее все работает.


 
Gad ©   (2003-10-28 15:26) [2]

Ну то что используя библиотеки DirecX все быстро работает я знаю.... А если использовать исключительно стандартные средства?


 
Mihey ©   (2003-10-28 16:19) [3]

>А если использовать исключительно стандартные средства?

Исключительно стандартные - BitBlt. Если же средства, которые не задействуют DirectX или OpenGL, то какие-нибудь дополнительные библиотеки, типа очень быстрой Graphic32.


 
miek ©   (2003-10-28 16:47) [4]

Graphi32 - плохой пример.

Хотя бы FastLib или SpriteUtils


 
Mihey ©   (2003-10-28 17:13) [5]

>Хотя бы FastLib или SpriteUtils

Они медленнее.


 
Darthman ©   (2003-10-28 17:23) [6]

Win32API надо использовать. В частности BitBlt и HDC в общем.


 
miek ©   (2003-10-28 23:52) [7]

2Mihey: Не гони. Я смотрел и то, и другое.


 
Думкин ©   (2003-10-29 07:08) [8]

И под 2000 и выше все придет в Директ.


 
Gad ©   (2003-10-29 09:15) [9]

Значит мы имеем:
FastLib
SpriteUtils
Graphic32

А нельзя ли привести примеры производительности?
Ну скажем на примере: Есть поле 800х600 (поле не пустое а на нем картинка аналогичного размера) на него выводиться 5 независимых друг от друга картинок с периодисностью 5 милесекунд.

И еще не могли бы вы написать ссылочки на вышеописаные библиотеки?

Разве что кроме SpriteUtils ее я уже нашел....


 
miek ©   (2003-10-29 23:49) [10]

Примеров нет. Здесь где-то лежит Мироводина статья о сравнении библиотек, но она старая и сырая. Если скажешь конкретно, что тебя интересует, можно сделать программу-тест. Пока что я сравнивал с DibUltra и прикинул, что SpriteUtils раза в полтора быстрее на примитивах.


 
Mihey ©   (2003-10-30 00:24) [11]

>2Mihey: Не гони. Я смотрел и то, и другое.

Боюсь, вы не правы. Надо делать тест.


 
Mihey ©   (2003-10-30 00:35) [12]

http://www.g32.org

P.S.: Дайте ссылку на SpriteUtils.


 
Gad ©   (2003-10-30 10:40) [13]

SpriteUtils лежит сдесь в кладовке...


 
Mihey ©   (2003-10-30 18:50) [14]

Обрыл всю кладовку и поиск - не нашёл.


 
Andry   (2003-10-30 21:26) [15]

Можно попробовать так: если на канву выводится несколько независимых спрайтов (предположим анимаций), то можно сначала вычслить следующий кадр для рисования каждой анимации а потом все 20-30 штук нарисовать сразу. Я так делал и не лагало до 200 штук.


 
Mihey ©   (2003-10-30 22:14) [16]

2 Andry:

Так, в принципе, всегда и делается.


 
miek ©   (2003-10-30 23:57) [17]

2Andry: Реального выигрыша не будет. Узкое место - шина. Ее факирскими трюками не расширишиь.

2Mihey:

www.miek.narod.ru/spriteutils.zip


 
Goorus   (2003-10-31 03:32) [18]

По моему это уже предложил Andry, но всё-таки. Созхдаешь ещё один Canvas(или можно TBitmap), на нем всё рисуешь, а потом его выводишь. В итоге ты выводишь изображение только один раз, намного быстрее.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.064 c
4-1077871682
SEn
2004-02-27 11:48
2004.04.25
Коды клавиш


1-1081232645
TUser
2004-04-06 10:24
2004.04.25
Скорость сортировки слиянием


14-1080734429
Rule
2004-03-31 16:00
2004.04.25
Кто знает альтернативу JustOne ?


1-1081245924
V-Isa
2004-04-06 14:05
2004.04.25
Как получить матрицу битов изображения символа.


1-1081418994
BOA_KAA
2004-04-08 14:09
2004.04.25
Потомок TStringGrid