Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.035 c
3-1080563703
Bless
2004-03-29 16:35
2004.04.25
Как прервать асинхронное выпосление запроса, который возвращает д


1-1081421349
kent
2004-04-08 14:49
2004.04.25
передача ссылки на объект


4-1076961323
Talla2k
2004-02-16 22:55
2004.04.25
RegisterWindowMessage


3-1080648670
ЁПРСТ
2004-03-30 16:11
2004.04.25
ADOQuery пропускает первую запись запроса


14-1080814771
химик
2004-04-01 14:19
2004.04.25
Рихтер дайте пож, ссылку где скачать можно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский